【发布时间】:2021-04-23 12:45:23
【问题描述】:
在CUDA的手册中,cudaStreamSynchronize(stream)的解释中提到了
阻塞直到流完成所有操作。如果为此设备设置了 cudaDeviceScheduleBlockingSync 标志,则主机线程将阻塞,直到流完成其所有任务。
我的问题是这个屏障阻止主机(即 multigpu 中的所有设备)完成流中所有先前发出的操作。我说的对吗?
那么cudaDeviceSynchronize() 在多 GPU 任务中呢?它阻止所有设备完成由cudaSetDevice(deviceid) 设置的设备上发出的所有任务,还是阻止主机完成之前在所有设备上发出的所有操作?
【问题讨论】:
-
“我们知道,默认情况下,每个流都在特定线程上运行”——我们知道吗?
-
@talonmies 感谢您的提问,我误解了 cuda 手册的解释。我更正了我的问题。
标签: c++ cuda synchronization barrier