【发布时间】:2012-08-10 19:53:10
【问题描述】:
这个问题与使用 cuda 流运行许多内核有关
在CUDA中有很多同步命令 cudaStream同步, CudaDeviceSynchronize, cudaThread同步, 还有 cudaStreamQuery 来检查流是否为空。
我注意到在使用分析器时,这些同步命令会给程序带来很大的延迟。我想知道是否有人知道除了使用尽可能少的同步命令之外的任何方法来减少这种延迟。
还有没有什么数字可以判断最有效的同步方法。也就是说,考虑在一个应用程序中使用 3 个流,其中两个需要完成才能让我启动第四个流,我应该使用 2 个 cudaStreamSyncs 还是只使用一个 cudaDeviceSync 什么会减少损失?
【问题讨论】:
-
cudaThreadSynchronize 已弃用。
标签: concurrency cuda latency synchronize cuda-streams