CentOS9安装NVIDIA驱动

安装驱动

  1. 启用官方CRB源
1
dnf config-manager --set-enabled crb
  1. 安装EPEL源
1
2
dnf install -y epel-release epel-next-release
dnf makecache
  1. 安装依赖
1
dnf install -y kernel-headers-$(uname -r) kernel-devel-$(uname -r) tar bzip2 make automake gcc gcc-c++ pciutils elfutils-libelf-devel libglvnd-opengl libglvnd-glx libglvnd-devel acpid pkgconfig dkms

如果安装headers和devel没有当前可用的,可以先安装dkms或更新kernel然后重启继续这步。

  1. 禁用Nouveau驱动程序

在安装NVIDIA驱动程序之前,需要禁用系统中的Nouveau开源驱动程序。查看Nouveau是否开启:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# lsmod | grep nouveau
nouveau 3076096 0
drm_gpuvm 49152 1 nouveau
drm_exec 16384 2 drm_gpuvm,nouveau
gpu_sched 69632 1 nouveau
i2c_algo_bit 16384 1 nouveau
drm_display_helper 299008 1 nouveau
drm_ttm_helper 16384 2 nouveau
ttm 114688 2 drm_ttm_helper,nouveau
drm_kms_helper 266240 3 drm_display_helper,drm_ttm_helper,nouveau
mxm_wmi 12288 1 nouveau
drm 806912 9 gpu_sched,drm_kms_helper,drm_exec,drm_gpuvm,drm_display_helper,drm_ttm_helper,ttm,nouveau
video 77824 2 asus_wmi,nouveau
wmi 45056 5 video,asus_wmi,wmi_bmof,mxm_wmi,nouveau

编辑 /etc/modprobe.d/blacklist.conf 文件,并在文件末尾添加以下行:

1
2
blacklist nouveau
options nouveau modeset=0

生成initramfs并重启服务器

1
2
dracut --force
reboot
  1. 添加官方NVIDIA CUDA源
1
2
dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel9/$(uname -i)/cuda-rhel9.repo
dnf makecache
  1. 安装NVIDIA驱动
1
dnf module install -y nvidia-driver:latest-dkms
  1. 检查驱动是否安装成功
1
2
3
lsmod | grep nvidia
lsmod | grep nouveau
nvidia-smi

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@deepseek ~]# lsmod | grep nvidia
nvidia_drm 143360 0
nvidia_modeset 1548288 1 nvidia_drm
nvidia_uvm 3956736 0
nvidia 89878528 2 nvidia_uvm,nvidia_modeset
drm_ttm_helper 16384 2 amdgpu,nvidia_drm
drm_kms_helper 266240 4 drm_display_helper,amdgpu,drm_ttm_helper,nvidia_drm
drm 806912 13 gpu_sched,drm_kms_helper,drm_exec,drm_suballoc_helper,drm_display_helper,nvidia,drm_buddy,amdgpu,drm_ttm_helper,nvidia_drm,ttm,amdxcp
video 77824 2 amdgpu,nvidia_modeset
[root@deepseek ~]# lsmod | grep nouveau
[root@deepseek ~]# nvidia-smi
Fri Feb 21 14:52:46 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.86.15 Driver Version: 570.86.15 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| 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 GeForce RTX 4090 Off | 00000000:01:00.0 Off | Off |
| 30% 34C P8 22W / 450W | 2MiB / 49140MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+

安装CUDA工具包

CUDA官方链接:https://developer.nvidia.com/cuda-downloads

在线安装

  1. 添加官方NVIDIA CUDA源(驱动安装第4步已添加可省略)
1
2
dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel9/$(uname -i)/cuda-rhel9.repo
dnf makecache
  1. 安装CUDA
1
dnf -y install cuda-toolkit-12-9

本地安装

  1. 下载CUDA安装包
1
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-rhel9-12-8-local-12.8.0_570.86.10-1.x86_64.rpm

安装包URL:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=RHEL&target_version=9&target_type=rpm_local

  1. 安装CUDA
1
2
3
rpm -i cuda-repo-rhel9-12-8-local-12.8.0_570.86.10-1.x86_64.rpm
dnf clean all
dnf -y install cuda-toolkit-12-8

配置环境变量

1
2
3
4
5
6
vim ~/.bashrc
#添加
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
#保存退出,更新环境变量
source ~/.bashrc

