我有一个嵌套循环,中间有一个计数器。我已经设法将 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