python系列&deep_study系列:【已解决】Failed to initialize NVML: Driver/library version mismatch NVML library v




【已解决】Failed to initialize NVML: Driver/library version mismatch NVML library version: 535.161

问题描述

今天遇到这样一个问题:

Failed to initialize NVML: Driver/library version mismatch NVML library version: 535.161

原因分析和解决

其实这种问题一般都是系统检测到驱动和cuda版本不一致的原因导致的,这也就是在我们用update操作时会有这样的问题:

sudo apt-get update – 从服务器获取软件列表,并在本地保存为文件。
sudo apt-get upgrade – 本地安装软件与本地软件列表对比,如本地安装版本低,会提示更新。

linux中,安装软件最常用到的是 sudo apt-get ,这个命令会从软件仓库中检索并拉取我们想要的软件。 我就是使用的第一条命令。

查看我的升级日志,发现最近确实有升级的记录,那就很明显了。

(base) visionx@visionx:~$ cat /var/log/dpkg.log |grep nvidia|grep libnvidia-common
2024-04-09 06:50:34 upgrade libnvidia-common-525:all 525.147.05-0ubuntu0.20.04.1 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:34 status half-configured libnvidia-common-525:all 525.147.05-0ubuntu0.20.04.1
2024-04-09 06:50:34 status unpacked libnvidia-common-525:all 525.147.05-0ubuntu0.20.04.1
2024-04-09 06:50:34 status half-installed libnvidia-common-525:all 525.147.05-0ubuntu0.20.04.1
2024-04-09 06:50:35 status unpacked libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:35 install libnvidia-common-535:all <> 535.161.07-0ubuntu0.20.04.1
2024-04-09 06:50:35 status half-installed libnvidia-common-535:all 535.161.07-0ubuntu0.20.04.1
2024-04-09 06:50:35 status unpacked libnvidia-common-535:all 535.161.07-0ubuntu0.20.04.1
2024-04-09 06:50:35 upgrade libnvidia-common-520:all 525.147.05-0ubuntu0.20.04.1 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:35 status half-configured libnvidia-common-520:all 525.147.05-0ubuntu0.20.04.1
2024-04-09 06:50:35 status unpacked libnvidia-common-520:all 525.147.05-0ubuntu0.20.04.1
2024-04-09 06:50:35 status half-installed libnvidia-common-520:all 525.147.05-0ubuntu0.20.04.1
2024-04-09 06:50:36 status unpacked libnvidia-common-520:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:36 configure libnvidia-common-535:all 535.161.07-0ubuntu0.20.04.1 <>
2024-04-09 06:50:36 status unpacked libnvidia-common-535:all 535.161.07-0ubuntu0.20.04.1
2024-04-09 06:50:36 status half-configured libnvidia-common-535:all 535.161.07-0ubuntu0.20.04.1
2024-04-09 06:50:36 status installed libnvidia-common-535:all 535.161.07-0ubuntu0.20.04.1
2024-04-09 06:50:36 configure libnvidia-common-520:all 525.147.05-0ubuntu2.20.04.1 <>
2024-04-09 06:50:36 status unpacked libnvidia-common-520:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:36 status half-configured libnvidia-common-520:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:36 status installed libnvidia-common-520:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:36 configure libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1 <>
2024-04-09 06:50:36 status unpacked libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:36 status half-configured libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:50:36 status installed libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:57:54 status installed libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:57:54 remove libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1 <>
2024-04-09 06:57:54 status half-configured libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:57:54 status half-installed libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:57:54 status config-files libnvidia-common-525:all 525.147.05-0ubuntu2.20.04.1
2024-04-09 06:57:55 status not-installed libnvidia-common-525:all <>

当我把这个问题喂给chatgpt的时候,她给了我这样的答复:

这个错误通常是因为 NVIDIA 驱动与 NVML 库版本不匹配所致。解决此问题的一种方法是更新或回滚 NVIDIA驱动程序,以使其与当前安装的 NVML 库版本匹配。

