libnvidia-compute 更新后的 NVML 驱动程序/库不匹配 [关闭]

Posted

技术标签:

【中文标题】libnvidia-compute 更新后的 NVML 驱动程序/库不匹配 [关闭]【英文标题】:NVML driver/library mismatch after libnvidia-compute update [closed] 【发布时间】:2020-09-26 17:38:32 【问题描述】:

我正在运行 Ubuntu 18.04 并且最近(大约一个月)在 slightly recommended .deb 安装遇到很多麻烦之后安装了 CUDA 10.2 运行文件安装 .一切都很好:nvidia-smi 显示了 GPU 统计信息,我能够在 GPU 上运行我的并行代码。今天我启动了我的机器,软件中心提出了一些更新...它看起来只是这个 libnvidia-compute-440 包的一部分,但我没有太注意并安装了所有更新。之后,我的 CUDA 代码不起作用,我尝试了 nvidia-smi 并得到了一个

Failed to initialize NVML: Driver/library version mismatch

我重新启动了系统,仍然出现错误。我花了一个下午在谷歌上搜索可能的解决方案,我认为我能够找到问题的核心:运行 dmesg |tail -4 给出了

NVRM: API mismatch: the client has the version 440.59, but
NVRM: this kernel module has the version 440.33.01.  Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.

我现在拥有的 libnvidia-compute-440 包的版本确实是 440.59,但我的驱动程序版本是 440.33.01dmesg |grep nvidia(或类似的命令我试过)节目(见第三行)

 [   16.462737] nvidia-nvlink: Nvlink Core is being initialized, major device number 237
[   16.463235] nvidia 0000:03:00.0: enabling device (0006 -> 0007)
[   16.785628] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 440.33.01  Tue Nov 12 23:43:11 UTC 2019
[   16.916202] [drm] [nvidia-drm] [GPU ID 0x00000300] Loading driver
[   16.916205] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:03:00.0 on minor 1

事实上,通过查看/var/log/apt/history.log,我可以看到libnvidia-compute-440 从440.33.01-0ubuntu1 更新为440.59-0ubuntu0.18.04.133.01。所有这些证据使我得出结论,我可以尝试回到该库的先前版本,但是apt-get install libnvidia-compute-440=440.33.01(我认为这是正确的语法)给了我E: Version '440.33.01' for 'libnvidia-compute-440' was not found

我真的希望确实存在一个不意味着卸载 CUDA 的解决方案,因为安装它花了我一个周末,而且正如我所说,这对我来说是一个相当不错的 PITA。

【问题讨论】:

尝试使用 dpkg 删除更新的包。我遇到了类似的问题,并且在修复我的安装时进行了一次良好的飞行。如果我没记错的话,运行文件只复制文件但不注册任何包。由于运行文件体验不佳,我始终坚持使用 Deb 安装。只要您在尝试安装/卸载 CUDA 之前设置 nouveau 驱动程序并重新启动 PC,它就可以很好地工作。而且由于库必须匹配特定的驱动程序版本,因此永远不要从更新管理器更新任何内容。至少我是这样做的。 为什么投反对票?有人可以解释吗?顺便谢谢@Daniele LEFEVRE 的回答,我会尽快尝试 "帮助软件更新破坏了我的电脑!"对于Stack Overflow 来说,这并不是一个真正的主题问题。您最好在 askubuntu 或 NVIDIA 支持论坛上提问。 【参考方案1】:

更新:已解决

我非常谨慎,担心我会弄乱我的 CUDA 安装。但是我鼓起勇气,

更新了我的 nvidia 驱动程序

sudo apt install nvidia-driver-440

它成功更新了驱动程序,现在与 libnvidia-compute 版本 440.59 匹配。

重启后一切正常,和以前一样。

【讨论】:

非常感谢您的解决方案。我遇到了同样的问题,我在这里发布我的解决方案。在我的例子中,NVRM 版本是 440.100,驱动程序版本是 460.32.03。我的驱动程序是通过安装 caffe-cuda 更新的,我没有注意到那个时间,但我从 history.log 中检查了它。在我的 NVRM 版本之后,我只使用了sudo apt install nvidia-driver-440,但它安装了450.102,我不知道为什么它安装了其他版本。无论如何,重新启动我的电脑后,现在一切正常。重新安装驱动程序后,我的 cuda 仍然可以正常工作。我有一个问题,如何停止 nvidia 驱动程序更新?

以上是关于libnvidia-compute 更新后的 NVML 驱动程序/库不匹配 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

《安富莱嵌入式周报》第266期:真正模拟DA神的威力,全开源nV级测量仪表挑战赛结束,欣赏震撼设计过程

手册:NV2

NV12/NV12

妙啊!一分钟带你搞CVJPG生成nv12/nv21文件

irlba报错“Error in (function (A, nv = 5, nu = nv, maxit = 1000, work = nv + 7, reorth = TRUE, : BL

高通常见nv