假设在单个节点上,有多个具有不同计算能力的设备,nvidia如何对它们进行排名(我的排名是指cudaSetDevice分配的数字)?
有关于此的一般准则吗?谢谢。
我相信对应的设备顺序cuda获取设备 and cudaSetDevice(即 CUDA 运行时枚举顺序应该基于确定最快设备并使其成为第一个的启发式方法,或者基于PCI 枚举顺序。您可以使用以下方式确认这一点设备查询示例,它根据 cudaSetDevice 枚举的顺序打印设备的属性(包括 PCI ID)。
不过,我建议不要以此为基础做出任何决定。 PCI 枚举顺序并没有什么神奇之处,甚至系统 BIOS 升级之类的事情也可以更改设备枚举顺序(交换设备、移动到另一个系统等也可以)
通常最好查询设备(请参阅 deviceQuery 示例),然后根据返回的特定设备和/或其属性做出决策。您还可以使用cuda选择设备启发式选择设备。
您可以使 CUDA 运行时根据设置(或缺乏)选择“更快的优先”或“PCI 枚举顺序”环境变量在 CUDA 8 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)