服务器自动更新后Driver/library version mismatch的问题
服务器自动更新nvidia driver 版本之后,使用nvidia-smi
经常会出现
Failed to initialize NVML: Driver/library version mismatch
这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新,一般情况下,重启机器就能够解决,如果因为某些原因重启也无效的话,也有办法reload kernel mod
执行起来就是
- sudo rmmod nvidia
- sudo nvidia-smi
nvidia-smi 发现没有 kernel mod 会将其自动装载。
#sudo rmmod nvidia
但是事情远远不是这么简单,一般情况下都会遇到卸载失败。
rmmod: ERROR: Module nvidia is in use by: nvidia_modeset
这个问题的原因是kernel mod 的存在依赖情况。
#lsmod | grep nvidia
从信息中知道,nvidia_modeset 这个 mod 依赖于 nvidia,nvidia_drm依赖nvidia_modest ,所以要先卸载他们。
先查看下有哪些进程使用了 nvidia*
sudo lsof -n -w /dev/nvidia*
记得关闭相关进程。
先卸载:
sudo rmmod nvidia_drm
再卸载:
sudo rmmod nvidia_modeset
再 lsof 一遍,如果 nvidia 的使用 Used by 还没有降到 0,kill 相关进程。
最后
sudo rmmod nvidia
nvidia-smi
搞定