NVML工具nvidia-smi按设备的PCI Bus ID为设备分配索引序号。CUDA则有自己的id分配规则,因此这两个id不一定相同。
CUDA_VISIBLE_DEVICES变量是根据设备ID(CUDA)来选择设备,但是选择的设备不一定是我们想要使用的。可以通过CUDA_DEVICE_ORDER=PCI_BUS_ID来更改索引方式,使得CUDA按照PCI Bus ID来分配索引序号。
os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID'
参考资料:
https://www.jianshu.com/p/d10bfee104cc
https://www.cnblogs.com/wmr95/articles/8846749.html
网友评论