Nvidia-smi 运行失败(Failed to initialize NVML: Driver/library version mismatch)

发布于:2025-05-07 ⋅ 阅读:(75) ⋅ 点赞:(0)

问题排查

在linux服务器上运行 nvidia-smi 命令,提示以下错误:

Failed to initialize NVML: Driver/library version mismatch

首先查看内核驱动版本:

cat /proc/driver/nvidia/version

然后查看当前NVIDIA驱动版本:

sudo dpkg --list | grep nvidia-*

发现两个驱动版本不一致。

通过排查日志,可以发现原因是早上6点多,服务器上的nvidia自动更新了,把原来535.54.03版本升级到了534.230.002,导致跟内核版本不一致。

cat /var/log/dpkg.log | grep nvidia

在这里插入图片描述

解决方案

第一步、重启

在实践中,很多时候只需要重启就能解决。

sudo reboot

如果重启后能成功启动 nvidia-smi,恭喜你解决了。

如果重启不生效,那么可以继续往下看。

第二步、删除现有显卡驱动

如果出现提示选择,选yes/Y一直往下操作就行。

sudo /usr/bin/nvidia-uninstall
sudo apt-get purge nvidia-*
sudo apt-get autoremove *

第三步、重新安装驱动

这里采取官方推荐的ppa安装方式,仅需要命令行操作。

1、查看本机支持的驱动版本

比如之前安装的是535版本,现在依旧选择 nvidia-driver-535-server

ubuntu-drivers devices

在这里插入图片描述

2、添加官方 PPA 仓库并更新

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

3、安装535版本的驱动

sudo apt install nvidia-utils-535-server
sudo apt install nvidia-driver-535-server

4、重启

sudo reboot

第四步、检验是否成功

执行命令 nvidia-smi 可以正常运行,并且显卡驱动版本也更新到535.247.01。
在这里插入图片描述

检查下新驱动版本:

dpkg --list | grep nvidia-*

和内核版本是否一致:

cat /proc/driver/nvidia/version

可以看到这次版本一致了。

在这里插入图片描述

第五步、禁用驱动自动更新

为了防止下次服务器自动更新驱动版本,需要禁用当前版本的自动更新

sudo apt-mark hold nvidia-driver-535-server

日后如果需要取消禁用,首先查看下当前被锁定的包:

sudo apt-mark showhold | grep nvidia

如果只取消某个具体包的锁定(例如 nvidia-driver-535):

sudo apt-mark unhold nvidia-driver-535

如果需要取消所有 NVIDIA 相关包的锁定:

sudo apt-mark unhold $(apt-mark showhold | grep nvidia)

参考资料

  • deepseek
  • https://zhuanlan.zhihu.com/p/659149736
  • https://blog.csdn.net/a772304419/article/details/146601092

网站公告

今日签到

点亮在社区的每一天
去签到