GPU驱动及CUDA安装流程介绍
1、安装前准备工作
确认GPU型号和操作系统版本
准备gpu驱动和CUDA软件包
在nvidia官网进行驱动包下载
2、下载对应的显卡驱动,CUDA驱动等安装包
GPU驱动下载链接
CUDA下载链接
选择合适的操作系统版本进行下载。
Linux系统均选择 Linux 64-bit、CUDA Toolkit选择对应版本
注意该版本一定要大于等于cuda软件的版本。
选择CUDA及GPU驱动版本,需同时考虑与客户程序的兼容性问题。
CUDA 12.0 建议搭配CUDA CUDA toolkit 12.0版本的GPU驱动
3、检查服务器GPU识别情况
安装GPU驱动之前需要在操作系统下查看GPU卡是否能够完全识别,如不能识别需要进行重新插拔、对调测试 步骤进行硬件排查,确保可以查看到所有的GPU
lspci|grep-i nvidia4、显卡驱动和CUDA卸载方法:
显卡驱动卸载方法:
/usr/bin/nvidia-uninstallCUDA卸载方法:
/usr/local/cuda-X.Y/bin/cuda-uninstaller老版本CUDA卸载方法
/usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl5、安装显卡驱动和必要的插件
5-1、安装gcc、g++编译器
GPU驱动安装时需要gcc编译器。
cuda安装samples测试程序进行make时需要g++,但安装cuda软件包时不需要。
CentOS 7
检查版本
gcc-vg++-v软件包安装
安装GCC、GCC-C++时建议挂载本地yum源来挂载
yum install gccyum install gcc-c++SUSE
检查版本
gcc-vg++-v软件包安装
zypperingcczypperingcc-c++Ubuntu
检查版本
gcc-vg++-v软件包安装
apt install gccapt install g++apt install make软件包检查
dpkg-l gccdpkg-l g++dpkg-l make5-2、安装kernel-devel和kernel-headers软件包
CentOS 7
安装kernel、kernel-devel、kernel-header时建议挂载本地yum源来挂载
yum install kernel-devel-$(uname-r)kernel-headers-$(uname-r)Ubuntu
Ubuntu可以不安装,也可以从阿里镜像站或网易镜像站下载,需注意内核版本。
SUSE
zypper install kernel-source-$(uname-r)只安装这一个即可
zypper install kernel-default-devel-$(uname-r)5-3、禁用系统自带的nouveau模块**
检查nouveau模块是否加载,已加载则先禁用
lsmod|grep nouveauCentOS 7
没有blacklist-nouveau.conf文件则创建
vim/usr/lib/modprobe.d/blacklist-nouveau.conf添加内容如下
blacklist nouveau options nouveau modeset=0执行如下命令使内核生效
dracut-force需要重启服务器后才可真正禁用nouveau
Ubuntu
vim/etc/modprobe.d/blacklist.conf在文本最后添加以下内容:
blacklist nouveau options nouveau modeset=0保存退出,执行以下命令生效:
update-initramfs-u重启操作系统
5-4、修改系统运行级别为文本模式
GPU驱动安装必须在文本模式下进行
CentOS 7
systemctl set-defaultmulti-user.targetUbuntu
systemctl stop lightdm systemctl set-defaultmulti-user.target(也可以不执行此命令)ctrl+alt+F1 切换到其他字符终端窗口(F7为图形中断窗口),或者init 3
SUSE
vim/etc/inittab修改id:5:initdefault:为id:3:initdefault:
重启系统后,使禁用nouveau模块配置生效并进入文本模式
5-5、GPU驱动安装
(1)、root用户下进行GPU驱动
赋予驱动包安装权限
chmod+xNVIDIA-xxx.run(2)、root用户下进行GPU驱动
./NVIDIA-Linux-x86_64-x.y.run--no-opengl-files可选参数:
--no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。(适用于图形化界面安装显示显卡的情况,若选择此参数,可以理解为将该显卡当成运算卡来用)
--no-x-check:表示安装驱动时不检查X服务,非必需。(不调整为文本模式适用)
--no-nouveau-check:表示安装驱动时不检查nouveau,非必需。(没有执行上面的nouveau禁用)
5-6、GPU驱动设置内存常驻模式
CentOS 7
1、配置GPU驱动内存常驻模式使得GPU驱动模式设置为常驻内存:
nvidia-smi-pm12、设置开机自启动
vim/etc/rc.d/rc.local在文件中添加一行
nvidia-smi-pm14、赋予/etc/rc.d/rc.local文件可执行权限
chmod+x/etc/rc.d/rc.local若无/etc/rc.d/rc.local,也可修改/etc/rc.local
vim/etc/rc.localchmod+x/etc/rc.localUbuntu
下面的操作只适合Ubuntu18.04
也可以参考此文档
1、创建文件:
vim/etc/systemd/system/rc-local.service2、将下面的文字复制里面
[Unit]Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local[Service]Type=forking ExecStart=/etc/rc.local start TimeoutSec=0StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99[Install]WantedBy=multi-user.target上面的操作只适用于Ubuntu 18.04,下面的操作适用于全部的Ubuntu版本
1、创建文件:
vim/etc/rc.local2、在文本中写入
#!/bin/sh -envidia-smi-pm1exit03、赋予可执行权限
chmod+x/etc/rc.local4、启动服务并设置服务开机自启动
systemctl enable rc-local.servicesystemctl start rc-local.servicesystemctl status rc-local.service6、重启系统后验证
SUSE
vim/etc/init.d/after.local没有就新建
nvidia-smi-pm1chmod+x/etc/init.d/after.local安装完GPU驱动后,可以使用nvidia-smi命令进行GPU状态查看及相关配置。
nvidia-smi6、安装CUDA
安装CUDA之前要先确定一下CUDA的版本最高支持到多大,此处是12.4,证明是最大支持的CUDA版本为12.4,可以装低版本的,尽量不要安装比12.4高的CUDA。具体的可以去官网进行查询
nvidia-smi安装CUDA链接可以在这里根据官网的操作,wget下载完成,然后sh直接安装,若机器禁止连外网,也可以复制后面的链接,在别的笔记本电脑上下载一下该驱动,然后上传到机器上,并sh进行安装
执行完sh后会没有任何反馈,这个是正常的,我们稍作片刻,等待弹出此界面后输入accept即可
因为前面已经安装了显卡驱动了,需要取消Driver前面的X,然后只安装CUDA相关参数,最后选择Install进行安装。
安装完后会有日志提示,安装成功
7、配置CUDA环境变量
接着我们需要添加CUDA的环境变量
vim~/.bashrc在环境变量末尾加入该命令(具体cuda版本视情况而改变)
exportPATH=/usr/local/cuda-X.Y/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/cuda-X.Y/lib64:$LD_LIBRARY_PATHexportCUDA_HOME=/usr/local/cuda编译一下环境变量
source~/.bashrc至此我们安装cuda成功,可以通过以下命令查看cuda信息:
查看CUDA版本信息:
nvcc--versionnvcc-V8、压力测试
压力测试请软件请自行下载,也可联系作者要百度网盘链接
将文件进行解压
tar-zxvf gpu-burn-master.tar.gz进入gpu-burn-master文件夹内执行make进行gpu-burn文件进行压力测试
./gpu_burn 秒数这个只能用cuda版本为12.9以下的版本,如果版本为13.0以上的版本,需要进行文本编译Makefile
将前4行
ifneq("$(wildcard /usr/bin/nvcc)","")CUDAPATH?=/usrelseifneq("$(wildcard /usr/local/cuda/bin/nvcc)","")CUDAPATH?=/usr/local/cuda endif调整为
ifneq("$(wildcard /usr/local/cuda/bin/nvcc)","")CUDAPATH?=/usr/local/cudaelseifneq("$(wildcard /usr/bin/nvcc)","")CUDAPATH?=/usr endif先去检测/usr/local/cuda/bin/nvcc中是否有cuda版本,如果没有再去/usr中去检测
修改第27行和28行的数值
将
COMPUTE?=70CUDA_VERSION?=13.2.0COMPUTE 数值查询方式参考值
| GPU系列 | 性能值 |
|---|---|
| V100 | COMPUTE = 70 |
| T4 | COMPUTE = 75 |
| A100 | COMPUTE = 80 |
| RTX 30xx | COMPUTE = 86 |
| RTX 40xx | COMPUTE = 89 |
| H100 | COMPUTE = 90 |
查询方法:
nvidia-smi--query-gpu=name,compute_cap--format=csv此处查询的数值为7.0,则COMPUTE ?= 70
CUDA_VERSION填写的版本为实际安装的cuda版本
该版本为修改好的版本,直接可以兼容cuda13.0以上的版本,之前版本仅能兼容12.9及以下的版本
新建一个窗口实时观察显卡状态
