一,检查确认系统内核版本与内核开发包kernel-devel,kernel-headers版本,以及显卡型号
#查看系统内核版本
cat /proc/version
#检查是否安装kernel-devel与kernel-headers
rpm -q kernel-devel
rpm -q kernel-headers
如果安装系统时没勾选开发选项则需要安装kernel-devel与kernel-headers
#安装kernel-devel与kernel-headers
yum install kernel-devel kernel-headers gcc dkms -y
#也可以
yum install kernel-devel
yum install kernel-headers
yum install gcc
yum install dkms需要注意系统内核要与kernel-devel,kernel-headers版本一致
二,检查显卡是否存在以及确定版本
#确认显卡是否存在
lspci | grep -i nvidia
三,屏蔽系统默认自带nouveau驱动
#编辑dist-blacklist.conf
vim /lib/modprobe.d/dist-blacklist.conf
#注释掉nvidiafb
#blacklist nvidiafb
#文件末尾添加如下内容,然后保存
blacklist nouveau
options nouveau modeset=0
#重启系统
reboot
#查看nouveau是否已禁用
lsmod | grep nouveau
#如果没有输出,则禁用成功四,重建initramfs image
#删除
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
#重建
dracut /boot/initramfs-$(uname -r).img $(uname -r)五,如果安装的系统是带图形界面的切换到文本模式
#修改运行级别为文本模式
systemctl set-default multi-user.target
#也可以执行
init 3
#切回图形界面
init 5六,安装显卡驱动
#执行权限
chmod +x NVIDIA-Linux-x86_64-535.274.02.run
#运行驱动程序
sh NVIDIA-Linux-x86_64-驱动版本.run出现下图说明以上所有操作均没问题


如出现

这步要特别注意,如果显卡做计算的同时,还作为显示输出,则选yes回车,这样在安装完驱动,改回图形界面时,会比较简单。如果显卡不做输出图形界面使用,可以选择no
七,验证是否安装成功
#执行
nvidia-smi
出现如图所示信息,确认显卡驱动安装成功。查看显卡驱动版本,CUDA driver版本为右上角(此处应该是12.2)
如需卸载驱动
./NVIDIA-Linux-x86_64-535.54.03.run --uninstall八,安装CUDA Toolkit
chmod +x cuda_12.1.0_530.30.02_linux.run
./cuda_12.1.0_530.30.02_linux.run
#如下图所示:
选中“Drivers”,会重新覆盖安装显卡驱动,如显卡驱动已安装好,不需要选中
不要选中“Kernel Objects”,否则会提示报错
安装完成后如下图所示:

配置cuda环境变量:
vim ~/.bash_profile
#添加如下内容:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#保存后运行如下命令:
source ~/.bash_profile
#查看cuda版本
nvcc -V运行命令“nvcc -V”,查看cuda runtime版本,该版本号要<= nvidia-smi右上角显示的cuda版本:

再次运行nvidia-smi命令,可以看到右上角的CUDA版本变成了12.1。如果安装cuda的时候未选择“install drvier”,则右上角的CUDA版本还是12.2
如果需要删除cuda,则直接删除所在目录就可以了
注:CUDA Driver版本(nvidia-smi命令查看)需要大于等于CUDA runtime版本(nvcc --version命令查看)
CUDA runtime版本需要大于等于CUDA libraries版本(Pytorch附带下载的CUDA toolkit版本)
CUDA说明:
nvidia-smi属于driver API
nvcc属于runtime API
nvidia-smi #查看CUDA Driver版本,Driver版本可以兼容老版本
nvcc -V #查看CUDA Runtime版本
CUDA Driver版本 要求>= CUDA Runtime版本
如果CUDA版本(nvcc -V)为11.7,那PyTorch只能使用11.7及以下版本
nvcc是CUDA编译器,只知道runtime 版本,甚至不知道是否安装了GPU driver。
用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。
用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。
