【Ubuntu 20.04】服务器显卡驱动自动更新,Nvidia-smi报错Failed to initialize NVML: Driver/library version mismatch.

Nvidia-smi报错Failed to initialize NVML: Driver/library version mismatch.

重启

这个方法优点是方便,但是服务器毕竟很多情况下不是一个人使用,所以重启方法有一定的弊端。

不重启解决方法

了解问题根源

显卡驱动大多数情况并非人为的,而是系统自动更新造成的,因此问题解决思路是:
1 关闭系统显卡驱动自动更新
2 重装驱动,具体有两小步:

unload nvidia kernel mod
reload nvidia kernel mod

解决方案(不想听直接从这里开始尝试,开始->解决)

  1. 关闭系统自动更新
#查看定时更新任务
systemctl list-timers  apt-daily.timer
#停止定时更新任务
systemctl stop apt-daily.timer
#关闭开机自启动
sudo systemctl disable apt-daily.timer

  1. 重装驱动
    -先尝试卸掉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                                                           |
+---------------------------------------------------------------------------------------+
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值