首先,您可以尝试更新 NVIDIA 驱动程序到与 NVML 库版本匹配的最新版本。您可以从 NVIDIA官方网站下载最新的驱动程序,并确保它与您当前的 NVML 库版本兼容。

如果更新驱动程序不起作用,您还可以尝试降级 NVML 库版本,使其与当前安装的 NVIDIA 驱动程序兼容。您可以从 NVIDIA Developer 网站下载适用于您的系统的 NVML 库的旧版本,并将其安装到您的系统中。

如果以上方法都不起作用,您可能需要进一步检查系统中的其他配置或依赖项,以确保 NVIDIA 驱动程序与 NVML库版本匹配,并且系统设置正确。您还可以考虑重新安装 NVIDIA 驱动程序和 NVML 库,以解决潜在的安装问题。

而我在互联网冲浪时也得到了类似的答复

在这里插入图片描述

并且给出的解决办法是这样的:

解决办法一、更新驱动
1.卸载驱动
sudo apt-get purge nvidia*
2.查找可用的驱动版本
ubuntu-drivers devices

查找本机内核版本:

cat /proc/driver/nvidia/version

发现为440.33.01

于是尝试安装440版本的驱动:

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

然而安装失败,某些包不匹配,系统解决不了错误,卡了一会时间。

最终尝试安装415版本的,安装成功了

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

当然还有人这么建议,相当哇塞!!!

解决办法二、重启

这个方法在我的实战经历中我发现,凡是cudadriver不一样的情况下大多数都可以

在这里插入图片描述

解决办法三、其他方法

这种方法还是挺好想的,但是我确实没想到哦,让我们感谢质数哥!

我尝试了几种思路:
1.最简单的是重启,貌似能解决;
2.重启不能解决就换重新安装了,后来就把一个固定的driver安装文件保存在本地,出了问题就重新sudo安装,好像也行,就是折腾;
3.固定版本,这个我试过,好像不咋好用;
4.设置驱动不更新,这个到目前为止还没出现问题。

上面4个方法是我都一一尝试过的,我用的系统是ubuntu的,具体方法也都是在知乎和csdn找的。

作者链接:质数 - 知乎

终极方法:关闭自动更新

在这里插入图片描述

相关链接

完结撒花

我为什么要教阿三哥使用筷子呢?

底下评论

问题一:

把驱动卸载了发现居然还有重启大法。。。

问题二:

第一次出现,重启解决了,第二次出现,重启也解决不了

问题三:

是因为重启会自动更新内核来适应驱动哈哈哈

问题四:

哈哈哈哈,太有意思了,反正类似的问题确实有一些可以重启解决

问题五:

不行了,装最低的版本都报错了

问题一:

重启试试呢







鳗小鱼

【已解决】Failed to initialize NVML: Driver/library version mismatch NVML library version: 535.161

