CUDA 상수 메모리 영역을 2 차원으로 할당하고 복사하는 방법이 있습니까? __constant__의 cudaMemcpyToSymnbol
은 (는) 옵션이 아닙니다.2 차원의 CUDA 상수 메모리
1
A
답변
3
쿠다 SDK (또는 샘플)에 quasirandomGenerator 예는 2 차원의 테이블을 도시 한 2 차원 테이블
선언 quasirandomGenerator_kernel.cuh 테이블을 채우는 대응 cudaMemcpyToSymbol으로 일정한 메모리에 할당되고 :
static __constant__ unsigned int c_Table[QRNG_DIMENSIONS][QRNG_RESOLUTION];
cudaMemcpyToSymbol 호출 :
테이블은 상기 후드 처리되고//Table initialization routine
static void initTableGPU(unsigned int tableCPU[QRNG_DIMENSIONS][QRNG_RESOLUTION]){
cutilSafeCall(cudaMemcpyToSymbol(
c_Table,
tableCPU,
QRNG_DIMENSIONS * QRNG_RESOLUTION * sizeof(unsigned int)
));
}
(pQB에 의해 제안 된 것처럼) 일차원 방식이므로 OP가 정확하게 찾고 있는지는 알 수 없습니다. 이 예제는 CUDA SDK (또는 CUDA 5.0 RC 툴킷에서 호출 된 샘플)를 설치할 때 자동으로 설치되지만 웹에서는 별도로 찾을 수 있습니다 here. 오른쪽에있는 적절한 다운로드 링크를 선택하여 아카이브를 얻으십시오 샘플 코드. 그런 다음 아카이브를 열고 quasirandomGenerator_kernel.cuh 파일을 찾습니다.
왜 1 차원으로 할당하고 행 우선 순서로 액세스하지 마십시오? – pQB
CUDA SDK 또는 샘플의 quasirandomGenerator 예제는 상수 메모리에 상응하는 cudaMemcpyToSymbol로 할당 된 2 차원 테이블이 quasirandomGenerator_kernel.cuh의 테이블을 채우는 것을 보여줍니다. –
@RobertCrovella : 예제의 일부 선택 부분에 답변을 추가하겠습니까? 예제 자체에 대한 참조? –