在Ubuntu22.04安装cuda、cudnn及pytorch

0 / 295

从 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,则完成了对显卡的支持。