【问题标题】:PyTorch with CUDA and Nvidia card: RuntimeError: CUDA error: all CUDA-capable devices are busy or unavailable, but torch.cuda.is_available() is True带有 CUDA 和 Nvidia 卡的 PyTorch:RuntimeError:CUDA 错误:所有支持 CUDA 的设备都忙或不可用,但 torch.cuda.is_available() 为 True
【发布时间】:2021-12-23 10:34:23
【问题描述】:

问题:

在 CentOS 7 上运行的 Nvidia GPU 上使用 CUDA 运行 PyTorch 脚本时,我偶尔会遇到以下 CUDA 错误。

如果我跑:

python3 -c 'import torch; print(torch.cuda.is_available()); torch.randn(1).to("cuda")'​

我得到以下输出:

True​
Traceback (most recent call last):​
  File "<string>", line 1, in <module>​
RuntimeError: CUDA error: all CUDA-capable devices are busy or unavailable​
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.​
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

PyTorch 似乎认为 GPU 可用,但我不能在它的内存上放任何东西。当我重新启动计算机时,错误消失了。我似乎无法让错误持续出现。

【问题讨论】:

    标签: pytorch cuda nvidia


    【解决方案1】:

    当我在 Python 之外运行 nvidia-smi 时,它显示了一个在 GPU 上运行的进程,尽管我取消了 PyTorch 脚本的执行:

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 460.27.04    Driver Version: 460.27.04    CUDA Version: 11.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  Tesla V100-PCIE...  On   | 00000000:00:06.0 Off |                    0 |
    | N/A   29C    P0    33W / 250W |   1215MiB / 32510MiB |      0%   E. Process |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |    0   N/A  N/A     18805      C   python3                          1211MiB |
    +-----------------------------------------------------------------------------+
    

    如果我终止进程(使用PID=18805),通过运行kill -9 18805,该进程将不再出现在nvidia-smi 中,并且错误不会再次出现。

    非常欢迎任何关于更好解决方案的见解,或者如何首先避免这个问题。

    【讨论】:

      猜你喜欢
      • 2011-10-21
      • 2015-07-10
      • 2016-12-10
      • 2021-07-12
      • 1970-01-01
      • 2013-01-07
      • 2018-11-09
      • 1970-01-01
      • 2021-08-21
      相关资源
      最近更新 更多