我想在以下方面得到一些帮助。
我有一个以数组作为输入的内核函数,在计算后,其中一个数组会更改其值。我将其命名为 dev_array。
我希望 dev_array 再次用作我的内核计算的输入大约 80 次,这样我就可以得到 dev_array 的正确结果,稍后在我的 main 中使用它。
我怎样才能做到这一点?我已经尝试在线程条件之前在内核中使用循环。
while(i<80){
i++;
if(tidx<N){`
//calculating dev_array then using it again at the beginning of while
}
}
但它没有用。它看起来像是在一个无限循环中。
从 main 调用内核 80 次并一直进行内存复制并不令人满意。
while(i<80){
i++;
cudaMemcpy(dev_array,cudaMemcpyHostToDevice);
kernel<<<grid,block>>>(dev_array);
cudaMemcpy(dev_array,cudaMemcpyDeviceToHost);
}
感谢您的任何帮助