【发布时间】: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.01 为 dmesg |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 支持论坛上提问。