2

nvidia driver 和 library version mismatch

 2 years ago
source link: https://xujinzh.github.io/2022/05/25/nvidia-driver-library-version-mismatch/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

nvidia driver 和 library version mismatch

2022-05-25technologyubuntu

3 1.4k 1 分钟

深度学习模型往往需要 GPU 加速计算,因此,需要为服务器安装 NVIDIA 驱动。但,因为系统(如 Ubuntu)有自动更新往往会导致 NVIDIA 驱动版本和库版本不匹配,导致 nvidia-smi 命令无法使用。本篇以 Ubuntu 系统为例,所有命令以普通用户运行,有些命令需要 sudo 权限。

当在 Ubuntu 系统上安装了显卡驱动后,因为 Ubuntu 上的命令 /usr/bin/unattended-upgrade 会在后台自动更新系统,如安全相关的补丁内容等。有时候,会自动更新 NVIDIA 的驱动(查看自动更新历史:cat /var/log/apt/history.log)。这会导致系统运行中的 NVIDIA 驱动版本(查看方法:cat /proc/driver/nvidia/version)与安装的驱动版本(查看方法:sudo dpkg -l | grep nvidia)不一致。最终导致,查看显卡信息的命令:nvidia-smi 无法使用,报如下错误:

$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch

解决方法一

因为是系统自动更新了显卡驱动,那么当重启电脑时,会自动加载最新的驱动程序,因此,重启电脑是有效解决上面问题的方法。重启命令:

sudo shutdown -r now
# or
sudo reboot

解决方法二

因为上面报的是驱动版本和安装的库版本不一致导致的,所以,可以先关闭现在运行中使用的旧版本的驱动,当再次使用命令 nvidia-smi 时,系统会加载最新的驱动。

首先查看系统正在使用驱动的进程

$ lsmod | grep nvidia
nvidia_uvm 995328 0
nvidia_drm 57344 0
nvidia_modeset 1200128 1 nvidia_drm
nvidia 35336192 2 nvidia_uvm,nvidia_modeset

然后关闭进程

然后关闭进程

sudo rmmod nvidia_uvm
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
# 需要注意,只有先关闭上面的进程,才能关闭下面的进程,因为上面的依赖下面的
sudo rmmod nvidia

最后测试命令是否可以使用

nvidia-smi

关闭系统自动更新

虽然上面的方法能够解决问题,但当系统再次后台自动更新 NVIDIA 驱动版本时仍然会导致同样问题发生。因此,我们可以尝试不让系统自动更新。

直接卸载自动更新程序

sudo apt remove unattended-upgrades

配置不自动更新

sudo dpkg-reconfigure unattended-upgrades

选择不自动更新

感谢支持!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK