【Linux运维】ubuntu 22.04 简易安装深度学习环境

发布于 2025年03月21日

本教程仅适用于新环境,安装了nvidia独立显卡的机器,本教程全程命令行操作,无桌面演示

安装显卡驱动

先检测一下有什么驱动版本可以安装,保证机器是联网的,不然是查不到数据的

ubuntu-drivers devices

查询结果如下:

user@user:~$ ubuntu-drivers devices
== /sys/devices/pci0000:15/0000:15:01.0/0000:16:00.0 ==
modalias : pci:v000010DEd00002684sv000010DEsd0000167Cbc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-550 - distro non-free recommended
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-550-open - third-party non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

从上面结果可以看到,最新的是 nvidia-driver-550 我们就用这个版本

# 执行命令安装
sudo apt install nvidia-driver-550

等待几分钟,安装完成之后,我们来验证一下驱动是否成功

nvidia-smi # 查询驱动版本

输出结果如下:

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.100             Driver Version: 550.100   CUDA Version: 12.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 L40S                    Off | 00000000:16:00.0 Off |                    0 |
| N/A   27C    P8              21W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA L40S                    Off | 00000000:27:00.0 Off |                    0 |
| N/A   26C    P8              20W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   2  NVIDIA L40S                    Off | 00000000:38:00.0 Off |                    0 |
| N/A   28C    P8              21W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   3  NVIDIA L40S                    Off | 00000000:5A:00.0 Off |                    0 |
| N/A   28C    P8              22W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   4  NVIDIA L40S                    Off | 00000000:98:00.0 Off |                    0 |
| N/A   28C    P8              21W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   5  NVIDIA L40S                    Off | 00000000:A8:00.0 Off |                    0 |
| N/A   28C    P8              21W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   6  NVIDIA L40S                    Off | 00000000:B8:00.0 Off |                    0 |
| N/A   27C    P8              22W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   7  NVIDIA L40S                    Off | 00000000:D8:00.0 Off |                    0 |
| N/A   27C    P8              23W / 350W |     10MiB / 46068MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
|    1   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
|    2   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
|    3   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
|    4   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
|    5   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
|    6   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
|    7   N/A  N/A      3881      G   /usr/lib/xorg/Xorg                            4MiB |
+---------------------------------------------------------------------------------------+

这边就看到这些框框的输出,说明驱动是安装成功了,我这边是多卡服务器,所以比较长。

(没错,像L40S这种显卡,我有8张)

如果只出现一行报错的英文,说明还需要重启电脑,请执行以下命令

# 这个命令是可选的,当无法驱动的时候,可以重启尝试一下
sudo reboot

安装Cuda

这一段是从nvidia的cuda下载地址获取的,最好还是自己去地址获取最新的版本
参考地址:https://developer.nvidia.com/cuda-downloads

依次选择:Linux > X86_64 > Ubuntu > 22.04 > deb(local)

就可以得到以下命令(最好自己去官网获取,偷懒可以直接用下面的)

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4

配置Cuda环境变量

编辑用户工作目录下的:.bashrc

sudo vi ~/.bashrc # 这里可以看自己喜好,用vi还是vim或者nano什么都可以

把下面的文本,写到 .bashrc 最下面就可以保存退出

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CPUTI/lib64
export CUDA_HOME=/usr/local/cuda/bin
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME

执行命令,让配置文件立即生效

source ~/.bashrc

验证Cuda环境是否生效(前置条件)

这一步很重要,如果环境变量不生效了,就可以换个博客看了,因为本教程太久远。

nvcc -V

如果出现以下结果,说明Cuda配置完成

user@user-Rack-Server:~$ nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:16:06_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0

安装cudnn

这是一个加速库,可选,但是我会选.

可以在官网查询到cudnn的安装命令,参考地址如下:

https://developer.nvidia.com/cudnn-downloads

依次选择: Linux > X86_64 > Ubuntu > 22.04 > deb(local)

就可以得到以下命令,依次执行即可

wget https://developer.download.nvidia.com/compute/cudnn/9.4.0/local_installers/cudnn-local-repo-ubuntu2204-9.4.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.4.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.4.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn

到这里,就可以算是全部安装完成了。

番外

下面就是番外了,可以看到,我们的显卡驱动,cuda都是有验证过有效的,那么新安装的cudnn要如何验证呢?

可选安装miniconda

以下命令,可以从miniconda官网得到,参考地址如下:
https://docs.anaconda.com/miniconda/miniconda-install/

偷懒可以直接用下面的,反正也是官网的

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh

# 下面代码建议执行,可以让控制台有个前缀提示
~/miniconda3/bin/conda init bash

效果如下:

(base) user@user:~$

其中(base)代表你当前的conda环境,具体请自行查询资料

使用conda创建环境

# 创建一个名字为testCudaCudnn的环境,用于测试本机的cuda和cudnn是否正确运行
conda create --name testCudaCudnn python=3.8
conda activate testCudaCudnn

环境切换完成,效果如下

(testCudaCudnn) user@user:~$ 

可以看到已经换了环境名称

安装一个pytorch,准备接下来的验证

命令获取地址:

https://pytorch.org/get-started/locally/

依次选择好你的环境参数,就可以得到下面的命令

# 这里的命令对应的是12.4版本的,最好还是去torch的官网查询最新的安装命令
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

很高兴你能看到这里,奖励一个CUDA和CUDNN的验证脚本

请把下面内容保存到文件:test_cuda_cudnn.py

import torch
print("CUDA Version: ", torch.version.cuda)
print("CuDNN Version: ", torch.backends.cudnn.version())

把test_cuda_cudnn.py这个脚本移动到你喜欢的文件夹,然后切换到这个文件夹下面

开始验证cudnn是否成功

# 注意,执行命令的时候,当前的目录下面应是存在:test_cuda_cudnn.py
# 且环境要是刚刚创建的testCudaCudnn环境名称
python test_cuda_cudnn.py

正确输出如下

CUDA Version:  12.4
CuDNN Version:  90100

这样就完成所有的环境安装和验证啦~



评论