Skip to content

GPU 驱动及 CUDA 安装流程指南

摘要: 本指南提供了在 Linux (CentOS/Ubuntu/SUSE) 服务器上部署 NVIDIA GPU 环境的标准作业程序 (SOP)。涵盖了从硬件检查、依赖安装、Nouveau 禁用、驱动安装到 CUDA 环境配置的全过程,特别包含了针对 SXM 架构的 Fabric Manager 配置。

1. 安装前准备

1.1 硬件与系统检查

确保 GPU 已物理连接并被系统识别。

bash
# 查看 PCI 设备
lspci | grep -i nvidia

如果无输出,请检查物理插槽或电源连接。

1.2 软件获取

请访问 NVIDIA 官方下载最新版本:

1.3 环境清理

如果系统存在旧版本,建议彻底卸载。

bash
# 卸载驱动
/usr/bin/nvidia-uninstall -s

# 卸载 CUDA
/usr/local/cuda-X.Y/bin/cuda-uninstaller

1.4 安装基础依赖

使用本地源安装编译所需的头文件和工具链。

CentOS 7:

bash
yum install -y gcc gcc-c++ tar make bzip2 pkgconfig \
    libglvnd-devel elfutils-libelf-devel \
    kernel-devel-$(uname -r) kernel-headers-$(uname -r)

Ubuntu:

bash
apt-get update
apt-get install -y gcc g++ tar make pkg-config build-essential \
    libglvnd-dev linux-headers-$(uname -r)

1.5 禁用 Nouveau

Nouveau 是开源驱动,必须禁用才能安装官方闭源驱动。

  1. 检查加载状态:
    bash
    lsmod | grep nouveau
  2. 创建屏蔽配置: CentOS/RHEL: /usr/lib/modprobe.d/blacklist-nouveau.confUbuntu: /etc/modprobe.d/blacklist.conf
    bash
    blacklist nouveau
    options nouveau modeset=0
  3. 重建内核镜像并重启:
    bash
    # CentOS
    dracut -f
    # Ubuntu
    update-initramfs -u
    
    reboot

2. GPU 驱动安装

运行级别

驱动安装必须在字符界面 (Runlevel 3) 下进行,且需停止 X-Server。

2.1 执行安装

假设驱动包名为 NVIDIA-Linux-x86_64-xxx.run

bash
chmod +x NVIDIA-Linux-x86_64-*.run

# -a: 接受许可, -s: 静默模式, -Z: 禁用 Nouveau (再次确保), --no-opengl-files: 不安装 OpenGL (避免图形界面冲突)
./NVIDIA-Linux-x86_64-*.run -a -s -Z --no-opengl-files

2.2 持久化模式 (Persistence Mode)

开启持久化模式可避免驱动频繁加载/卸载,降低延迟。

bash
# 方法 A: 开启系统服务 (推荐)
systemctl enable nvidia-persistenced
systemctl start nvidia-persistenced

# 方法 B: 命令行设置 (临时)
nvidia-smi -pm 1

2.3 Fabric Manager (SXM GPU 必选)

对于 A100/H100/H800 SXM (NVLink) 版本,必须安装 Fabric Manager,否则 GPU 无法通过 NVLink 通信。

bash
# 安装 (以 RPM 为例,版本需与驱动完全一致)
rpm -ivh nvidia-fabricmanager-*.rpm

# 启动服务
systemctl enable --now nvidia-fabricmanager

3. CUDA Toolkit 安装

3.1 执行安装

bash
chmod +x cuda_*.run

# --no-opengl-libs: 不安装 OpenGL 库
# 注意: 在交互界面中,取消勾选 "Driver" (因为第 2 步已安装)
./cuda_*.run --no-opengl-libs

3.2 环境变量配置

编辑 /etc/profile~/.bashrc

bash
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

生效并验证:

bash
source /etc/profile
nvcc -V

4. 验证与维护

4.1 常用验证命令

组件验证命令预期结果
驱动状态nvidia-smi显示 GPU 列表、显存、功率
CUDA 版本nvcc -V显示版本号
Fabric Managersystemctl status nvidia-fabricmanagerActive (Running)
持久化服务systemctl status nvidia-persistencedActive (Running)
Nouveau`lsmodgrep nouveau`

4.2 常见问题

  • rmmod: ERROR: Module nouveau is in use: 说明 Nouveau 仍在运行,请确保已切换到 Init 3 模式并重启过系统。
  • 安装失败: 检查 /var/log/nvidia-installer.log。通常是因为 kernel-devel 版本与当前运行内核 uname -r 不一致。

AI-HPC Organization