我正在运行 Ubuntu 18.04,最近(大约一个月)安装了 CUDA 10.2使用运行文件安装在经历了很多麻烦之后稍微推荐 .deb安装。一切都很好:nvidia-smi 显示 GPU 统计数据,我能够在 GPU 上运行并行代码。今天我启动了我的计算机,软件中心建议进行一些更新……除了这个之外,这似乎只是普通的东西libnvidia-计算-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存在,因为安装它花了我一个周末的时间。
答案1
更新:已解决
我非常谨慎,担心会搞砸我的 CUDA 安装。然而,我鼓起勇气,更新了我的 nvidia 驱动程序使用sudo apt install nvidia-driver-440
。它成功更新了驱动程序,现在与 libnvidia-compute 版本匹配440.59。
重启后,一切正常,就像以前一样。