1. 项目概述
最近在AlmaLinux 9.7系统上部署了一台配备NVIDIA RTX Pro 6000(Blackwell架构)显卡的工作站,用于深度学习训练。整个过程踩了不少坑,特别是驱动安装和CUDA环境配置环节。本文将详细记录完整的安装流程和避坑经验,适用于所有基于RHEL 9的Linux发行版。
注意:Blackwell架构的显卡驱动安装与常规NVIDIA显卡略有不同,特别是在内核模块处理和环境配置方面需要特别注意。
2. 环境准备与依赖安装
2.1 系统基础环境检查
在开始安装前,首先需要确认系统环境是否符合要求:
bash复制# 检查系统版本
cat /etc/redhat-release
# 检查内核版本
uname -r
# 检查GCC版本
gcc --version
AlmaLinux 9.7默认使用5.14内核,这个版本对Blackwell架构显卡支持良好。如果系统内核版本过低,建议先升级内核:
bash复制sudo dnf update kernel -y
2.2 安装必要依赖包
安装编译驱动所需的基础工具链:
bash复制sudo dnf install kernel-devel kernel-headers gcc make dkms elfutils-libelf-devel libglvnd-devel -y
这里特别说明几个关键包的作用:
kernel-devel:提供内核头文件,用于编译内核模块dkms:动态内核模块支持,方便后续内核升级后自动重编译驱动libglvnd-devel:OpenGL库支持
经验:在RHEL 9系系统中,
libglvnd-devel必须安装,否则可能导致图形界面异常。
3. NVIDIA驱动安装
3.1 禁用Nouveau驱动
Nouveau是Linux自带的开源NVIDIA驱动,会与官方驱动冲突,必须禁用:
bash复制# 检查Nouveau是否加载
lsmod | grep nouveau
如果有输出,则需要禁用。创建配置文件:
bash复制sudo vim /etc/modprobe.d/blacklist-nouveau.conf
添加以下内容:
code复制blacklist nouveau
options nouveau modeset=0
然后重建initramfs:
bash复制sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
3.2 切换到文本模式安装
为避免图形界面干扰,建议切换到文本模式安装:
bash复制sudo systemctl set-default multi-user.target
sudo reboot
3.3 驱动安装过程
下载对应Blackwell架构的驱动(以550.54.14为例):
bash复制chmod +x NVIDIA-Linux-x86_64-550.54.14.run
sudo ./NVIDIA-Linux-x86_64-550.54.14.run
安装过程中需要注意:
- 选择"安装DKMS模块"选项
- 接受32位兼容库安装
- 不要安装OpenGL库(已通过libglvnd处理)
安装完成后验证:
bash复制nvidia-smi
如果看到显卡信息输出,说明驱动安装成功。
3.4 恢复图形界面
bash复制sudo systemctl set-default graphical.target
sudo reboot
4. CUDA工具包安装
4.1 确定CUDA版本
通过nvidia-smi查看推荐CUDA版本:
bash复制nvidia-smi
输出顶部会显示"CUDA Version: 12.4"等信息,这就是推荐安装的版本。
4.2 下载并安装CUDA
从NVIDIA官网下载对应版本的runfile安装包:
bash复制wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
安装时注意:
- 取消勾选"Driver"选项(已单独安装)
- 选择安装所有组件
- 接受许可协议
4.3 环境变量配置
编辑~/.bashrc文件:
bash复制vim ~/.bashrc
添加以下内容:
code复制export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
使配置生效:
bash复制source ~/.bashrc
验证安装:
bash复制nvcc -V
5. GPU压力测试
5.1 安装GPU Burn
bash复制git clone https://github.com/wilicc/gpu-burn.git
cd gpu-burn
make CUDAPATH=/usr/local/cuda SMS="75 80 86 89 90 120"
注意:SMS参数需要包含Blackwell架构的计算能力标识符(如120)
5.2 运行压力测试
bash复制./gpu_burn 600
测试过程中可以监控显卡状态:
bash复制watch -n 1 nvidia-smi
5.3 常见问题解决
如果遇到"cuInit returned 3"错误,需要禁用HMM:
bash复制sudo bash -c 'cat > /etc/modprobe.d/nvidia-uvm.conf <<EOF
options nvidia_uvm uvm_disable_hmm=1
EOF'
sudo modprobe -r nvidia_uvm
sudo modprobe nvidia_uvm
6. 日常维护与监控
6.1 显卡状态监控
实时监控:
bash复制nvidia-smi -l 1
查看详细显卡信息:
bash复制nvidia-smi -q
6.2 驱动更新
当内核升级后,需要重新编译驱动:
bash复制sudo dkms install -m nvidia -v 550.54.14
6.3 温度控制
设置风扇转速(需启用coolbits):
bash复制nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=70"
7. 经验总结
在实际部署过程中,Blackwell架构显卡的安装有几个关键点需要注意:
- 内核版本必须足够新(建议5.14+)
- 禁用Nouveau必须彻底,包括重建initramfs
- CUDA安装时不要重复安装驱动
- Blackwell架构需要指定正确的计算能力标识符
另外,在长时间运行深度学习任务时,建议:
- 定期检查显卡温度
- 设置适当的风扇转速
- 监控显存使用情况
- 考虑使用nvidia-persistenced服务保持驱动常驻