nvidia-smi: Failed to initialize NVML: Driver/library version&nbsp解决办法

1、先尝试重启电脑,一般可以解决

sudo reboot

2、可能是驱动和lib版本不一致
查看driver 版本

cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  470.129.06  Thu May 12 22:52:02 UTC 2022
GCC version:  gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)

显示版本为470.129.06
查看lib版本

cat /var/log/dpkg.log|grep nvidia
2022-08-04 06:14:23 upgrade nvidia-utils-470:amd64 470.129.06-0ubuntu0.20.04.1 470.141.03-0ubuntu0.20.04.1
2022-08-04 06:14:23 status half-configured nvidia-utils-470:amd64 470.129.06-0ubuntu0.20.04.1
2022-08-04 06:14:23 status unpacked nvidia-utils-470:amd64 470.129.06-0ubuntu0.20.04.1
2022-08-04 06:14:23 status half-installed nvidia-utils-470:amd64 470.129.06-0ubuntu0.20.04.1
2022-08-04 06:14:23 status unpacked nvidia-utils-470:amd64 470.141.03-0ubuntu0.20.04.1
2022-08-04 06:14:23 configure nvidia-utils-470:amd64 470.141.03-0ubuntu0.20.04.1 <none>
2022-08-04 06:14:23 status unpacked nvidia-utils-470:amd64 470.141.03-0ubuntu0.20.04.1
2022-08-04 06:14:23 status half-configured nvidia-utils-470:amd64 470.141.03-0ubuntu0.20.04.1
2022-08-04 06:14:23 status installed nvidia-utils-470:amd64 470.141.03-0ubuntu0.20.04.1
2022-08-04 06:14:34 upgrade libnvidia-compute-470:amd64 470.129.06-0ubuntu0.20.04.1 470.141.03-0ubuntu0.20.04.1
2022-08-04 06:14:34 status half-configured libnvidia-compute-470:amd64 470.129.06-0ubuntu0.20.04.1

lib版本是470.141.03

需要重装版本是470.141.03的nvidia驱动
可以官网Download The Official NVIDIA Drivers | NVIDIA
下载sh文件,bash安装

3、如果是内核和驱动版本不一致

cat /proc/driver/nvidia/version

-->
NVRM version: NVIDIA UNIX x86_64 Kernel Module  430.34  Wed Jun 26 12:19:48 CDT 2019
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

内核版本 Kernel Module 为 430.34, 系统内核 16.04.12

然后卸载现有驱动

sudo apt-get purge nvidia*

终端输入,把显卡驱动加入ppa(个人软件包文档,仅支持Ubuntu),类似于应用商店

sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update

如果在运行sudo add-apt-repository ppa:graphics-drivers/ppa命令时收到错误消息sudo: add-apt-repository: command not found,这意味着系统中没有安装add-apt-repository命令。可以使用以下命令来安装它:

sudo apt-get install software-properties-common

最后重新安装驱动,需要将“430”替换成刚才查到的版本号:

sudo apt-get install nvidia-driver-430 nvidia-settings nvidia-prime

4、还有一种可能就是当前系统是个容器!驱动必须和主机的一样!
命令行升级不显示什么错误,但是安装后依然nvidia-smi: Failed to initialize NVML。但是用sh文件就报错下图nvidia-uvm占用。


image.png

查看主机的驱动版本号,容器也可以查看,可以看到和主机是一样的。所以驱动必须一样。如果当前版本驱动安装不成功,升级一下主机的驱动或者降级,然后容器和主机保存一致

cat /proc/driver/nvidia/version

然后容器的驱动到官网下载一模一样版本的驱动sh文件。
主机关闭图形界面

sudo systemctl stop gdm3

容器运行sh文件安装。
还是会报错nvidia-uvm占用,但是550版本驱动可以选择强制安装。(535不能强制安装好像,有的可以)
期间报错了个ERROR: Unable to find the kernel source tree,用

sudo apt update
sudo apt install build-essential linux-headers-$(uname -r)

安装内核,检查内核头文件是否已正确安装:

ls /usr/src/linux-headers-$(uname -r)

如果该目录存在且非空,说明内核头文件已经安装成功。
期间的warning没啥影响。比如

Unable to determine whether NVIDIA kernel modules are present in the initramfs. Existing NVIDIA kernel
  modules in the initramfs, if any, may interfere with the newly installed driver. Would you like to
  rebuild the initramfs?

                        Do not rebuild initramfs              Rebuild initramfs

Rebuild initramfs会失败,但是还是可以继续安装。其它一般选yes继续就好
重新强制安装就成功了

5、禁用自动更新
···
sudo apt-mark hold nvidia-415
···

参考资料:
nvidia-smi: Failed to initialize NVML: Driver/library version&nbsp (2018-01-21 22:25:58) - 简书 (jianshu.com)
(17条消息) 【Failed to initialize NVML: Driver/library version mismatch(已解决)】_shelleyHLX的博客-CSDN博客
(17条消息) Nvidia 显卡 Failed to initialize NVML Driver/library version mismatch 错误解决方案_zywvvd的博客-CSDN博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。