当我运行nvidia-smi时,我得到以下消息:
初始化NVML失败:驱动程序/库版本不匹配
一小时前,我收到了同样的消息,卸载了我的CUDA库,我能够运行nvidia-smi,得到以下结果:
之后,我从NVIDIA官方页面下载了cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb,然后简单地:
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
现在我已经安装了CUDA,但我得到了前面提到的不匹配错误。
一些可能有用的信息:
运行cat /proc/driver/nvidia/version得到:
NVRM version: NVIDIA UNIX x86_64 Kernel Module 378.13 Tue Feb 7 20:10:06 PST 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
我正在运行Ubuntu 16.04.2 LTS (Xenial Xerus)。
内核发行版是4.4.0-66-generic。
前两个答案不能解决我的问题。我在英伟达官方论坛上找到了一个解决方案。
以下错误信息可能是由于使用不同的方法安装了两个不同版本的驱动程序而导致的。例如,通过APT和官方安装程序安装Nvidia驱动。
初始化NVML失败:驱动程序/库版本不匹配
为了解决这个问题,只需要执行以下两个命令中的一个。
sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall
这些答案对我不起作用:
我的回答
Comzyh的回答
user9170的回答
dmesg
NVRM: API mismatch: the client has the version 418.67, but
NVRM: this kernel module has the version 430.26. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
卸载旧驱动程序418.67,安装新驱动程序430.26(下载NVIDIA-Linux-x86_64-430.26.run):
sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall
chmod +x NVIDIA-Linux-x86_64-430.26.run
sudo ./NVIDIA-Linux-x86_64-430.26.run
[ignore abort]
cat / proc /司机/ nvidia /版本
NVRM version: NVIDIA UNIX x86_64 Kernel Module 430.26 Tue Jun 4 17:40:52 CDT 2019
GCC version: gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
为什么会发生版本不匹配,我们如何防止它再次发生?
您可能会发现nvidia-*的版本在这些位置是不同的:
DPKG -l | grep nvidia(查看nvidia-utils-xxx包
版),
cat /proc/driver/nvidia/version(查看内核的版本
模块,460.56 -例如)
重新启动应该可以工作,但是您可能希望通过修改/etc/apt/sources.list来禁止这个包的自动更新。D /文件或简单地通过执行apt-mark hold nvidia-utils-version_number命令保存包。
附注:一些内容是受此启发的(原始说明是中文的,所以我参考了翻译版本)