2次元または3次元のCUDAブロックでは、スレッドはどのようにワープにグループ化されますか?私の仮定では、最初にx、次にy、次にzの順に反復します。たとえば、、のあるスレッドで<z,y,x>
は<0,0,[0-31]>
、ワープであり<0,1,[0-31]>
、なども同様です。これは正しいですか?
1 に答える
5
はい、そうです。スレッドは、ワープ (一緒に実行される 32 のスレッドのグループ) を作成するときに、最初に X、次に Y、次に Z (スレッド座標) でグループ化されます。これは良好な合体に影響を与えます: ワープに隣接するスレッド (つまり、通常は X 座標) が行列内の隣接する要素にアクセスできるように、行列の添え字でスレッド座標の使用を調整する必要があります (threadIdx.x または派生物を使用して)。最も急速に変化する行列の次元で. 通常は が必要data[z][y][x]
であり、data[x][y][z]
于 2013-02-12T16:51:47.600 に答える