cuda:需要同步读取设备内存变量

时间:2012-01-30 16:49:29

标签: synchronization cuda

我在cuda中运行一个迭代程序,直到收敛。正如在这篇SO帖子中所说的那样(Are cuda kernel calls synchronous or asynchronous),从CPU的角度来看,cuda内核是异步的。

在我的程序中,其中一个内核检查收敛并将布尔值返回给要读取的主机。我想知道,我是否需要做

cudaDeviceSynchronize()

在读取布尔值之前?

1 个答案:

答案 0 :(得分:5)

这取决于如何将布尔值返回给CPU。 你在用cudaMemcpy吗? 如果是,则不必使用cudaDeviceSynchronize(),因为cudaMemcpy将阻塞,直到内核完成执行,然后将数据从GPU复制到CPU。