間にカウンターがあるネストされたループがあります。外側のループに CUDA インデックスを使用することはできましたが、この種のループでさらに並列処理を利用する方法が思い浮かびません。それに似たものを扱った経験はありますか?
int i = threadIdx.x + blockIdx.x * blockDim.x;
if (i < Nx) {
counter = 0;
for (k = 0; k < Ny; k++) {
d_V[i*Ny + k] = 0;
if ( d_X[i*Ny + k] >= 2e2 ) {
/* do stuff with i and k and counter i.e.*/
d_example[i*length + counter] = k;
...
/* increment counter */
counter++;
}
}
}
私が見ている問題は、カウンターを処理する方法ですk
.CUDAでインデックスを作成することもできますthreadIdx.y + blockIdx.y * blockDim.y