Cuda 英伟达驱动程序如何分配设备索引给GPU?

Cuda 英伟达驱动程序如何分配设备索引给GPU?,cuda,nvidia,Cuda,Nvidia,假设在一个节点上,有多个具有不同计算能力的设备,nvidia如何对它们进行排名(排名是指cudaSetDevice分配的编号) 关于这一点有什么一般性的指导方针吗?谢谢。我认为与和(即CUDA运行时枚举顺序)相对应的设备顺序应基于确定最快设备并使其成为第一个设备的启发式,或者基于。您可以使用打印设备属性(包括PCI ID)的来确认这一点根据它们在CUDASETDEVIECE中被枚举的顺序 不过,我建议不要以此为基础做出任何决定。PCI枚举顺序没有什么神奇之处,甚至系统BIOS升级之类的事情也会改

假设在一个节点上,有多个具有不同计算能力的设备,nvidia如何对它们进行排名(排名是指cudaSetDevice分配的编号)


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

我认为与和(即CUDA运行时枚举顺序)相对应的设备顺序应基于确定最快设备并使其成为第一个设备的启发式,或者基于。您可以使用打印设备属性(包括PCI ID)的来确认这一点根据它们在CUDASETDEVIECE中被枚举的顺序

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

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


您可以根据CUDA 8中的设置(或缺少)使CUDA运行时选择“更快优先”或“PCI枚举顺序”。

我相信与和相对应的设备顺序(即,CUDA运行时枚举顺序应基于确定最快设备并使其成为第一个设备的启发式方法,或基于。您可以使用进行确认,它将根据设备在cudaSetDevice中枚举的顺序打印设备属性(包括PCI ID)

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

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

您可以根据CUDA 8中的设置(或缺少)使CUDA运行时选择“更快优先”或“PCI枚举顺序”