执行nvidia-smi命令报Failed to initialize NVML: Driver/library version mismatch错误

分类详情
问题描述执行nvidia-smi命令报【Failed to initialize NVML: Driver/library version mismatch】
问题原因系统自动升级过显卡驱动,在显卡驱动支持的系统内核版本相同的情况下,某些应用占用显卡,导致无法更新驱动的内核模块,进而无法使用
问题影响使用显卡的应用,无法进行运算处理
排查过程

提示:在百度上查询该错误,基本上都是驱动版本和内核版本不一致导致的,并不完全准确,但排查的思路可取

这篇文章还不错:【nvidia】1.命令行方式安装nvidia显卡驱动_牛andmore牛的博客-CSDN博客_命令行安装显卡驱动

# 1.查看当前显卡当前使用的驱动版本

root@ops-01:~# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.103.01 Thu Jan 6 12:10:04 UTC 2022
GCC version: gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
结论:当前使用的是470.103.01版本的驱动

# 2.查看显卡驱动是否更新

root@ops-01:~# cat /var/log/dpkg.log | grep nvidia
2022-05-19 06:15:26 upgrade nvidia-driver-470:amd64 470.103.01-0ubuntu0.20.04.1 470.129.06-0ubuntu0.20.04.1

结论:升级驱动70.103.01到470.129.06,升级前后的内核版本都是0ubuntu0.20.04.1

# 3.查看系统的内核版本

root@ops-01:~# uname -a
Linux ops-01 5.13.0-41-generic #46~20.04.1-Ubuntu SMP Wed Apr 20 13:16:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

结论:系统使用的内核是20.04.1-Ubuntu,和显卡驱动支持的内核版本一致

到这里基本上就能确认上述的问题原因了。

辅助排查的命令:

# 查看系统的nvidia驱动版本

root@ops-01:~# ubuntu-drivers devices|grep nvidia-driver
WARNING:root:_pkg_get_support nvidia-driver-510-server: package has invalid Support PBheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-510: package has invalid Support PBheader, cannot determine support level
driver : nvidia-driver-470 - distro non-free recommended
driver : nvidia-driver-510-server - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-510 - distro non-free

# 查看驱动的完整版本号

root@ops-01:/home/ubuntu# aptitude show nvidia-driver-470-server
软件包:nvidia-driver-470-server
版本号:470.129.06-0ubuntu0.20.04.1

# 查看驱动程序支持的内核版本

root@ops-01: dpkg --list | grep nvidia-*
ii libnvidia-cfg1-470:amd64 470.129.06-0ubuntu0.20.04.1 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-common-450 460.91.03-0ubuntu0.20.04.1 all Transitional package for libnvidia-common-460
ii libnvidia-common-460 470.129.06-0ubuntu0.20.04.1 all Transitional package for libnvidia-common-470
ii libnvidia-common-470 470.129.06-0ubuntu0.20.04.1 all Shared files used by the NVIDIA libraries

Ubuntu常用包管理命令:Ubuntu包管理工具整理 - weaming - 博客园

解决办法

方法一:查看所有使用显卡的应用,并停掉,然后再卸载内核模块,重新进行加载,比较麻烦,卸载和加载模块可参考:Failed to initialize NVML: Driver/library version mismatch.

# 1.查看哪些应用占用显卡

root@ops-01:~# fuser -v /dev/nvidia*
USER PID ACCESS COMMAND
/dev/nvidia0: root 1096 F...m Xorg
gdm 1330 F...m gnome-shell
root 5155 F...m tensorboard
root 15319 F...m python
/dev/nvidia1: root 1096 F...m Xorg
gdm 1330 F...m gnome-shell
root 5155 F...m tensorboard
root 15319 F...m python
/dev/nvidiactl: root 1096 F...m Xorg
gdm 1330 F...m gnome-shell
root 5155 F.... tensorboard
root 15319 F...m python
/dev/nvidia-modeset: root 1096 F.... Xorg
gdm 1330 F.... gnome-shell
/dev/nvidia-uvm: root 5155 F.... tensorboard
root 15319 F...m python

# 2.查看显卡的内核模块

root@ops-01:~# lsmod |grep nvidia
nvidia_uvm 1036288 2
nvidia_drm 61440 6
nvidia_modeset 1200128 5 nvidia_drm
nvidia 35336192 299 nvidia_uvm,nvidia_modeset
drm_kms_helper 253952 1 nvidia_drm
drm 557056 10 drm_kms_helper,nvidia,nvidia_drm

方法二:重启系统,简单直接

优化项

1.禁用显卡自动更新:apt-mark hold nvidia-driver-470

2.如果是显卡和内核模块不匹配,就需要先卸载当前驱动,再重新安装,重启系统,可参考:Ubuntu中Failed to initialize NVML: Driver/library version mismatch问题的解决 - 灰信网(软件开发博客聚合)

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当使用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 ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值