目录
AI GPU故障排除:Failed to initialize NVML :Driver/library version mismatch
故障描述
在使用 GPU 开发和训练 AI 程序时,可能会遇到这样的问题,nvidia-smi
命令识别 GPU 昨天好好的,今天就突然出错了
$ 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.171.04 Tue Mar 19 20:30:00 UTC 2024
GCC version: gcc version 11.2.0 (Ubuntu 11.2.0-19ubuntu1)
NVRM版本内核模块为 535.171.04,系统内核为22.04
删除 NVIDIA 驱动
运行以下命令,删除包括 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:09.0 ==
modalias : pci:v000010DEd00001EB8sv000010DEsd000012A2bc03sc02i00
vendor : NVIDIA Corporation
model : TU104GL [Tesla T4]
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-535 - distro non-free recommended
driver : nvidia-driver-545 - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-450-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