微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pytorch多GPU问题

如何解决Pytorch多GPU问题

我想用2个GPU(id 5、6)训练模型,所以我用CUDA_VISIBLE_DEVICES=5,6 train.py运行代码。但是,当我打印torch.cuda.current_device时,我仍然得到ID 0而不是5,6。但是torch.cuda.device_count是2,这很正确。如何正确使用GPU5,6?

解决方法

很可能是正确的。 PyTorch仅看到两个GPU(因此索引为0和1),它们实际上就是您的GPU 5和6。

使用nvidia-smi检查实际使用情况。如果仍然不一致,则可能需要设置环境变量:

export CUDA_DEVICE_ORDER=PCI_BUS_ID

(请参见Inconsistency of IDs between 'nvidia-smi -L' and cuDeviceGetName()

,

您可以检查设备名称以验证它是否是该GPU的正确名称。但是,我认为,当您将Cuda_Visible设置在外部时,您已被迫将手电筒仅看着2 gpu。因此,割炬将为它们手动将索引设置为0和1。因此,当您检查current_device时,它将输出0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。