解决nvidia-smi “Failed to initialize NVML: Driver/library version mismatch”
nvidia-smi 错误信息
nvidia-smi NVIDIA System Management Interface
是用来查看NVIDIA GPU设备的一个命令行工具。今天发现有如下错误。
# 错误信息
myid@[hostname]:~$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
NVML library version: 535.146
分析过程
这个问题还是挺常见的,在此主要记录一下我遇到的具体情况。
查看升级日志
在2024-01-11 发生了升级操作。不是工作时段,很可能是自动完成的。
myid@[hostname]:~$ cat /var/log/dpkg.log |grep nvidia|grep libnvidia-common
2024-01-11 06:55:01 upgrade libnvidia-common-535:all 535.129.03-0ubuntu0.22.04.1 535.146.02-0ubuntu0.22.04.1
2024-01-11 06:55:01 status half-configured libnvidia-common-535:all 535.129.03-0ubuntu0.22.04.1
2024-01-11 06:55:01 status unpacked libnvidia-common-535:all 535.129.03-0ubuntu0.22.04.1
2024-01-11 06:55:01 status half-installed libnvidia-common-535:all 535.129.03-0ubuntu0.22.04.1
2024-01-11 06:55:01 status unpacked libnvidia-common-535:all 535.146.02-0ubuntu0.22.04.1
2024-01-11 06:55:01 configure libnvidia-common-535:all 535.146.02-0ubuntu0.22.04.1 <none>
2024-01-11 06:55:01 status unpacked libnvidia-common-535:all 535.146.02-0ubuntu0.22.04.1
2024-01-11 06:55:01 status half-configured libnvidia-common-535:all 535.146.02-0ubuntu0.22.04.1
2024-01-11 06:55:01 status installed libnvidia-common-535:all 535.146.02-0ubuntu0.22.04.1
查看当前运行的driver version
当前运行的driver version
还是535.129.0
3。
# driver version还是535.129
myid@[hostname]:~$ 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:
查看已安装的driver version
可以看到其实driver 535.146.02
已经安装了,只是运行的还是旧版本。
# driver version 535.146已经安装
myid@[hostname]:~$ apt list --installed |grep -i nvidia-driver
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
nvidia-driver-535/now 535.146.02-0ubuntu0.22.04.1 amd64 [installed,local]
根据网上类似问题的线索,大概率是自动升级后library
立即更新,而driver
由于是kernal module
不会自动运行新版本导致两者不匹配。
所以后续最好关闭自动更新。
解决
reboot
什么也不需要做,reboot
后 driver version
就更新了。在下文可以看到reboot
后driver
已更新到535.146.02
,和NVML
保持一致了。
myid@[hostname]:~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.146.02 Sun Dec 3 14:06:14 UTC 2023
GCC version: gcc version 12.3.0 (Ubuntu 12.3.0-1ubuntu1~22.04)
nvidia-smi
也可以正常使用了。
myid@[hostname]:~$ nvidia-smi
Fri Jan 26 14:08:38 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.146.02 Driver Version: 535.146.02 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4080 Off | 00000000:65:00.0 Off | N/A |
| 57% 28C P8 13W / 320W | 9MiB / 16376MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1377 G /usr/lib/xorg/Xorg 4MiB |
+---------------------------------------------------------------------------------------+
关闭自动更新
这里不是很确定是否正确。
通过X11
连接到Ubuntu服务器桌面
。原来的设定如下,我把Subscribed to
和 Automatically check for updates
都改了,不知道是否管用。
底下评论
问题一:
重启后就解决了,谢谢
问题二:
跟着这个教程解决了,但是桌面服务消失了。Nvidia驱动版本不匹配(Failed to initialize NVML: Driver/library version mismatch) - 胖海君的文章 - 知乎
网页链接
解决nvidia-smi “Failed to initialize NVML: Driver/library version mismatch”