服务器最近GPU驱动老是掉,命令nvidia-smi无法输出,GPU相关代码无法运行,重启之后恢复正常。在排查之后发现是因为近期内核版本更新过,驱动出现兼容性问题,需要重装驱动。
为了避免再次因为内核版本更新出现该问题,需要关闭内核的自动升级,再重装显卡驱动。
1. 内核自动升级关闭
1.1 禁用unattended-upgrades:
打开“/etc/apt/apt.conf.d/20auto-upgrades”文件,将其中的“1”全部改成“0”,保存退出。
sudo vi /etc/apt/apt.conf.d/20auto-upgrades
1.2 禁用自动更新:
打开“/etc/apt/apt.conf.d/10periodic”文件,将其中的“1”全部改成“0”,保存退出。
sudo vi /etc/apt/apt.conf.d/10periodic
1.3 重启服务器
sudo reboot
2. 显卡驱动重装
2.1 更新软件列表,安装必要软件、依赖
安装驱动前需要更新软件列表和安装必要软件、依赖
sudo apt-get updatesudo apt-get install g++sudo apt-get install gccsudo apt-get install make
2.2 禁用nouveau驱动(通用的驱动程序)
-
打开“/etc/modprobe.d/blacklist-nouveau.conf”文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
-
在文件中添加以下内容,保存并退出
blacklist nouveaublacklist lbm-nouveauoptions nouveau modeset=0alias nouveau offalias 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
2.3 卸载原有驱动
sudo apt-get remove --purge nvidia*
2.4 安装新驱动
-
获取服务器支持的驱动信息
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
2.5 安装后在执行“nvidia-smi”出现下述问题,重启即可
2.6 安装完成。
如果驱动还掉,可以考虑重装CUDA。
CUDA卸载可参考:服务器:CUDA卸载(Ubuntu 20.04)
CUDA安装可参考:服务器:多CUDA配置