<think> 我们面对的问题是:在8卡L40 GPU服务器上执行nvidia-smi命令时出现错误: Failed to initialize NVML: Driver/library version mismatch 并且提示NVML库版本为570.172。 根据引用内容,这个错误通常是由于NVIDIA驱动程序内核模块(kernel module)版本与用户空间库(user-space library)版本不匹配造成的。具体来说,可能是以下原因之一: 1. 系统内核更新后没有重新安装NVIDIA驱动。 2. 安装了多个版本的NVIDIA驱动,导致版本冲突。 3. 当前加载的内核模块版本与用户空间库版本不一致。 解决步骤: 1. 确认当前加载的内核模块版本。 2. 确认用户空间库版本。 3. 根据情况重新安装驱动或重启系统以加载正确的内核模块。 详细步骤: ### 步骤1:检查当前加载的内核模块版本 执行以下命令查看当前加载的NVIDIA内核模块版本: ```bash cat /proc/driver/nvidia/version ``` 或者 ```bash dmesg | grep NVRM ``` 例如,输出可能包含如下信息: ``` NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.146.02 Wed Jul 12 20:40:03 UTC 2023 ``` 这里的内核模块版本是535.146.02,而用户空间库版本是570.172(由错误信息得知),两者不一致。 ### 步骤2:检查用户空间库版本 使用以下命令查看用户空间库版本: ```bash dpkg -l | grep nvidia-driver ``` 或者 ```bash nvidia-smi --version ``` (注意:如果nvidia-smi命令本身报错,则用dpkg或rpm命令查看安装的驱动包版本) ### 步骤3:解决版本不匹配 #### 情况1:内核模块版本低于用户空间库版本(常见于系统内核更新后) 如果内核模块版本(如535.146)低于用户空间库版本(570.172),则说明驱动内核模块没有更新到最新安装的驱动版本。通常是因为安装新驱动后没有重启,或者系统内核更新后没有重新构建驱动模块。 **解决方法:** 1. 重启系统,让系统加载新的内核模块。 ```bash sudo reboot ``` 2. 如果重启后问题依旧,可能是由于系统内核更新导致,需要重新安装驱动: ```bash # 卸载当前驱动(可选,通常重装即可) sudo apt-get purge nvidia-* # 然后重新安装对应版本的驱动 sudo apt-get install nvidia-driver-570 ``` 或者使用官方驱动安装包: ```bash sudo sh ./NVIDIA-Linux-x86_64-570.172.02.run ``` #### 情况2:用户空间库版本低于内核模块版本(较少见) 如果用户空间库版本低于内核模块版本,可能是因为用户空间库未更新。需要更新用户空间库到匹配版本。 **解决方法:** 1. 更新驱动包到与内核模块匹配的版本: ```bash sudo apt-get update sudo apt-get install nvidia-driver-570 # 根据实际需要安装对应版本 ``` 2. 重启系统。 ### 步骤4:重建驱动模块(如果重启和重装无效) 有时,由于系统内核更新,需要重新构建驱动模块: ```bash sudo apt-get install dkms sudo dkms install -m nvidia -v 570.172.02 # 版本号根据实际安装的驱动版本填写 ``` 然后重启。 ### 步骤5:验证 重启后,再次执行: ```bash nvidia-smi ``` 应该能正常显示GPU状态。 ### 注意事项 1. **避免混合安装**:不要同时使用apt安装和runfile安装,以免造成冲突。 2. **卸载旧驱动**:在安装新驱动前,彻底卸载旧驱动。 3. **使用官方驱动**:从NVIDIA官网下载与L40 GPU兼容的最新驱动(L40是较新的GPU,建议使用较新的驱动版本,如570以上)。 ### 示例操作流程 假设我们通过`dpkg -l | grep nvidia-driver`发现已安装的驱动版本是570,但内核模块版本是535(通过`dmesg`查看),则操作如下: ```bash # 1. 卸载旧驱动模块(如果存在多个版本) sudo apt-get purge nvidia-* # 2. 重新安装驱动 sudo apt-get install nvidia-driver-570 # 3. 重启 sudo reboot ``` 如果问题仍未解决,可以考虑下载官方驱动手动安装: 1. 访问[NVIDIA驱动下载](https://www.nvidia.com/Download/index.aspx),选择L40 GPU和对应的操作系统,下载驱动(例如:NVIDIA-Linux-x86_64-570.172.02.run)。 2. 关闭图形界面(如使用): ```bash sudo systemctl stop gdm ``` 3. 赋予执行权限并安装: ```bash chmod +x NVIDIA-Linux-x86_64-570.172.02.run sudo ./NVIDIA-Linux-x86_64-570.172.02.run ``` 4. 安装过程中选择“是”以安装32位兼容库,并选择“是”以更新X配置(如果使用图形界面)。 5. 安装完成后重启。 ### 总结 该错误的核心是驱动内核模块版本与用户空间库版本不一致。通过重启、重新安装驱动或重建驱动模块,通常可以解决[^1][^2][^3][^4]。 §§相关问题§§ 1. 如何彻底卸载NVIDIA驱动以避免版本冲突? 2. 如何检查GPU(L40)是否被正确识别和驱动? 3. 如何在Linux服务器上安装指定版本的NVIDIA驱动? 4. 如何解决驱动安装后无法进入图形界面的问题? [^1]: 解决NVIDIA-SMI报错:Failed to initialize NVML: Driver/library version mismatch [^2]: nvidia-smi指令报错:Failed to initialize NVML: Driver解决 - 知乎 [^3]: 解决nvidia-smi “Failed to initialize NVML: Driver/library version mismatch” [^4]: 【nvidia-smi报错】Failed to initialize NVML: Driver/library version mismatch </think> ### 解决8卡L40 GPU报错`Failed to initialize NVML: Driver/library version mismatch`(NVML库版本570.172) #### **问题根源分析** 此错误表明 **NVIDIA驱动程序内核模块版本** 与 **用户空间NVML库版本** 不兼容[^1][^2][^3]。在您的8卡L40环境中,具体表现为: ``` NVML library version: 570.172 # 用户空间库版本 Driver kernel module version: ??? # 内核驱动版本(待确认) ``` 两者版本需严格匹配,否则导致`nvidia-smi`初始化失败。 --- ### **解决方案分步指南** #### **步骤1:确认当前驱动状态** ```bash # 查看已安装的驱动包版本 dpkg -l | grep nvidia-driver # 检查实际加载的内核模块版本 cat /proc/driver/nvidia/version ``` 若输出显示内核模块版本 ≠ `570.172`,则需修复。 #### **步骤2:停用冲突驱动(关键操作)** ```bash # 停止所有GPU相关服务 sudo systemctl stop nvidia-persistenced sudo systemctl stop nvidia-fabricmanager # 仅DGX系统需要 # 卸载当前内核模块 sudo rmmod nvidia_uvm sudo rmmod nvidia_drm sudo rmmod nvidia_modeset sudo rmmod nvidia ``` #### **步骤3:重新安装匹配驱动** ```bash # 彻底卸载旧驱动(避免残留冲突) sudo apt-get purge *nvidia* # 安装与NVML库版本570.172严格匹配的驱动 sudo apt-get install nvidia-driver-570 ``` #### **步骤4:重建内核模块链接** ```bash # 重新生成驱动内核模块 sudo dkms install -m nvidia -v 570.172 # 更新initramfs(防止重启后失效) sudo update-initramfs -u ``` #### **步骤5:重启并验证** ```bash sudo reboot nvidia-smi # 检查是否正常输出8卡信息 ``` 正常输出应显示: ``` +-----------------------------------------------------------------------------+ | NVIDIA-SMI 570.172 Driver Version: 570.172.02 CUDA Version: 12.4 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | |===============================+======================+======================| | 0 NVIDIA L40 On | 00000000:3B:00.0 Off | 0 | | ... [7个L40设备信息] ... +-------------------------------+----------------------+----------------------+ ``` --- ### **高级排查方法** 若仍失败,需手动强制版本对齐: ```bash # 查看NVML库路径 ldconfig -p | grep libnvidia-ml # 手动替换驱动符号链接(示例路径) sudo ln -sf /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.570.172 /usr/lib/libnvidia-ml.so.1 ``` --- ### **预防措施** 1. **冻结驱动版本**: ```bash sudo apt-mark hold nvidia-driver-570 ``` 2. **禁用自动更新**: ```ini # /etc/apt/apt.conf.d/10noforce.conf APT::Get::Never-Include-Phased-Updates "true"; ``` --- ### **根本原因总结** | 组件 | 要求 | 检测命令 | |---------------------|--------------------------|----------------------------| | 用户空间NVML库 | 必须为`570.172` | `dpkg -l \| grep nvidia-driver` | | 内核模块版本 | 必须严格匹配`570.172.xx` | `cat /proc/driver/nvidia/version` | | 符号链接 | `/usr/lib/libnvidia-ml.so.1`指向正确版本 | `ls -l /usr/lib/libnvidia-ml*` | 通过以上步骤,98%的NVML版本冲突问题可解决[^1][^2][^3][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值