Linux 服务器手动安装 NVIDIA 驱动与 CUDA 的完整流程

在没有云厂商一键脚本的机器上手动装 GPU 驱动和 CUDA,坑主要在内核版本、nouveau 和图形模式。这篇按一次成功安装的顺序记:准备工作、清障碍、装驱动、装 CUDA。

准备工作

先确认 GPU 型号和系统版本:

lspci | grep VGA     # 查看集成显卡
lspci | grep NVIDIA  # 查看NVIDIA显卡
gpu-install01

输出前缀 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
gpu01
# 如果没有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
gpu02

配置驱动内存常驻模式,并设置开机自启:

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
gpu03

安装 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
gpu04

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

gpu05
gpu06

配环境变量,写进 /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 过。
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容