在 cudaStreamSynchronize 之前我需要 cudaSetDevice 吗?
Posted
技术标签:
【中文标题】在 cudaStreamSynchronize 之前我需要 cudaSetDevice 吗?【英文标题】:Do I need cudaSetDevice before cudaStreamSynchronize? 【发布时间】:2020-12-18 05:26:17 【问题描述】:在我的系统中,我同时对多个 GPU 进行编程。在拨打cudaStreamSynchronize()
之前需要先拨打cudaSetDevice()
吗?
在创建cudaStream_t
对象时,我确实在调用cudaStreamCreate()
之前正确设置了设备。
【问题讨论】:
事件和流可以同步,即使当前设备不是与流关联的设备 -- docs.nvidia.com/cuda/cuda-c-programming-guide/… 【参考方案1】:我可能是错的,但如果你在创建流时已经使用了函数cudaSetDevice()
,我认为你不需要再次调用它。
资源:
https://developer.nvidia.com/blog/cuda-pro-tip-always-set-current-device-avoid-multithreading-bugs/
https://forums.developer.nvidia.com/t/how-many-times-does-cudasetdevice-need-to-be-called/10646
【讨论】:
以上是关于在 cudaStreamSynchronize 之前我需要 cudaSetDevice 吗?的主要内容,如果未能解决你的问题,请参考以下文章