在使用GPU服务器的过程中,你可能遇到过这样的问题:nvidia-smi 昨天还好好的,今天突然出错了。
$ nvidia-smi Failed to initialize NVML: Driver/library version mismatch
出现此问题的原因是NVIDIA驱动库版本与系统内核模块不一致。要修复此问题,我们只需删除当前的 nvidia 驱动程序并重新安装正确的 NVIDIA 驱动程序版本即可。我们可以参考以下步骤来修复这个错误。
使用命令行查询当前显卡驱动使用的内核版本
$ cat /proc/driver/nvidia/version NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.129.03 Thu Oct 19 18:56:32 UTC 2023 GCC version: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
NVRM版本内核模块为535.129.03,系统内核为22.04。
让我们清除包括 nvidia-common 在内的所有 NVIDIA 软件包,运行以下命令。
$ sudo apt purge nvidia-* $ sudo apt purge libnvidia-*
如果相关包已被清除,则以下命令的输出将为空。
$ dpkg -l | grep -i nvidia
我们可以使用Ubuntu自带的驱动管理工具ubuntu-drivers devices来查询当前版本Ubuntu推荐的驱动。
$ ubuntu-drivers devices == /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:08.0/0000:03:00.0 == modalias : pci:v000010DEd000013BBsv000010DEsd00001098bc03sc00i00 vendor : NVIDIA Corporation model : GM107GL [Quadro K620] driver : nvidia-driver-535 - distro non-free recommended driver : nvidia-driver-450-server - distro non-free driver : nvidia-driver-390 - distro non-free driver : nvidia-driver-525 - distro non-free driver : nvidia-driver-525-server - distro non-free driver : nvidia-driver-470-server - distro non-free driver : nvidia-driver-470 - distro non-free driver : nvidia-driver-535-server - distro non-free driver : nvidia-driver-418-server - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin
输出结果如上,有一行出现了“recommended”,说明系统推荐了这个驱动,即nvidia-driver-535。
要安装推荐的驱动程序,请运行以下命令。
$ sudo apt install nvidia-driver-535
另外,您还可以执行以下命令来自动安装推荐版本的驱动程序。此时,机器上会自动安装上述推荐版本的驱动程序。
$ sudo ubuntu-drivers autoinstall
重新启动计算机以使更改生效。
$ sudo reboot
最后,在我们重新启动机器后,请输入以下命令测试驱动安装。如下图所示,可以看到推荐版本的驱动安装成功。
$ nvidia-smi