CUDAカーネルで重複した複数の引数を渡すためのエレガントな方法を探しています。
ご存知のとおり、各カーネル引数は各CUDAスレッドのスタックに配置されているため、カーネルから各スレッド、つまり各スタックに配置されているメモリに渡される引数の間に重複が生じる可能性があります。
渡される重複する引数の数を最小限に抑えるために、私はそうするためのエレガントな方法を探しています。
私の懸念を説明するために:私のコードが次のようになっているとしましょう:
kernelFunction<<<gridSize,blockSize>>>(UINT imageWidth, UINT imageWidth, UINT imageStride, UINT numberOfElements,x,y,ect...)
UINT imageWidth、UINT imageWidth、UINT imageStride、UINT numberOfElements引数は、各スレッドストックにあります。
送信する引数を減らし、他のソースからのデータにアクセスするためのトリックを探しています。
コンスタントメモリの使用を考えていましたが、コンスタントメモリはグローバルに配置されているので削除します。言うまでもなく、メモリの場所は高速である必要があります。