解决Driver/library version mismatch

服务器更新nvidia driver 版本之后,经常会出现

Failed to initialize NVML: Driver/library version mismatch

这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新:

 1.   一般情况下,重启机器就能够解决。

 2.  如果因为某些原因不能够重启的话,也有办法reload kernel mod。

简单来看,就两步

  1. unload nvidia kernel mod
  2. reload nvidia kernel mod

执行起来就是

  1. sudo rmmod nvidia

  2. sudo nvidia-smi

nvidia-smi 发现没有 kernel mod 会将其自动装载。

但是事情远远不是这么简单,一般情况下都会遇到卸载失败。

$ sudo rmmod nvidia
rmmod: ERROR: Module nvidia is in use by: nvidia_modeset nvidia_uvm

这时,就要一点一点的卸载整个驱动了,首先要知道现在kernel mod 的依赖情况,首先我们从错误信息中知道,nvidia_modeset nvidia_uvm 这两个 mod 依赖于 nvidia, 所以要先卸载他们

$lsmod | grep nvidia
nvidia_uvm            647168  0
nvidia_drm             53248  0
nvidia_modeset        790528  1 nvidia_drm
nvidia              12144640  152 nvidia_modeset,nvidia_uvm            12144640  152 nvidia_modeset,nvidia_uvm

可以看到 nvidia 被使用了152词,我们可以先卸载 nvidia_uvm 和 nvidia_modeset

先查看下有哪些进程使用了 nvidia*

sudo lsof -n -w  /dev/nvidia*

对这些进程有个了解,如果一会卸载失败,记得关闭相关进程。

卸载 nvidia_uvm , nvidia_modeset 

sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset

然后在losf 一遍, 如果nvidia 的使用 Used  by 还没有降到0, kill 相关的进程。然后在执行相关卸载操作

最后

sudo rmmod nvidia
nvidia-smi

 

 

转载于:https://my.oschina.net/u/2272631/blog/1600719

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值