use*_*148 1 synchronization cuda
我在cuda运行一个迭代程序,直到收敛.正如在这篇SO帖子中所说的那样(Are cuda内核调用同步或异步),从CPU的角度来看,cuda内核是异步的.
在我的程序中,其中一个内核检查收敛并将布尔值返回给要读取的主机.我想知道,我是否需要这样做
cudaDeviceSynchronize()
Run Code Online (Sandbox Code Playgroud)
在读取布尔值之前?
这取决于您如何将布尔值返回给CPU.你在用cudaMemcpy吗?如果是,那么你不必使用cudaDeviceSynchronize(),因为cudaMemcpy将阻塞,直到内核完成执行,然后将数据从GPU复制到CPU.