Nvidia-smi报错Failed to initialize NVML: Driver/library version mismatch.
重启
这个方法优点是方便,但是服务器毕竟很多情况下不是一个人使用,所以重启方法有一定的弊端。
不重启解决方法
了解问题根源
显卡驱动大多数情况并非人为的,而是系统自动更新造成的,因此问题解决思路是:
1 关闭系统显卡驱动自动更新
2 重装驱动,具体有两小步:
unload nvidia kernel mod
reload nvidia kernel mod
解决方案(不想听直接从这里开始尝试,开始->解决)
- 关闭系统自动更新
#查看定时更新任务
systemctl list-timers apt-daily.timer
#停止定时更新任务
systemctl stop apt-daily.timer
#关闭开机自启动
sudo systemctl disable apt-daily.timer
- 重装驱动
-先尝试卸掉nvidia
sudo rmmod nvidia
这一步可能会报错:
rmmod: ERROR: Module nvidia is in use by: nvidia_modeset nvidia_uvm
因为报错信息显示的是和nvidia_modeset nvidia_uvm有关,这个时候要先看一下 kernel mod 的依赖情况。
lsmod | awk 'NR==1 || /nvidia/'
看一下有哪些依赖,一般会有这样的(主要看后面的name列):
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Xorg 2180 root mem CHR 195,0 632 /dev/nvidia0
Xorg 2180 root mem CHR 195,255 631 /dev/nvidiactl
Xorg 2180 root 12u CHR 195,255 0t0 631 /dev/nvidiactl
Xorg 2180 root 16u CHR 195,0 0t0 632 /dev/nvidia0
Xorg 2180 root 17u CHR 195,0 0t0 632 /dev/nvidia0
Xorg 2180 root 18u CHR 195,0 0t0 632 /dev/nvidia0
Xorg 2180 root 19u CHR 195,254 0t0 635 /dev/nvidia-modeset
Xorg 2180 root 23u CHR 195,0 0t0 632 /dev/nvidia0
Xorg 2180 root 24u CHR 195,0 0t0 632 /dev/nvidia0
Xorg 2180 root 29u CHR 195,0 0t0 632 /dev/nvidia0
Xorg 2180 root 30u CHR 195,255 0t0 631 /dev/nvidiactl
Xorg 2180 root 31u CHR 195,254 0t0 635 /dev/nvidia-modeset
这个时候我们知道了,nvidia_modeset nvidia_uvm人家两个确实是被依赖着。没关系,我们先把这些依赖的进程关闭掉:
sudo lsof -n -w /dev/nvidia* | tail -n +2 | awk '{print $2}' | sort | uniq | xargs -n 1 kill -9
这时候可能会有些进程报错说kill不掉,比如这样的:
kill: (2180): Operation not permitted
kill: (2604): Operation not permitted
没关系,我们来:
sudo kill -9 2180
(就是sudo kill -9 ➕进程号PID)
然后再kill其他进程:
sudo lsof -n -w /dev/nvidia* | tail -n +2 | awk '{print $2}' | sort | uniq | xargs -n 1 kill -9
进程全部结束后,我们现在卸载nvidia_modeset nvidia_uvm应该没有问题了。
sudo rmmod nvidia_modeset
然后再卸载nvidia:
sudo rmmod nvidia
最后再:
nvidia-smi
让系统自动重装驱动,这个时候就没有问题了。
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 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 RTX A4000 Off | 00000000:73:00.0 Off | Off |
| 36% 58C P0 43W / 140W | 0MiB / 16376MiB | 2% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+