我正在寻找一种优雅的方式来在 CUDA 内核中传递多个重复的参数,
众所周知,每个内核参数都位于每个 CUDA 线程的堆栈上,因此,内核传递给每个线程的参数之间可能存在重复,即位于每个堆栈上的内存。
为了尽量减少传递的重复参数的数量,我正在寻找一种优雅的方式。
为了解释我的担忧:假设我的代码如下所示:
kernelFunction<<<gridSize,blockSize>>>(UINT imageWidth, UINT imageWidth, UINT imageStride, UINT numberOfElements,x,y,ect...)
UINT imageWidth、UINT imageWidth、UINT imageStride、UINT numberOfElements 参数位于每个线程 stock ,
我正在寻找一种技巧来发送更少的参数并从其他来源访问数据。
我正在考虑使用常量内存,但由于常量内存位于 global 上,所以我放弃了它。不用说内存位置应该很快。