많은 수의 malloc
및 장치 별 API malloc (GPU 프로그래밍이므로 cudaMalloc
)이 있습니다.일련 할당 자/할당 취소 자
기본적으로 내 코드의 시작 부분은 할당 호출의 큰 부분이며, 닫는 부분은 할당 취소입니다.
구조에 내 전역 데이터를 캡슐화 했으므로 할당 해제는 상당히 길지만 적어도 분리 함수로 분리 할 수 있습니다. 반면에, 나는 더 짧은 해결책을 원할 것이다. 또한 자동 할당 해제자는 전역 할당 자 함수에서 할당 해제를 명시 적으로 작성하는 것을 잊어 버리면 작성되는 메모리 누수의 위험을 줄입니다.
malloc
/cudaMalloc
프로세스 중에 변수를 "등록"할 수있는 템플릿 클래스 래퍼를 작성할 수 있는지 궁금 해서요. 그리고 시뮬레이션이 끝나면 대량 루프 기반 할당 해제 (등록 해제). 다시 말해, 개별 할당 해제 (free
/cudaFree
초)를 입력하지 않기를 바란다. 왜냐하면이 또한 길고 바람직하지 않으며, 디바이스 시뮬레이션이 완료되고 메인이 될 때까지 내가 등록한 모든 것이 할당 해제되지 않을 것이기 때문이다 종료 중입니다.
새로운 시뮬레이션 기간 변수를 등록하면 자동으로 할당이 해제되므로 할당 해제 나 메모리 누수가 생기는 것을 잊을 위험이 없습니다.
그런 래퍼가 가능합니까?
제안 하시겠습니까?
그렇다면 어떻게됩니까?
미리 감사드립니다.
오래된 문제이지만 CUDA는 새로운 맛을냅니다. 흥미 롭 군. –
C++ 응답을 받거나 "C"태그가 의도적입니까? – harrism
C++이어야합니다. 원래이 프로젝트는 C에 있었지만 호스트쪽에 STL을 추가했습니다. 내 머리 속에 깨끗한 인쇄 제어 기능을 제공했기 때문입니다. 장치 코드와 할당/할당 해제는 모두 전통적인 C이지만 클래스가 없습니다. –