2012-09-26 5 views
1

CUDA 상수 메모리 영역을 2 차원으로 할당하고 복사하는 방법이 있습니까? __constant__의 cudaMemcpyToSymnbol은 (는) 옵션이 아닙니다.2 차원의 CUDA 상수 메모리

+0

왜 1 차원으로 할당하고 행 우선 순서로 액세스하지 마십시오? – pQB

+1

CUDA SDK 또는 샘플의 quasirandomGenerator 예제는 상수 메모리에 상응하는 cudaMemcpyToSymbol로 할당 된 2 차원 테이블이 quasirandomGenerator_kernel.cuh의 테이블을 채우는 것을 보여줍니다. –

+0

@RobertCrovella : 예제의 일부 선택 부분에 답변을 추가하겠습니까? 예제 자체에 대한 참조? –

답변

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 파일을 찾습니다.