Linux安装cuda和cudnn实战教程

查看系统配置

一、查看系统

使用以下命令可以查看 Linux 的系统架构

cat /etc/issue

会输出如下结果:

Debian GNU/Linux 10 \n \l

可以看到系统的版本为 Debian10

二、查询显卡型号

命令行输入:

nvidia-smi

输出内容如下,可以查看显卡驱动(Driver Version)的版本号为 535.104.12,支持的 CUDA 版本为 12.2 以下

(base) root@7v0ut9u0b2vdl-0:/user# nvidia-smi
Fri Feb 14 09:47:08 2025       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.12             Driver Version: 535.104.12   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| 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 A800 80GB PCIe          On  | 00000000:36:00.0 Off |                    0 |
| N/A   31C    P0              46W / 300W |      7MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |

CUDA 安装

一、安装依赖包

首先需要安装 Linux 环境缺少的依赖包文件

sudo apt-get update
sudo apt-get install gcc g++
sudo apt install kmod
sudo apt install libxml2

二、 下载CUDA

访问 CUDA Toolkit Archive | NVIDIA Developer 官网,选择 CUDA12.2.0 版本,依次选择,Linux->x86_64->Debian->10->runfile (local)

安装CUDA的方法有好几种,例如deb法,在这里我们主要使用runfile方法来安装runtime CUDA

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run

执行上述命令完成下载,如果出现 443,多执行几次。

三、CUDA 安装

sudo sh cuda_12.2.0_535.54.03_linux.run

执行上述命令,键入accept,如果已经安装显卡驱动,则取消掉“Driver”这个选项(在Driver位置键入 enter取消),光标移至Install,按ENTER键完成安装。

[!error] Driver CUDA冲突
问题描述

# sudo cat /var/log/cuda-installer.log 
[INFO]: Driver not installed. 
[INFO]: Checking compiler version... 
[INFO]: gcc location: /usr/bin/gcc 
[INFO]: gcc version: gcc version 8.3.0 (Debian 8.3.0-6) 
[INFO]: Initializing menu 
[INFO]: nvidia-fs.setKOVersion(2.16.1) 
[INFO]: Setup complete 
[INFO]: Installing: Driver 
[INFO]: Installing: 535.54.03 
[INFO]: Executing NVIDIA-Linux-x86_64-535.54.03.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd 2>&1 
[INFO]: Finished with code: 256 
[ERROR]: Install of driver component failed. Consult the driver log at /var/log/nvidia-installer.log for more details. 
[ERROR]: Install of 535.54.03 failed, quitting

解决方案
此时打开一个新的终端窗口,输入

nvidia-smi

如果会显示的话,说明你的电脑已经安装过了driver CUDA,需要在安装选择界面里面取消掉“Driver”这个选项,光标移至Install,按ENTER键完成安装。

到这里,你的电脑里就安装了两个CUDA:第一个 driver CUDA 就是当你输入指令nvidia-smi后显示的信息。第二个CUDA 就是我们通过runfile方法下载的runtime CUDA 12.2.0,此时下载成功的CUDA 11.0的位置在/usr/local/cuda-12.2目录下(注意:此时只是说你下载了CUDA 12.2,但是并不能说你的深度学习实验就可以用它来加速,因此需要配置环境变量,这也是最后一步)

四、配置CUDA环境变量

终端输入

vim ~/.bashrc

键入 “i” 进入 INSERT模式,可以进行回车操作,复制以下变量,键入“ESC”退出INSERT模式。

#在安装成功后的显示中可以看到cuda的安装位置
export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA HMOE=$CUDA HMOE:/usr/local/cuda-12.2

按 ESC 退出写入,最后键入:wq即可保存并退出。

终端输入以下命令,使环境变量生效

source ~/.bashrc

五、验证安装

在终端输入:

nvcc -V

即可显示如下: (如果未显示cuda 12.2,则说明刚才的指令source ~/.bashrc没有立即生效,此时重启电脑,再输入nvcc -V ,若显示如下则成功!!!!)

(base) root@b8dut2v0rsevs-0:/user# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jun_13_19:16:58_PDT_2023
Cuda compilation tools, release 12.2, V12.2.91
Build cuda_12.2.r12.2/compiler.32965470_0

cuDNN 安装

一、cuDNN 下载

进入 cuDNN 9.7.1 Downloads | NVIDIA Developer 官网,依次选择 Linux->x86_64->Tarball->12->deb (network)

wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.7.1.26_cuda12-archive.tar.xz

