服务器最近GPU驱动老是掉,命令nvidia-smi无法输出,GPU相关代码无法运行,重启之后恢复正常。在排查之后发现是因为近期内核版本更新过,驱动出现兼容性问题,需要重装驱动。

为了避免再次因为内核版本更新出现该问题,需要关闭内核的自动升级,再重装显卡驱动。
打开“/etc/apt/apt.conf.d/20auto-upgrades”文件,将其中的“1”全部改成“0”,保存退出。
sudo vi /etc/apt/apt.conf.d/20auto-upgrades 
打开“/etc/apt/apt.conf.d/10periodic”文件,将其中的“1”全部改成“0”,保存退出。
sudo vi /etc/apt/apt.conf.d/10periodic 
sudo reboot 安装驱动前需要更新软件列表和安装必要软件、依赖
sudo apt-get update sudo apt-get install g++ sudo apt-get install gcc sudo apt-get install make 打开“/etc/modprobe.d/blacklist-nouveau.conf”文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf 在文件中添加以下内容,保存并退出
blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off 关闭nouveau
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf 重新生成内核
sudo update-initramfs -u 重启服务器
sudo reboot 重启后执行下属命令,没有输出则说明nouveau禁用成功
lsmod | grep nouveau sudo apt-get remove --purge nvidia* 获取服务器支持的驱动信息
ubuntu-drivers devices 
后面有“reconmmended”的驱动即为系统推荐安装的驱动程序,这里系统推荐安装的为“nvidia-driver-535-server-open”。“nvidia-driver-535-server-open”和“nvidia-driver-535-server”的区别如下:
nvidia-driver-535-server-open:这个版本提供了开放源代码的驱动,可能具有更广泛的兼容性,并且通常由社区进行维护和更新。这个版本可能更适合那些更注重开源和自由软件的用户,或者需要在开放环境中运行的服务器。
nvidia-driver-535-server:这个版本可能是官方提供的闭源驱动,由NVIDIA公司直接维护和支持。它通常会提供更好的性能和稳定性,但可能缺乏开源版本的某些优势。这个版本可能更适合那些对性能和稳定性有较高要求的用户,或者在闭源环境中运行的服务器。
考虑到服务器主要用途是跑深度学习模型,所以这次选择安装的驱动为“nvidia-driver-535-server”。
安装驱动
sudo apt install nvidia-driver-535-server 

之前安装的CUDA需要重装,不然驱动还是会掉。
CUDA卸载可参考:服务器:CUDA卸载(Ubuntu 20.04)
CUDA安装可参考:服务器:多CUDA配置