2012-08-13 8 views

답변

3

아니요. 장치 포인터를 CUDA 배열로 가져올 수 없습니다 (cuMemset *()로 전달). NVIDIA는 CUDA 배열에 대한 memset 함수를 제공하지 않습니다.

일부 호스트 메모리를 제로로 만들고 memcpy (또는 memcpy 's)를 CUDA 어레이에 넣거나 (SM 2.0 이상에서만 앱을 실행하는 경우) 서페이스 저장소로 자신을 굴려야합니다.

+0

감사합니다. 두 번째 제안 인 "표면 가게로 자신 만의 롤"이란 무엇을 의미합니까? surf3Dwrite를 사용하여 어레이를 지우는 커널을 작성한다는 의미입니까? – morph

+0

네, 그게 제가 제안한 것입니다. 그리고 서페이스로드/저장소가 타입이 지정되지 않았기 때문에 모든 크기 피연산자를 저장하는 템플릿 함수를 작성할 수 있습니다. 2D의 예제는 CUDA 핸드북의 텍스처링 장의 10.9.2 절을 참조하십시오. http://www.cudahandbook.com/uploads/Chapter_10._Texturing.pdf – ArchaeaSoftware

+1

감사! 나는 두 가지 방법을 모두 구현했으며, 커널보다 훨씬 빠른 cuMemcpyAtoA 메서드를 선호합니다! – morph