在Ubuntu22.04安装cuda、cudnn及pytorch

0 / 1948

从 Ubuntu 20.04 LTS 升级至 Ubuntu 22.04 LTS解决了哪些问题?

  1. 解决了部分较新机型无WiFi的问题:Ubuntu 20.04 LTS的默认内核发布于四年前,自然识别不了现在市面上流通的无线网卡,比如今年的联想拯救者2022 Y9000P就使用Intel AX211无线网卡,千辛万苦装好了Ubuntu 20.04,缺发现没有无线网用(插网线可以,但没办法带出宿舍做实验,到图书馆或实验室装逼),现在只需要重新安装Ubuntu 22.04 LTS,开机即有无线网,配合手机热点,在校园各处全覆盖装逼。
  2. 解决了Nvidia独立显卡驱动不适配的问题:在Ubuntu 20.04上,系统推荐安装的Nvidia独立显卡驱动版本是 nvidia-driver-470,但CUDA 11.6建议的版本是 nvidia-driver-510,虽然勉强能用,但是版本总是不断更新,想有最好的机器学习体验,就需要保证各组件的版本匹配,并较新。如果在安装Ubuntu 22.04时勾选允许第三方驱动,你会惊喜得发现,系统安装后,开机就已经装好了最新的 nvidia-driver-510,也能直接在终端中直接运行“nvidia-smi"命令(该命令用来简单判断Nvidia独立显卡驱动是否正常工作)。
  3. 支持最新版本的CUDA和cuDNN。

禁用nouveau

在安装CUDA之前,还需禁用nouveau,否则可能导致安装失败:

# 编辑配置文件:
sudo gedit /etc/modprobe.d/blacklist.conf

# 在最后一行添加:
blacklist nouveau
options nouveau modeset=0

# 改好后执行命令:
sudo update-initramfs -u

# 重启系统
sudo reboot

# 重启后打开终端,输入:
lsmod | grep nouveau

# 没有输出,意味着禁用nouveau成功。

NVIDIA驱动安装

打开左下角显示应用程序->软件和更新->设置->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。选择类似“Nvidia driver metapackage 来自 470 (专有)”这样的,点击应用更改即可联网自动安装。其中470是你显示的可选驱动版本,以你电脑显示的为准。

下载与安装CUDA

这里以CUDA11.7.0为例,介绍ubuntu22.04系统上CUDA的安装。我们可以从NVIDIA官网CUDA下载页面,网址为https://developer.nvidia.com/cuda-toolkit-archive,点击CUDA Toolkit 11.7.0下载相应版本的CUDA11.7.0。

选择Linux→ x86_64→Ubuntu→ 22.04。然后弹出三种安装方法,根据安装经验这里推荐采用runfile(local)方法。这是由于CUDA的安装过程需要很多依赖库文件,CUDA的run文件虽然比另外两种安装方法的文件大,但是它包含了所有的依赖库文件,所以采用相对来说很容易安装成功。

下面为安装CUDA11.7.0的Ubuntu安装指令:

sudo apt-get update   #更新软件列表
 
sudo apt-get install g++  #安装必要依赖
sudo apt-get install gcc
sudo apt-get install make

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo chmod 777 cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run

运行后弹出界面,点击Continue,然后再输入accept,通过Enter键,取消Driver和450.51.05的安装,然后点击Install。

配置CUDA的环境变量:

sudo vim /etc/profile
# 加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

source /etc/profile
nvcc -V

安装Anaconda、cudnn和pytorch

wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh
sudo chmod 777 Anaconda3-2022.05-Linux-x86_64.sh
sudo ./Anaconda3-2022.05-Linux-x86_64.sh

conda create -n dev python==3.9.12
# 避免自己配置cudann的繁琐操作,我们直接用conda命令进行极简安装
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

如果官方提供的版本号与nvidia-smi显示的不同,没有关系,因为cuda在大版本上可以向下兼容,比如我的nvidia-smi显示CUDA VERSION是11.7,则理论上低于11.7的11.x都可以兼容,各位按照自己的情况复制命令安装即可。

验证是否安装成功:

conda activate dev
python

>>> import torch
>>> torch.cuda.is_available()

若此时输出True,则完成了对显卡的支持。