服務器更新nvidia driver 版本之后,經常會出現
1
|
Failed to initialize NVML: Driver/library version mismatch
|
這個問題出現的原因是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的博客