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

问题排查

在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
当使用nvidia-smi命令时,出现"Failed to initialize NVML: Driver/library version mismatch"错误,这意味着您的显卡驱动与内核版本不匹配。该错误通常发生在系统自动更新了显卡驱动程序的情况下,而没有及时同步更新内核。这是一个非人为因素导致的问题。 为了解决这个问题,有一种方法可以尝试,而不需要重启服务器。您可以通过卸载现有的NVIDIA驱动程序并重新安装匹配的驱动程序来解决版本不匹配的问题。以下是详细步骤: 1. 首先,您需要确定您正在使用的驱动程序的版本。使用以下命令检查已安装的NVIDIA驱动程序版本: ``` nvidia-smi ``` 2. 然后,根据您的驱动程序版本,访问NVIDIA官方网站(https://www.nvidia.com/drivers)下载相应的驱动程序,确保它与您的内核版本兼容。 3. 在下载并安装驱动程序之前,您需要通过卸载已安装的驱动程序来清理系统。使用以下命令卸载驱动程序: ``` sudo apt purge nvidia* ``` 4. 安装新的驱动程序。您可以使用以下命令进行安装: ``` sudo sh NVIDIA-Linux-x86_64-xxx.xx.run ``` 其中“NVIDIA-Linux-x86_64-xxx.xx.run”是您下载的驱动程序文件的名称。 5. 安装完成后,重新启动系统以使更改生效。 通过执行以上步骤,您应该能够解决"Failed to initialize NVML: Driver/library version mismatch"错误,并使nvidia-smi命令正常工作。请确保下载和安装适用于您的驱动程序版本和内核版本的正确驱动程序。 此外,您还可以使用以下命令来查看nvidia模块的使用情况: ``` lsmod | grep nvidia ``` 这将显示与nvidia相关的模块列表,以确认驱动程序是否正确加载。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【nvidia-smiFailed to initialize NVML: Driver/library version mismatch解决方法(不用重启)](https://blog.csdn.net/qq_48081868/article/details/122349627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值