本教程仅适用于新环境,安装了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
这样就完成所有的环境安装和验证啦~