服务器更新nvidia driver 版本之后,经常会出现
1 |
Failed to initialize NVML: Driver/library version mismatch.<br> |
这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新,一般情况下,重启机器就能够解决,如果因为某些原因不能够重启的话,也有办法reload kernel mod。
简单来看,就两步
- unload nvidia kernel mod
- reload nvidia kernel mod
执行起来就是
-
sudo rmmod nvidia
-
sudo nvidia-smi
nvidia-smi 发现没有 kernel mod 会将其自动装载。
但是事情远远不是这么简单,一般情况下都会遇到卸载失败。
1 2 |
$ sudo rmmod nvidia rmmod: ERROR: Module nvidia is in use by: nvidia_modeset nvidia_uvm |
这时,就要一点一点的卸载整个驱动了,首先要知道现在kernel mod 的依赖情况,首先我们从错误信息中知道,nvidia_modeset nvidia_uvm 这两个 mod 依赖于 nvidia, 所以要先卸载他们
1 2 3 4 5 |
$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*
1 |
sudo lsof -n -w /dev/nvidia* |
这些进程有个了解,如果一会卸载失败,记得关闭相关进程。
卸载
1 2 |
sudo rmmod nvidia_uvm sudo rmmod nvidia_modeset |
再 lsof 一遍,如果 nvidia 的使用 Used by 还没有降到 0,kill 相关进程
最后
1 2 |
sudo rmmod nvidia nvidia-smi |
收工
原创文章,转载请注明: 转载自Comzyh的博客
这么久没更新新博客了,多写一些呀
可以啊,过一阵
太赞
有办法可以禁止服务器更新nvidia driver么?我试过一些方法,不管用
手动安装,不用APT?
reload之后是好了,但是一重启又出现同样的问题,这是为何???
我也遇到同样的问题了,你有解决吗?
可以详细说说吗?一般是重启之后就好了,不想重启的才用我说的方法。
好厉害,才发现您和我是一届的学生,向您学习
太感谢了!非常好使,立竿见影。现在电脑被关在实验室了,不太方便重启。
如果有和我一样的菜鸟朋友,kill进程的话是 sudo kill -9 后面加进程的PID
太棒了,完美解决了问题
sudo lsof -n -w /dev/nvidia*
我输了这条命令什么也没输出,重启也无法解决
试了你的办法后变成这样了…NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.