二、cuDNN 安装

下载 cuDNN 的压缩包(通常是 .tgz.zip 文件),解压并将文件复制到 CUDA 安装目录中:

tar -xvf cudnn-linux-x86_64-9.7.1.26_cuda12-archive.tar.xz
sudo cp cudnn-linux-x86_64-9.7.1.26_cuda12-archive/include/cudnn*.h /usr/local/cuda-12.2/include
sudo cp cudnn-linux-x86_64-9.7.1.26_cuda12-archive/lib/libcudnn* /usr/local/cuda-12.2/lib64
sudo chmod a+r /usr/local/cuda-12.2/include/cudnn*.h /usr/local/cuda-12.2/lib64/libcudnn*

更新系统动态链接器的缓存,确保系统能够找到新的库文件:

sudo ldconfig /usr/local/cuda-12.2/lib64

[!warning] cuDNN 的多个文件(共享库)不是符号链接
问题描述

(base) root@9i80kippsrhue-0:/usr/local/cuda-12.2/lib64# sudo ldconfig /usr/local/cuda-12.2/lib64
ldconfig: /usr/local/cuda-12.2/lib64/libcudnn_ops.so.9 is not a symbolic link

ldconfig: /usr/local/cuda-12.2/lib64/libcudnn_heuristic.so.9 is not a symbolic link

ldconfig: /usr/local/cuda-12.2/lib64/libcudnn_graph.so.9 is not a symbolic link

ldconfig: /usr/local/cuda-12.2/lib64/libcudnn_engines_runtime_compiled.so.9 is not a symbolic link

ldconfig: /usr/local/cuda-12.2/lib64/libcudnn_engines_precompiled.so.9 is not a symbolic link

ldconfig: /usr/local/cuda-12.2/lib64/libcudnn_cnn.so.9 is not a symbolic link

ldconfig: /usr/local/cuda-12.2/lib64/libcudnn_adv.so.9 is not a symbolic link

ldconfig: /usr/local/cuda-12.2/lib64/libcudnn.so.9 is not a symbolic link

警告表明 cuDNN 的多个文件(共享库)不是符号链接。如果 cuDNN 安装未正确设置,或者在安装过程中未创建预期的符号链接,则可能会发生这种情况。

解决方案
手动为 cuDNN 库创建符号链接,确保它们指向文件的最新版本,因为安装的是 cuDNN 9.7.1 ,因此可以将未链接的库通过下述进行链接。

sudo ln -sf libcudnn_ops.so.9.7.1 libcudnn_ops.so.9 
sudo ln -sf libcudnn_heuristic.so.9.7.1 libcudnn_heuristic.so.9 
sudo ln -sf libcudnn_graph.so.9.7.1 libcudnn_graph.so.9 
sudo ln -sf libcudnn_engines_runtime_compiled.so.9.7.1 libcudnn_engines_runtime_compiled.so.9 
sudo ln -sf libcudnn_engines_precompiled.so.9.7.1 libcudnn_engines_precompiled.so.9 
sudo ln -sf libcudnn_cnn.so.9.7.1 libcudnn_cnn.so.9 
sudo ln -sf libcudnn_adv.so.9.7.1 libcudnn_adv.so.9 
sudo ln -sf libcudnn.so.9.7.1 libcudnn.so.9

再次更新系统动态链接器的缓存,发现不再警告

sudo ldconfig /usr/local/cuda-12.2/lib64

三、验证安装

检查文件是否正确复制:

ls /usr/local/cuda/include/cudnn*.h
ls /usr/local/cuda/lib64/libcudnn*

运行以下命令检查 cuDNN 版本:

cat /usr/local/cuda-12.2/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

您应该看到类似以下的输出:

(base) root@d120lbmapqp7l-0:/user/cuda# cat /usr/local/cuda-12.2/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 9
#define CUDNN_MINOR 7
#define CUDNN_PATCHLEVEL 1
--
#define CUDNN_VERSION (CUDNN_MAJOR * 10000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

/* cannot use constexpr here since this is a C-only file */

参考文章
cuda和cudnn的安装教程(全网最详细保姆级教程)_cudnn安装-优快云博客
Ubuntu18.04安装CUDA11.0 Installation failed. See log at /var/log/cuda-installer.log for details. install of driver component failed.-优快云博客
超详细介绍Ubuntu系统安装CUDA和cuDNN【一站式服务!!!】_ubuntu cuda-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伪_装

您的支持,是我持续创作的光

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值