我在一个有4个A6000 GPU的工作站上。将 Torch Tensor从一个GPU移动到另一个GPU会损坏数据,无声地!!!
请参见下面的简单示例。
x
>tensor([1], device='cuda:0')
x.to(1)
>tensor([1], device='cuda:1')
x.to(2)
>tensor([0], device='cuda:2')
x.to(3)
>tensor([0], device='cuda:3')
有什么想法是什么原因造成的这个问题?
其他可能有用的信息:
(有两个nvlink,我手动删除试图解决问题)
第一个
编辑:添加一些截图
它似乎是有状态的。在启动新的python运行时后,更改哪些GPU可以正常工作。
1条答案
按热度按时间uqjltbpv1#
解决方案是禁用IOMMU。在我们的服务器上,在BIOS设置中
/Advanced/AMD CBS/NBIO Common Options/IOMMU -> IOMMU - Disabled
有关详细信息,请参阅PyTorch问题线程。