非常に基本的なことを明確にする必要があるだけです。ほとんどの計算例では、次のようなものを使用しています。
ID = blockIdx.x*blockDim.x+threadIdx.x;
// ... その後、配列 [ID] で計算を行います
私の質問は、ブロック内のスレッドの最大数 (1024) を使用したい場合、 ( threadIdx.x
、threadIdx.y
、threadIdx.z
) のすべてを考慮して「スレッド ID」を「構築」する必要があるかということです。
もしそうなら、それを単一の値にハッシュするための推奨される方法は何ですか?
そうでない場合、この投稿のような画像処理関連の操作で同様の方法で誰かがそれを使用できるのはなぜですか。
https://stackoverflow.com/questions/11503406/cuda-addressing-a-matrix
blockidx.x
とは、この点でblockidx.y
と同じ立場ですか?threaIdx