, 우리 모두가 알다시피CUDA : CUDA 커널에 여러 중복 인수를 전달하는 방법 나는 CUDA 커널에서 여러 중복 인수를 전달하는 elegent 방법을 찾고 있어요
, 각각의 커널 인수가 각각의 스택에있는 따라서 CUDA 스레드는 커널이 각 스택에있는 메모리 (각 스택에있는 메모리)로 전달되는 인수 사이에 중복이있을 수 있습니다.
전달되는 중복 된 인수의 수를 최소화하기 위해 나는 그렇게 우아한 방법을 찾고있다.
내 문제를 설명하기 위해 :
kernelFunction<<<gridSize,blockSize>>>(UINT imageWidth, UINT imageWidth, UINT imageStride, UINT numberOfElements,x,y,ect...)
UINT IMAGEWIDTH, UINT IMAGEWIDTH, UINT imageStride가, UINT의 numberOfElements 인수는 각 스레드 재고에 위치
,
:의 내 코드는 다음과 같습니다 가정 해 봅시다 더 적은 인수를 보내고 다른 소스의 데이터에 액세스하는 트릭을 찾고 있습니다.
상수 메모리를 사용하려고 생각했지만 상수 메모리가 전역에 위치 했으므로 삭제합니다. 말할 필요도없이 메모리 위치가 빠르다.
도움을 주시면 감사하겠습니다.
"각 커널 인수는 각 CUDA 스레드의 스택에 있습니다."- 커널 인수가 블록 범위 공유 메모리 (1.x) 또는 컨텍스트 범위 상수 메모리 (2.x, 3.x 계산). 이 질문의 전체 전제가 잘못되었습니다. – talonmies