직접 알 수는 없지만, 내 커널에서 사용되는 메모리를 보장하는 가장 좋은 방법은 상수입니다. http://stackoverflow...r-pleasant-way에도 비슷한 질문이 있습니다. GTX580으로 작업 중이며 2.0 용으로 만 컴파일 중입니다.CUDA 코드의 상수 메모리 사용량
대체 방법입니다cudaMalloc(src, size);
cudaMemcpy(src, hostSrc, size, cudaMemcpyHostToDevice);
Foo<<<...>>>(src, result);
이
__constant__ src[size];
파일을 .CU에 추가하려면에서 SRC에게 포인터를 제거 : 내가 호스트에서 다음 코드를 실행
__global__ Foo(const int *src, float *result) {...}
처럼 내 커널 보인다 커널 및 실행
cudaMemcpyToSymbol("src", hostSrc, size, 0, cudaMemcpyHostToDevice);
Foo<<<...>>>(result);
이 두 가지 방법이 동일합니까? 아니면 첫 번째 방법이 전역 메모리 대신 상수 메모리의 사용을 보장하지 않습니까? 크기가 인 경우 동적으로 변경되므로 두 번째 방법은 내 경우에 편리하지 않습니다.