CUDA 初始化:CUDA 未知错误 - 这可能是由于环境设置不正确

Bul*_*ula 6 python pytorch

我正在尝试安装具有 CUDA 支持的手电筒。

这是我的collect_env.py脚本的结果:

PyTorch version: 1.7.1+cu101
Is debug build: False
CUDA used to build PyTorch: 10.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 20.04.1 LTS (x86_64)
GCC version: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Clang version: Could not collect
CMake version: Could not collect

Python version: 3.9 (64-bit runtime)
Is CUDA available: False
CUDA runtime version: 10.1.243
GPU models and configuration: GPU 0: GeForce GTX 1080
Nvidia driver version: 460.39
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] numpy==1.19.2
[pip3] torch==1.7.1+cu101
[pip3] torchaudio==0.7.2
[pip3] torchvision==0.8.2+cu101
[conda] blas                      1.0                         mkl  
[conda] cudatoolkit               10.1.243             h6bb024c_0  
[conda] mkl                       2020.2                      256  
[conda] mkl-service               2.3.0            py39he8ac12f_0  
[conda] mkl_fft                   1.3.0            py39h54f3939_0  
[conda] mkl_random                1.0.2            py39h63df603_0  
[conda] numpy                     1.19.2           py39h89c1606_0  
[conda] numpy-base                1.19.2           py39h2ae0177_0  
[conda] torch                     1.7.1+cu101              pypi_0    pypi
[conda] torchaudio                0.7.2                    pypi_0    pypi
[conda] torchvision               0.8.2+cu101              pypi_0    pypi

Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

这是输出 nvcc - V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
Run Code Online (Sandbox Code Playgroud)

最后,这里是输出 nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.39       Driver Version: 460.39       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  GeForce GTX 1080    Off  | 00000000:01:00.0  On |                  N/A |
|  0%   52C    P0    46W / 180W |    624MiB /  8116MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       873      G   /usr/lib/xorg/Xorg                101MiB |
|    0   N/A  N/A      1407      G   /usr/lib/xorg/Xorg                419MiB |
|    0   N/A  N/A      2029      G   ...AAAAAAAAA= --shared-files       90MiB |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行时

print(torch.cuda.is_available())
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at  /pytorch/c10/cuda/CUDAFunctions.cpp:100.)
  return torch._C._cuda_getDeviceCount() > 0
Run Code Online (Sandbox Code Playgroud)

我已执行重新启动,并已按照此处详述的安装后步骤进行操作

小智 71

遇到同样的问题,就我而言,解决方案非常简单,但找到它并不容易。我必须删除并插入 nvidia_uvm 模块。所以:

> sudo rmmod nvidia_uvm
> sudo modprobe nvidia_uvm
Run Code Online (Sandbox Code Playgroud)

就这样。就在这些命令collect_env.py 报告“Is CUDA available: False”之前。之后:“CUDA 是否可用:正确”

  • 究竟为什么会发生这种情况?我最终不得不经常这样做。 (5认同)
  • 我猜 NVIDIA 内核模块太脆弱了,而且会随机损坏。您可以考虑使用“sudo modprobe -r nvidia_uvm && sudo modprobe nvidia_uvm”作为解决方法,避免重新启动整个计算机来解决驱动程序问题。 (4认同)
  • 为我工作。我必须在取消暂停后运行它。 (3认同)
  • 通常 /dev/nvidia-uvm /dev/nvidia-uvm-tools 丢失,或者其主要/次要设备编号错误(请参阅 `ls -l /dev/nvidia-uvm*` - 我见过主要设备编号是 511 和 235)。当重新安装或卸载并重新加载 nvidia_uvm 模块时,设备文件会取消链接/重新创建,问题就会得到解决。 (2认同)