libnvidia-compute 更新后 NVML driver/library 不匹配

NVML driver/library mismatch after libnvidia-compute update

我正在 运行ning Ubuntu 18.04 并且最近(大约一个月)安装了 CUDA 10.2 运行文件安装 slightly recommended .deb 安装有很多问题。一切都很好: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。

更新:已解决

我非常谨慎,担心我会搞砸我的 CUDA 安装。但是我鼓起勇气 更新了我的 nvidia 驱动程序

sudo apt install nvidia-driver-440

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

重新启动后一切正常,就像以前一样。