安装完成后重启系统

增加容器支持

当运行容器docker run --gpus all报错docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]时,需要增加容器支持

1
2
3
4
dnf install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
# 重启docker daemon
systemctl restart docker

执行成功后,docker daemon.json会增加以下内容:

1
2
3
4
5
6
7
8
{
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}

安装cuDNN

  • cuDNN(CUDA Deep Neural Network library)是专门用于深度学习的GPU加速库。它建立在CUDA之上,提供了优化的实现,适用于常见的深度学习操作,比如卷积、池化、归一化等。
  • cuDNN通过提供高效的计算内核,简化了在深度学习框架(如TensorFlow和PyTorch)中使用GPU加速的复杂性。

vllm运行报错ImportError: libcudnn.so.9: cannot open shared object file: No such file or directory需要安装cuDNN

cuDNN官方链接:https://developer.nvidia.com/cudnn-downloads

在线安装

  1. 添加官方NVIDIA CUDA源(驱动安装第4步已添加可省略)
1
2
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/$(uname -i)/cuda-rhel9.repo
dnf clean all
  1. 安装cuDNN(2选1)
1
2
3
4
# 直接安装cudnn
dnf -y install cudnn
# 安装CUDA12特定软件包
dnf -y install cudnn-cuda-12

本地安装

  1. 下载cuDNN安装包
1
wget https://developer.download.nvidia.com/compute/cudnn/9.10.0/local_installers/cudnn-local-repo-rhel9-9.10.0-1.0-1.x86_64.rpm
  1. 安装cuDNN
1
2
3
rpm -i cudnn-local-repo-rhel9-9.10.0-1.0-1.x86_64.rpm
dnf clean all
dnf -y install cudnn

安装cuSPARSELt库

cuSPARSELt 是 NVIDIA 提供的一个库,专门用于加速稀疏矩阵运算。它主要用于以下目的:

  1. 稀疏矩阵乘法
    优化稀疏矩阵与密集矩阵之间的乘法运算,提高计算效率。
  2. 高性能计算
    利用 GPU 的并行计算能力,显著提升稀疏矩阵运算的性能。
  3. 机器学习和深度学习
    在深度学习模型中,稀疏矩阵运算可以用于减少计算量和内存占用,提高推理速度。
  4. 支持多种数据类型
    支持不同的数据类型和精度,包括半精度浮点数和单精度浮点数。

vllm运行报错ImportError: libcusparseLt.so.0: cannot open shared object file: No such file or directory需要安装cuSPARSELt

cuSPARSELt官方链接:https://developer.nvidia.com/cusparselt-downloads

在线安装

  1. 添加官方NVIDIA CUDA源(驱动安装第4步已添加可省略)
1
2
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/$(uname -i)/cuda-rhel9.repo
dnf clean all
  1. 安装cuSPARSELt库
1
dnf -y install libcusparselt0 libcusparselt-devel

安装NCCL

NCCL(NVIDIA Collective Communications Library)是一个用于加速多GPU通信的库。它的主要功能包括:

  1. 高效通信
    提供优化的通信原语,如广播、聚合、减少等,用于多GPU之间的数据交换。
  2. 支持多种拓扑结构
    能够在单机多卡和多机多卡环境中高效工作,支持复杂的网络拓扑。
  3. 集成性
    与深度学习框架(如 TensorFlow 和 PyTorch)无缝集成,简化分布式训练的实现。
  4. 可扩展性
    设计用于处理大规模的GPU集群,支持数百个GPU之间的通信。
  5. 自动化优化
    NCCL 自动选择最佳的通信路径和算法,以最大化带宽和最小化延迟。

vllm运行报错ImportError: libnccl.so.2: cannot open shared object file: No such file or directory需要安装NCCL

NCCL官方链接:https://docs.nvidia.com/deeplearning/nccl/install-guide/index.html

在线安装

  1. 添加官方NVIDIA CUDA源(驱动安装第4步已添加可省略)
1
2
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/$(uname -i)/cuda-rhel9.repo
dnf clean all
  1. 安装NCCL
1
dnf -y install libnccl libnccl-devel libnccl-static

CentOS9安装NVIDIA驱动
https://www.intx.work/posts/b5134985.html
发布于
2025年3月11日
更新于
2025年5月15日
许可协议