如何解决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 举报,一经查实,本站将立刻删除。