英伟达显卡驱动在Ubuntu下问题解决 Failed to initialize NVML: Driver/library version mismatch

文章讲述了在使用服务器GPU训练模型时遇到的NVIDIA-SMI错误,原因在于Ubuntu自动更新了显卡驱动导致内核驱动版本与系统驱动不一致。解决方法包括检查驱动版本、升级驱动至内核版本一致、重装驱动并与CUDA和Cudnn版本匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

准备用服务器GPU训练模型时,发现nvidia-smi命令报错:Failed to initialize NVML: Driver/library version mismatch

原因

Ubuntu自动更新了显卡驱动,导致内核驱动版本和系统驱动不一致

  • 查看显卡驱动内核版本:
cat /proc/driver/nvidia/version

在这里插入图片描述

  • 查看系统驱动版本
sudo dpkg --list | grep nvidia-*

在这里插入图片描述

这是解决问题之后,两个版本已经一致(535.104.12),原来的显卡驱动内核版本是535.86.10。

解决方案

驱动介绍

在看了很多解决的帖子之后,被显卡驱动,驱动内核弄得一头雾水,所以又查找了相关的介绍,我的大致理解如下(很可能不正确,抛出来问题求大佬指正):

  • 系统驱动:系统用来操作硬件的工具,类似于网卡驱动,没有显卡驱动系统就会导致硬件无法识别。
  • 显卡驱动内核:用来支持深度学习计算的相关驱动,对于不需要做深度学习的机器来说无需安装。
  • CUDA:英伟达GPU上的并行计算框架
  • Cudnn:用于神经网络的加速包
    两个驱动的版本需要一致显卡才能正常工作,我理解的四者之间的关系是:
    系统驱动->显卡驱动内核->CUDA->Cudnn

解决方案

升级驱动版本

重启大法,直接简单!!
很多人测试可以,可惜解决不了我的问题。

重装驱动

英伟达官网选择自己的显卡型号,点击搜索
在这里插入图片描述

点击发布重点下面这个链接:
在这里插入图片描述

可以看到所有的驱动版本,选择系统驱动版本一致的版本点进去
在这里插入图片描述

可以看到对应的CUDA版本,去官网选择合适自己的版本,在服务器上运行下面的命令,记得给文件加运行权限:
在这里插入图片描述

等待一会,提示:

│ Existing package manager installation of the driver found. It is strongly    │
│ recommended that you remove this before continuing.

选择continue,再输入accpet,然后把系统驱动前面的选择框去掉,系统驱动已经有了不需要安装,然后点击安装,等待完成。
在这里插入图片描述

如果还是不行,将新的cuda加个软连接:

sudo ln -s /usr/local/cuda-x-x /usr/local/cuda

其中X-X是前面说的安装的版本。
我用这种方法成功解决问题,猜想是安装cuda时自动安装了对应的显卡内核驱动。最后附上一些参考资料。

参考资料:

  • https://zhuanlan.zhihu.com/p/265874525
  • https://blog.csdn.net/u011119817/article/details/100520669
  • https://blog.csdn.net/zywvvd/article/details/115500412
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值