Pytorch与CUDA在Ubuntu上的本地安装失败

blpfk2vs  于 2022-11-29  发布在  其他
关注(0)|答案(2)|浏览(197)

我正在尝试使用CUDA安装PyTorch。我遵循了https://pytorch.org/get-started/locally/中提到的说明(使用conda安装)
conda安装pytorch Torch 视觉 Torch 音频cudatoolkit=11.3 -c pytorch
conda install命令运行时不会出现任何错误:

conda列表显示以下内容:

# Name                    Version                   Build  Channel

cudatoolkit               11.3.1               h2bc3f7f_2
pytorch                   1.11.0          py3.9_cuda11.3_cudnn8.2.0_0    pytorch
pytorch-mutex             1.0                        cuda    pytorch
torch                     1.10.2                   pypi_0    pypi
torchaudio                0.11.0               py39_cu113    pytorch
torchvision               0.11.3                   pypi_0    pypi

但当我检查GPU驱动程序和CUDA是否已启用并可由PyTorch访问时

torch.cuda.is_available()

传回false。
在安装Pytorch之前,我检查并确认了
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirementshttps://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions
以下是我的ubuntu服务器详细信息:

环境

  • 操作系统/内核:

Ubuntu 18.04.6 LTS(GNU/Linux 4.15.0-154-通用x86_64)
表下脚注:表1. CUDA 11.6中提到的本地Linux发行版支持
对于x86-64上的Ubuntu LTS,CUDA 11.6支持服务器LTS内核(例如18.04的4.15.x)。

  • 海湾合作委员会

Ubuntu 7.5.0- 3ubuntu 1 ~18.04)的最新版本

  • 格里伯克

(Ubuntu GLIBC 2.27-3ubuntu1.5)2.27个字符
图形处理器
GeForce ® GTX 1080钛合金处理器
内核头文件和开发包

$ uname -r
4.15.0-176-generic

据我所知,conda pytorch安装与CUDA将安装CUDA驱动程序太多。
我不知道我哪里做错了。提前感谢。
编辑:

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85

nvcc显示CUDA版本9.1
反之

$ nvidia-smi
Wed May 11 06:44:31 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104      Driver Version: 410.104      CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:05:00.0 Off |                  N/A |
| 25%   40C    P8    11W / 250W |     18MiB / 11177MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:06:00.0 Off |                  N/A |
| 25%   40C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  Off  | 00000000:09:00.0 Off |                  N/A |
| 25%   35C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      4119      G   /usr/lib/xorg/Xorg                             9MiB |
|    0      4238      G   /usr/bin/gnome-shell                           6MiB |
+-----------------------------------------------------------------------------+

nvidia-smi显示CUDA版本10.0
https://varhowto.com/check-cuda-version/本文提到nvcc指CUDA工具包,而nvidia-smi指NVIDIA驱动程序。
问题1:它是否显示在系统级有两种不同的CUDA安装?
Nvidia Cudatoolkit vs Conda Cudatoolkit我在conda环境中安装的CUDA工具包(版本11.3.1)与作为系统级安装的CUDA工具包不同(如nvccnvidia-smi的输出所示)。
Q2:根据上面的stackoverflow线程的回答,它们可以是分开的。或者这是我没有在本地安装cuda的原因吗?

jtjikinw

jtjikinw1#

我已经解决了这个问题。

免责声明:我是CUDA的新手。下面的答案是基于a)我在其他线程中读到的b)我的经验基于那些讨论。

  • 核心逻辑 *:CUDA驱动程序版本〉= CUDA运行时版本

参考:Different CUDA versions shown by nvcc and NVIDIA-smi
在大多数情况下,如果nvidia-smi报告的CUDA版本在数值上等于或高于nvcc -V报告的版本,则无需担心。这是CUDA中定义的兼容路径(较新的驱动程序/驱动程序API支持“较旧的”CUDA工具包/运行时API)。
当我使用conda的cudatoolkit时:

  • 驱动程序API:nvidia-smi
  • 运行时API:康达氏橡皮工具包

对于cudatoolkit11.3.1,我使用的是nvidia-smiCUDA版本:10.0

解决方案:升级NVIDIA驱动程序。

已按照https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-18-04-bionic-beaver-linux中得说明升级NVIDIA驱动程序
升级后,以下是nvidia-smi的输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| 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 ...  Off  | 00000000:05:00.0 Off |                  N/A |
| 27%   46C    P8    12W / 250W |     19MiB / 11177MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  Off  | 00000000:06:00.0 Off |                  N/A |
| 25%   44C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  Off  | 00000000:09:00.0 Off |                  N/A |
| 25%   39C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      3636      G   /usr/lib/xorg/Xorg                  9MiB |
|    0   N/A  N/A      4263      G   /usr/bin/gnome-shell                6MiB |
+-----------------------------------------------------------------------------+

现在驱动程序版本(11.4)〉=运行时版本(11.3.1)
PyTorch现在可以将CUDA与GPU结合使用:

In [1]: import torch

In [2]: torch.cuda.is_available()
Out[2]: True
axr492tv

axr492tv2#

是否正确安装了Nvidia驱动程序?键入nvida-smi进行验证,此问题可能是由驱动程序版本与cudatoolkit版本不匹配引起的。

相关问题