构建 PyTorch 项目时无法连接到 GPU
Can't connect to GPU when building PyTorch projects
在此之前,我可以通过 CUDA 运行时版本 10.2
连接到 GPU。但是后来我 运行 在设置我的一个项目时出错了。
Using torch 1.10.1+cu102 (NVIDIA GeForce RTX 3080)
UserWarning:
NVIDIA GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
经过一些阅读,似乎 sm_86
仅适用于 CUDA 版本 11.0
及更高版本。这就是为什么我升级到最新的 CUDA 版本并且之后无法连接到 GPU 的原因。
我试过很多方法,重装cuda工具包、PyTorch、torchvision之类的,但都没用。
我用过的CUDA工具包:
$ wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
$ sudo sh cuda_11.6.0_510.39.01_linux.run
我已经安装了 PyTorch(conda 和 pip 都试过了):
$ conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
$ pip3 install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
这些是一些基本信息:
(base) ubuntu@DESKTOP:~$ python
Python 3.9.5 (default, Jun 4 2021, 12:28:51)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.10.1+cu113'
>>> x = torch.rand(6,6)
>>> print(x)
tensor([[0.0228, 0.3868, 0.9742, 0.2234, 0.5682, 0.7747],
[0.2643, 0.3911, 0.3464, 0.5072, 0.4041, 0.4268],
[0.2247, 0.0936, 0.4250, 0.1128, 0.0261, 0.5199],
[0.0224, 0.7463, 0.1391, 0.8092, 0.3742, 0.2054],
[0.3951, 0.4205, 0.6270, 0.4561, 0.4784, 0.5958],
[0.8430, 0.5078, 0.7759, 0.5266, 0.4925, 0.7557]])
>>> torch.cuda.get_arch_list()
[]
>>> torch.cuda.is_available()
False
>>> torch.version.cuda
'11.3'
>>> torch.cuda.device_count()
0
以下是我的配置。
(base) ubuntu@DESKTOP:~$ ls -l /usr/local/ | grep cuda
lrwxrwxrwx 1 root root 21 Jan 24 13:47 cuda -> /usr/local/cuda-11.3/
lrwxrwxrwx 1 root root 25 Jan 17 10:52 cuda-11 -> /etc/alternatives/cuda-11
drwxr-xr-x 17 root root 4096 Jan 24 13:48 cuda-11.3
drwxr-xr-x 18 root root 4096 Jan 24 10:17 cuda-11.6
ubuntu版本:
(base) ubuntu@DESKTOP:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
nvidia-smi
:
(base) ubuntu@DESKTOP:~$ nvidia-smi
Mon Jan 24 17:22:42 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01 Driver Version: 511.23 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA GeForce ... On | 00000000:02:00.0 Off | N/A |
| 0% 26C P8 5W / 320W | 106MiB / 10240MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 4009 G /Xorg N/A |
| 0 N/A N/A 4025 G /xfce4-session N/A |
| 0 N/A N/A 4092 G /xfwm4 N/A |
| 0 N/A N/A 25903 G /msedge N/A |
+-----------------------------------------------------------------------------+
nvcc --version
:
(base) ubuntu@DESKTOP:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Mar_21_19:15:46_PDT_2021
Cuda compilation tools, release 11.3, V11.3.58
Build cuda_11.3.r11.3/compiler.29745058_0
我在回答我自己的问题。
PyTorch pip wheels 和 Conda 二进制文件随 CUDA 运行时一起提供。
但是CUDA一般不自带NVCC,需要和conda-forge/cudatoolkit-dev
分开安装,安装的时候很麻烦
所以,我所做的是从 Nvidia CUDA 工具包安装 NVCC。
$ wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
和 Conda Pytorch-GPU 版本
$ conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
事实证明这两个安装彼此不兼容。
所以我做的步骤是:
- 删除 Ubuntu 中的任何 Conda 环境。
- 清理 pip 列表和 Xonda 列表,直到 none 任何 PyTorch、torchvision、Cuda 等工作。
- 首先从 Nvidia 官网安装 Nvidia CUDA 工具包
cuda_11.3
。
- 仅重新安装 PyTorch。
$ pip3 install torch==1.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
在此之前,我可以通过 CUDA 运行时版本 10.2
连接到 GPU。但是后来我 运行 在设置我的一个项目时出错了。
Using torch 1.10.1+cu102 (NVIDIA GeForce RTX 3080)
UserWarning:
NVIDIA GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
经过一些阅读,似乎 sm_86
仅适用于 CUDA 版本 11.0
及更高版本。这就是为什么我升级到最新的 CUDA 版本并且之后无法连接到 GPU 的原因。
我试过很多方法,重装cuda工具包、PyTorch、torchvision之类的,但都没用。
我用过的CUDA工具包:
$ wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
$ sudo sh cuda_11.6.0_510.39.01_linux.run
我已经安装了 PyTorch(conda 和 pip 都试过了):
$ conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
$ pip3 install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
这些是一些基本信息:
(base) ubuntu@DESKTOP:~$ python
Python 3.9.5 (default, Jun 4 2021, 12:28:51)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.10.1+cu113'
>>> x = torch.rand(6,6)
>>> print(x)
tensor([[0.0228, 0.3868, 0.9742, 0.2234, 0.5682, 0.7747],
[0.2643, 0.3911, 0.3464, 0.5072, 0.4041, 0.4268],
[0.2247, 0.0936, 0.4250, 0.1128, 0.0261, 0.5199],
[0.0224, 0.7463, 0.1391, 0.8092, 0.3742, 0.2054],
[0.3951, 0.4205, 0.6270, 0.4561, 0.4784, 0.5958],
[0.8430, 0.5078, 0.7759, 0.5266, 0.4925, 0.7557]])
>>> torch.cuda.get_arch_list()
[]
>>> torch.cuda.is_available()
False
>>> torch.version.cuda
'11.3'
>>> torch.cuda.device_count()
0
以下是我的配置。
(base) ubuntu@DESKTOP:~$ ls -l /usr/local/ | grep cuda
lrwxrwxrwx 1 root root 21 Jan 24 13:47 cuda -> /usr/local/cuda-11.3/
lrwxrwxrwx 1 root root 25 Jan 17 10:52 cuda-11 -> /etc/alternatives/cuda-11
drwxr-xr-x 17 root root 4096 Jan 24 13:48 cuda-11.3
drwxr-xr-x 18 root root 4096 Jan 24 10:17 cuda-11.6
ubuntu版本:
(base) ubuntu@DESKTOP:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
nvidia-smi
:
(base) ubuntu@DESKTOP:~$ nvidia-smi
Mon Jan 24 17:22:42 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01 Driver Version: 511.23 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA GeForce ... On | 00000000:02:00.0 Off | N/A |
| 0% 26C P8 5W / 320W | 106MiB / 10240MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 4009 G /Xorg N/A |
| 0 N/A N/A 4025 G /xfce4-session N/A |
| 0 N/A N/A 4092 G /xfwm4 N/A |
| 0 N/A N/A 25903 G /msedge N/A |
+-----------------------------------------------------------------------------+
nvcc --version
:
(base) ubuntu@DESKTOP:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Mar_21_19:15:46_PDT_2021
Cuda compilation tools, release 11.3, V11.3.58
Build cuda_11.3.r11.3/compiler.29745058_0
我在回答我自己的问题。
PyTorch pip wheels 和 Conda 二进制文件随 CUDA 运行时一起提供。
但是CUDA一般不自带NVCC,需要和conda-forge/cudatoolkit-dev
分开安装,安装的时候很麻烦
所以,我所做的是从 Nvidia CUDA 工具包安装 NVCC。
$ wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
和 Conda Pytorch-GPU 版本
$ conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
事实证明这两个安装彼此不兼容。
所以我做的步骤是:
- 删除 Ubuntu 中的任何 Conda 环境。
- 清理 pip 列表和 Xonda 列表,直到 none 任何 PyTorch、torchvision、Cuda 等工作。
- 首先从 Nvidia 官网安装 Nvidia CUDA 工具包
cuda_11.3
。 - 仅重新安装 PyTorch。
$ pip3 install torch==1.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html