在 CUDA(驱动程序 API)文档中,它说
回调的开始执行与在回调之前同步记录在同一流中的事件具有相同的效果。因此,它会同步在回调之前“加入”的流。
这是否意味着如果我在每个关键点之后都有一个带有回调的管道来发送信号主机,我不需要任何 cuStreamSynchronize 来让这些点能够访问输出数组?
非常简单的代码,例如
cuda memcpy host to device
cuda launch kernel
cuda memcpy device to host
add callback
callback()
{
here, safe to access host "results" array?
(considering no more cuda commands on these arrays)
}