我正在运行Ubuntu 18.04,并且在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.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。
答案 0 :(得分:1)
更新:已解决
我非常谨慎,担心会弄乱CUDA安装。但是,我鼓起勇气,并用
更新了我的nvidia驱动程序 sudo apt install nvidia-driver-440
它成功更新了驱动程序,该驱动程序现在与libnvidia-compute版本 440.59 相匹配。
重新启动后,一切正常,就像以前一样。