Ubuntu18.04安装 NVIDIA显卡驱动+CUDA+cuDNN+Pytorch

Ubuntu18.04安装NVIDIA显卡驱动

查看显卡硬件型号

sudo ubuntu-drivers devices
# 结果
== /sys/devices/pci0000:3a/0000:3a:00.0/0000:3b:00.0 ==
modalias : pci:v000010DEd00002484sv000010DEsd0000146Bbc03sc00i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-460-server - distro non-free
driver   : nvidia-driver-460 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

可以看到推荐的驱动recommended为: nvidia-driver-460 - distro non-free

如果提示该命令找不到, 则需要安装驱动查看工具

sudo apt-get install ubuntu-drivers-common

安装驱动

上面命令有一个推荐安装recommended的驱动版本nvidia-driver-460 - distro non-free, 如果同意安装该版本的驱动, 则直接执行:

sudo ubuntu-drivers autoinstall

当然也可以使用 apt-get 命令安装自己想要安装的版本,比如我想安装 460 这个版本号的版本,终端输入:sudo apt-get install nvidia-460 就自动安装了

查看是否安装成功

执行命令, 如果出现如下显卡信息, 则说明安装成功, 如果没有出现显卡信息可以尝试重启解决

 nvidia-smi

image-20210330112539927

Ubuntu18.04安装CUDA

下载

官方下载地址: https://developer.nvidia.com/zh-cn/cuda-downloads

image-20210330114122740

安装

选择操作系统及安装类型后, 会提示安装步骤

# 下载
$ wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
# 赋予执行权限
$ sudo chmod a+x cuda_11.1.0_455.23.05_linux.run
# 安装
$ sudo sh cuda_11.1.0_455.23.05_linux.run

在安装时, 遇到报错:

image-20210330123818245

百度到的原因是说已经安装了多个驱动版本, 见: https://shliang.blog.csdn.net/article/details/108994449

卸载驱动的步骤为:

1、查看系统中安装了哪些NVIDIA的驱动

sudo dpkg --list | grep nvidia-*

2、卸载NVIDIA驱动:

sudo apt-get purge nvidia*
或
sudo apt-get remove --pure nvidia*

这里我没有卸载已有的驱动, 而是直接运行了下面的run命令, 添加了一些参数 在run命令加上了参数--override

$ sudo sh cuda_11.1.0_455.23.05_linux.run --toolkit --silent --override
  • --silent是静默安装, 会直接跳过在安装过程中询问的提示, 如果想按照安装提示来选择安装步骤, 可以不加上该参数
  • --override应该是能够覆盖之前安装过的驱动

配置环境变量

默认安装路径为/usr/local/cuda-11.1

clear@ubuntu-server:~$ ls -l /usr/local | grep cuda
lrwxrwxrwx  1 root root   21 Mar 30 12:29 cuda -> /usr/local/cuda-11.1/
drwxr-xr-x 15 root root 4096 Mar 30 12:30 cuda-11.1

编辑~/.bashrc文件

vim ~/.bashrc
# 添加下面两行
export PATH=/usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH

激活~/.bashrc设置

source ~/.bashrc

测试cuda是否安装成功

方式一: 查看版本信息, nvcc -V 查看是否安装成功

执行命令nvcc -V

clear@ubuntu-server:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Tue_Sep_15_19:10:02_PDT_2020
Cuda compilation tools, release 11.1, V11.1.74
Build cuda_11.1.TC455_06.29069683_0
方式二: 编译安装cuda目录下的测试用例
cd /usr/local/cuda-11.1/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

img

卸载cuda

如果安装cuda失败,或者是安装的版本不能够匹配,此时可能面临重新安装,同样也要卸载之前安装的cuda, 直接删除安装位置的cuda文件:

sudo rm -rf /usr/local/cuda
sudo rm -rf /usr/local/cuda-11.1

Ubuntu18.04安装cuDNN

下载

官网: https://developer.nvidia.com/rdp/cudnn-download, 需要自己注册才能下载

选择对应的CUDA版本以及操作系统

image-20210330133220766

这里网页是用windows的Google Chrome浏览器访问的, 而最终是需要下载到linux系统中

于是在这里右键下载链接然后复制链接, 再去linux系统中使用wget命令下载该链接, 但是发现返回结果是403 forbidden, 无法下载, 那么可以点击下载链接, 让Google Chrome浏览器进行下载, 然后在下载内容页面右键这个下载任务, 然后复制这里的下载链接, 就可以在linux上进行下载了

解压

tar zxvf cudnn-11.2-linux-x64-v8.1.1.33.tgz

注意: cudnn解压后的文件夹名称为cuda ,将对应文件复制到 /usr/local中的cuda内

把解压文件中的文件复制到cuda的安装目录下就可以了

sudo cp cuda/lib64/* /usr/local/cuda-11.1/lib64/   
sudo cp cuda/include/* /usr/local/cuda-11.1/include/

测试cuDNN

下载另外三个测试包(黄色标注)

image-20210417095744513

安装:

sudo dpkg -i libcudnn8_8.1.1.33-1+cuda11.2_amd64.deb
sudo dpkg -i libcudnn8-dev_8.1.1.33-1+cuda11.2_amd64.deb
sudo dpkg -i libcudnn8-samples_8.1.1.33-1+cuda11.2_amd64.deb

执行:

cp -r /usr/src/cudnn_samples_v8/ /home/alex/cudnn_samples_v8
cd /home/alex/cudnn_samples_v8/mnistCUDNN
make make
./mnistCUDNN

出现下图信息则说明安装成功

image-20210408160500850

Ubuntu18.04安装Pytorch

进入官网: https://pytorch.org/get-started/locally/, 选择对应的CUDA和系统版本

image-20210330172319091

这里的CUDA版本为11.1, 选择的安装方式是pip, 执行官网指定的安装命令

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

注:

  • 安装之前一定要查看CUDA的版本, 可以使用下面命令查看CUDA版本
cat /usr/local/cuda/version.txt
或者
nvcc -v

nvcc这个命令需要配置CUDA环境变量后才能使用

vim ~/.bashrc
# 添加下面两行
export PATH=/usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH
  • pip安装命令一定要使用官网的命令, 不能直接pip install torch,torchvision, torchaudio, 因为默认的pip源下载的包版本可能与cuda所需的版本不符, 不过官网的pip下载可能会有点慢, 需要耐心等待

我之前就是直接使用的默认pip版本进行安装, 所以在运行pytorch时出现报错:

GeForce RTX 3070 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_61 sm_70 sm_75 compute_37.

意思是安装的CUDA的算力是sm_86, 和现在安装的PyTorch支持的算力不匹配, 所以需要重新安装对应的pytorch版本

这个网站可以知道显卡的算力: https://developer.nvidia.com/zh-cn/cuda-gpus#compute

image-20210330173340435

测试GPU环境是否安装好

# 进入pytorch的虚拟环境
python
import torch
torch.cuda.is_available()
# true为成功, false为失败
原文地址:https://www.cnblogs.com/gcxblogs/p/14669522.html