在 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 吗?的主要内容,如果未能解决你的问题,请参考以下文章

云原生之 Ansible 篇

LayaAir之小游戏的坑之解决之道

恶魔秘境大天使之剑怎么获得

为啥我的 avro 输出文件在我的猪工作中如此之小又如此之多?

大天使之剑怎么获得大天使武器

《浪潮之巅》读后感