【发布时间】:2012-02-22 11:03:47
【问题描述】:
我正在 cuda 中运行一个迭代程序,该程序一直运行到收敛。正如这篇 SO 帖子 (Are cuda kernel calls synchronous or asynchronous) 中所说,从 CPU 的角度来看,cuda 内核是异步的。
在我的程序中,其中一个内核检查收敛并将布尔值返回给主机以进行读取。我想知道,我是否需要这样做
cudaDeviceSynchronize()
在读取布尔值之前?
【问题讨论】:
-
您需要在内核执行之后和读取布尔值之前进行同步,因为在内核执行后控制可以立即返回给主机。并且必须写入值的线程可能尚未运行。
标签: synchronization cuda