首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cudaGetDevice函数有什么不清楚的?

cudaGetDevice函数有什么不清楚的?
EN

Stack Overflow用户
提问于 2014-08-21 06:22:37
回答 2查看 1.6K关注 0票数 1

我正在处理一个集群,其中我有4个GPU连接到一个计算节点。所有的GPU都是一样的,基本上是k20,没有区别。我想知道我的二进制文件运行在哪个GPU上?cudaGetDevice总是给我设备id 0,因为我的二进制文件实际上运行在设备id 2上(使用nvidia-smi检查)

使用此设备Id,我希望使用NVML库来测量所消耗的功率。

代码语言:javascript
运行
复制
cudaGetDevice :Returns in *device the current device for the calling host thread.

还有其他方法来获取这些信息吗?

EN

回答 2

Stack Overflow用户

发布于 2014-08-21 07:30:09

来自nvidia smi doc

-i,-ID=ID 显示单个指定GPU或单元的数据。指定的id可以是驱动程序返回的自然枚举中基于GPU / Unit的0−索引、GPU的板序列号、GPU的UUID或单个指定GPU或Unit的显示数据。指定的id可以是驱动程序返回的自然枚举中基于GPU/−的0−索引、GPU的板序列号、GPU的UUID或GPU的PCI总线ID (以十六进制的形式表示)。建议希望一致性的用户使用UUID或PCI总线ID,因为设备枚举顺序不能保证在重新引导和板序列号之间的一致性在同一板上的多个GPU之间共享。

因此,我要做的是调用cudaGetDeviceProperties,并按照建议调查返回的属性,如pciBusID。然后,根据在所需的PCI总线上找到的设备,我将调用具有适当参数的cudaSetDevice

票数 2
EN

Stack Overflow用户

发布于 2022-01-25 05:24:31

cudaSetDevicecudaGetdevice总是在从0num_visible_devices逻辑可见设备上工作。例如,如果您使用setenv CUDA_VISIBLE_DEVICES 3,6并执行代码cudaSetDevice(1),那么您的代码实际上将在物理设备6上工作,而不是在1上工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25419489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档