ali*_*050 5 python gpu pytorch
我的工作站配备 4 个 A6000 GPU。将 Torch 张量从一个 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')
Run Code Online (Sandbox Code Playgroud)
有什么想法导致这个问题的原因是什么吗?
其他可能有用的信息:
(有两个 nvlinks 我手动删除了试图解决问题)
GPU0 GPU1 GPU2 GPU3 CPU Affinity NUMA Affinity
GPU0 X SYS SYS SYS 0-63 N/A
GPU1 SYS X SYS SYS 0-63 N/A
GPU2 SYS SYS X SYS 0-63 N/A
GPU3 SYS SYS SYS X 0-63 N/A
Run Code Online (Sandbox Code Playgroud)
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_Mar__8_18:18:20_PST_2022
Cuda compilation tools, release 11.6, V11.6.124
Build cuda_11.6.r11.6/compiler.31057947_0
Run Code Online (Sandbox Code Playgroud)
NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6
Run Code Online (Sandbox Code Playgroud)
编辑:添加一些屏幕截图
看来是有状态的。更改启动新的 python 运行时后哪些 GPU 可以正常工作。
解决方案是禁用 IOMMU。在我们的服务器上,在 BIOS 设置中
/Advanced/AMD CBS/NBIO Common Options/IOMMU -> IOMMU - Disabled
有关更多信息,请参阅PyTorch问题线程。
归档时间: |
|
查看次数: |
390 次 |
最近记录: |