eta*_*tal 179 cuda gpu driver nvidia
当我运行时,nvidia-smi我收到以下消息:
Failed to initialize NVML: Driver/library version mismatch
Run Code Online (Sandbox Code Playgroud)
一个小时前我收到了同样的消息并卸载了我的cuda库,我能够运行nvidia-smi,得到以下结果:
在此之后,我cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb从官方的NVIDIA页面下载,然后简单地:
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}}
Run Code Online (Sandbox Code Playgroud)
现在我安装了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)
Run Code Online (Sandbox Code Playgroud)
我正在运行Ubuntu 16.04.2 LTS.
内核版本是:4.4.0-66-generic.
谢谢!
eta*_*tal 263
惊喜,重启解决了问题(我以为我已经尝试过了).
Robert Crovella在评论中提到的解决方案也可能对其他人有用,因为它与我第一次使用它时解决问题的方式非常相似.
Com*_*zyh 202
正如@etal所说,重启可以解决这个问题,但我认为没有重启的程序会有所帮助.
对于中文,请查看我的博客 - > 中文版
错误消息
NVML:驱动程序/库版本不匹配
告诉我们Nvidia驱动内核模块(kmod)有错误的版本,所以我们应该卸载这个驱动程序,然后加载正确版本的kmod
首先,我们应该知道加载了哪些驱动程序.
lsmod | grep nvidia
你可能会得到
nvidia_uvm 634880 8
nvidia_drm 53248 0
nvidia_modeset 790528 1 nvidia_drm
nvidia 12312576 86 nvidia_modeset,nvidia_uvm
Run Code Online (Sandbox Code Playgroud)
我们的最终目标是卸载nvidiamod,所以我们应该卸载模块依赖nvidia
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm
然后,卸载 nvidia
sudo rmmod nvidia
如果你得到一个错误rmmod: ERROR: Module nvidia is in use,表示内核模块正在使用,你应该杀死使用kmod的进程:
sudo lsof/dev/nvidia*
然后杀死那些进程,然后继续卸载kmods
确认您已成功卸载这些kmods
lsmod | grep nvidia
你应该什么也得不到,然后确认你可以加载正确的驱动程序
NVIDIA-SMI
你应该得到正确的输出
zhe*_*gcn 19
前 2 个答案无法解决我的问题。我在 Nvidia 官方论坛上找到了解决方案解决了我的问题。以下错误信息可能是由通过不同方法安装两个不同版本的驱动程序引起的。例如,通过apt和官方安装程序安装Nvidia驱动程序。
初始化 NVML 失败:驱动程序/库版本不匹配
要解决这个问题,只需要执行以下两条命令之一即可。
sudo apt-get --purge remove "*nvidia*"
Run Code Online (Sandbox Code Playgroud)
sudo /usr/bin/nvidia-uninstall
Run Code Online (Sandbox Code Playgroud)
Lon*_*ong 13
对于那些真正想知道为什么会发生版本不匹配以及如何防止它再次发生的人。这是因为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。
干杯。
P / S:有些内容被激发这个(原指令是中国人,所以我引用的翻译版本代替)
Oma*_*bab 11
sudo reboot
Run Code Online (Sandbox Code Playgroud)
在带有两个 NVIDIA GeForce GTX 1080 Ti 的 Ubuntu 18.04 上重新启动为我解决了这个问题。
小智 8
因此,我遇到了这个问题,其他任何补救措施均无效。错误消息是不透明的,但是检查dmesg是关键:
[ 10.118255] NVRM: API mismatch: the client has the version 410.79, but
NVRM: this kernel module has the version 384.130. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
Run Code Online (Sandbox Code Playgroud)
但是,我已经完全删除了384版本,并删除了所有剩余的内核驱动程序nvidia-384*。但是即使重新启动后,我仍然会得到这个。看到这表示内核仍被编译为引用384,但仅找到410。因此,我重新编译了内核:
# uname -a # find the kernel it's using
Linux blah 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# update-initramfs -c -k 4.13.0-43-generic #recompile it
# reboot
Run Code Online (Sandbox Code Playgroud)
然后它起作用了。
删除384之后,我仍然在以下目录中包含384个文件:/var/lib/dkms/nvidia-XXX/XXX.YY/4.13.0-43-generic/x86_64/module /lib/modules/4.13.0-43-generic/内核/驱动程序
我建议使用locate命令(默认情况下未安装),而不是每次都搜索文件系统。
我failed to initialize NVML: Driver/Library version mismatch从我的nvidia-gpu-温度指示器中得到了错误。而且nvidia-smi无法打印任何信息。我试图查找我的ubuntu中是否安装了其他版本的nvidia驱动程序。但是我才发现nvidia-driver-390。最后,reboot帮助我解决了问题。
也有这个问题。(我正在运行 ubuntu 18.04)
我做了什么:
dpkg -l | grep -i nvidia
然后
sudo apt-get remove --purge nvidia-381(以及每个重复版本,就我而言,我有 381、384 和 387)
然后sudo ubuntu-drivers devices列出可用的
而我选择 sudo apt install nvidia-driver-430
之后,nvidia-smi给出正确的输出(无需重新启动)。但我想你可以在有疑问时重新启动。
我也跟着这个安装重新安装了 cuda+cudnn。
重启。如果问题仍然存在:
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia
nvidia-smi
Run Code Online (Sandbox Code Playgroud)
对于cent/rhel
cd /boot
mv initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -vf initramfs-$(uname -r).img $(uname -r)
Run Code Online (Sandbox Code Playgroud)
然后
reboot
Run Code Online (Sandbox Code Playgroud)
对于 debian/ubuntu
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia
nvidia-smi
Run Code Online (Sandbox Code Playgroud)
如果问题仍然存在
cd /boot
mv initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -vf initramfs-$(uname -r).img $(uname -r)
Run Code Online (Sandbox Code Playgroud)
将 440.82 更改为您的实际版本。
提示:获取 Nvidia 驱动程序版本:
reboot
Run Code Online (Sandbox Code Playgroud)
您会找到 Nvidia 驱动程序目录,例如 nvidia-440.82
您也可以删除所有 Nvidia pkg 并重新安装驱动程序
update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
小智 6
大多数情况下重新启动可以解决Ubuntu\xc2\xa018.04 (Bionic Beaver)上的问题。
\n\xe2\x80\x9c无法初始化 NVML:驱动程序/库版本不匹配?\xe2\x80\x9d 错误通常意味着 CUDA 驱动程序仍在运行与当前使用的 CUDA 工具包版本不兼容的旧版本。重新启动计算节点通常可以解决此问题。
\n这也发生在我使用该nvidia-348软件包的 Ubuntu 16.04 上(Ubuntu 16.04 上的最新 nvidia 版本)。
但是我可以nvidia-390通过Proprietary GPU Drivers PPA安装来解决这个问题。
因此,Ubuntu 16.04 上所描述问题的解决方案是这样做的:
sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get updatesudo apt-get install nvidia-390 注意:本指南假设安装了干净的 Ubuntu。如果您安装了以前的驱动程序,可能需要重新启动才能重新加载所有内核模块。
这些答案对我不起作用:
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.
Run Code Online (Sandbox Code Playgroud)
卸载旧驱动程序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]
Run Code Online (Sandbox Code Playgroud)
cat /proc/driver/nvidia/version
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
163953 次 |
| 最近记录: |