在没有云厂商一键脚本的机器上手动装 GPU 驱动和 CUDA,坑主要在内核版本、nouveau 和图形模式。这篇按一次成功安装的顺序记:准备工作、清障碍、装驱动、装 CUDA。
准备工作
先确认 GPU 型号和系统版本:
lspci | grep VGA # 查看集成显卡
lspci | grep NVIDIA # 查看NVIDIA显卡

输出前缀 00:01.0 是显卡代号,用它看指定显卡的详细信息:
# 查看指定显卡的详细信息
lspci -v -s 41:00.0
uname -m && cat /etc/redhat-release
驱动和 CUDA 包从官网取:CUDA 在 https://developer.nvidia.com/cuda-downloads ,老版本 CUDA 在 developer.nvidia.com/cuda-toolkit-archive 归档页,驱动在 https://www.nvidia.cn/geforce/drivers/ 。本次用的版本:
# cuda
wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux.run
# NVIDIA驱动
wget https://cn.download.nvidia.com/XFree86/Linux-x86_64/515.76/NVIDIA-Linux-x86_64-515.76.run
装之前检查系统能不能完全识别 GPU 卡,识别不到要先做重新插拔、对调等硬件排查。
清障碍:编译环境、nouveau、文本模式
装编译环境。注意:编译 CUDA 的 samples 测试程序需要 g++,但安装 CUDA 软件包本身不需要。
# 检查版本
gcc -v
g++ -v
# 软件包安装
yum -y install gcc gcc-c++ dkms
版本坑:NVIDIA-Linux-x86_64-515.76.run 在内核 3.10 上安装有问题,内核 4.4 或 4.5 正常,最新 5.x 内核也有问题。
检查 nouveau 是否加载,已加载就先禁用:
# 检查nouveau模块是否加载,已加载则先禁用
lsmod | grep nouveau

# 如果没有blacklist-nouveau.conf文件则创建
vim /usr/lib/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
# 执行如下命令使内核生效(需要重启服务器后才可真正禁用nouveau)
dracut -force
GPU 驱动安装必须在文本模式下进行:
# GPU驱动安装必须在文本模式下进行
systemctl set-default multi-user.target
重启系统,确认 nouveau 禁用配置和文本模式都生效:
# 检查禁用nouveau模块配置与文本模式是否生效。
lsmod | grep nouveau
安装 GPU 驱动
root 用户下执行:
chmod +x NVIDIA-Linux-x86_64-450.80.02.run
./NVIDIA-Linux-x86_64-515.76.run --kernel-source-path=/usr/src/kernels/4.4.215-1.el7.elrepo.x86_64 --no-opengl-files --ui=none --no-questions --accept-license

配置驱动内存常驻模式,并设置开机自启:
nvidia-persistenced
# 设置开机自启动
vim /etc/rc.d/rc.local
# 在文件中添加一行
nvidia-persistenced
# 赋予/etc/rc.d/rc.local文件可执行权限
chmod +x /etc/rc.d/rc.local
#若无/etc/rc.d/rc.local,也可修改/etc/rc.local
vim /etc/rc.local
chmod +x /etc/rc.local
查看 GPU 状态和相关配置:
nvidia-smi

安装 CUDA
已经装过 GPU 驱动的话,CUDA 安装时不要再选 GPU 驱动。
chmod +x cuda_11.7.1_515.65.01_linux.run
./cuda_11.7.1_515.65.01_linux.run --no-opengl-libs

新版本 CUDA 的安装界面,注意 Driver 选项就是是否安装 GPU 驱动,已装过就不要勾选:


配环境变量,写进 /etc/profile 对所有用户生效,然后用 nvcc -V 验证:
# 添加到/etc/profile文件中,对所有用户生效
vim /etc/profile
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
source /etc/profile
# 测试cuda安装是否正确,环境变量是否识别成功
nvcc -V
收尾注意
- 内核版本要提前和驱动版本对一遍,版本矩阵不对基本装不上。
- 禁用 nouveau 的配置必须重启后才真正生效,没重启就装驱动大概率失败。
nvcc -V没输出,先查 PATH 是否 source 过。

















暂无评论内容