nVIDIA驱动程序如何为gpu分配设备索引



假设在单个节点上,有几个具有不同计算能力的设备,nvidia如何对它们进行排名(这里的排名是指cudaSetDevice分配的数量)?

关于这个有什么一般的指导方针吗?谢谢。

我认为cudaGetDevice和cudaSetDevice对应的设备的顺序(即CUDA运行时枚举顺序)应该基于确定最快设备的启发式并使其优先,或者基于PCI枚举顺序。您可以使用deviceQuery示例来确认这一点,该示例根据设备在cudaSetDevice中枚举的顺序打印设备的属性(包括PCI ID)。

然而,我建议不要以此为基础做出任何决定。PCI枚举顺序没有什么神奇之处,甚至像系统BIOS升级这样的事情也可以改变设备枚举顺序(交换设备、转移到另一个系统等也是如此)

通常最好是查询设备(参见deviceQuery示例),然后根据返回的特定设备和/或其属性做出决定。您也可以使用cudaChooseDevice来启发式地选择设备。

您可以使CUDA运行时根据CUDA 8中环境变量的设置(或缺乏)选择"更快优先"或"PCI枚举顺序"。

最新更新