nvidia-smi:command not found 问题解决,Failed to initialize NVML: Driver/library version mismatch

在装驱动之后。发现nvidia-smi不能用了。于是在网上找到了解决方案。
简单来看,就两步

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
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, 所以要先卸载他们

$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
$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*
这些进程有个了解,如果一会卸载失败,记得关闭相关进程。

卸载

sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset

再 lsof 一遍,如果 nvidia 的使用 Used by 还没有降到 0,kill 相关进程

最后

sudo rmmod nvidia
nvidia-smi

完工

解决Driver/library version mismatch


版权声明:本文为fengzhongluoleidehua原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。