Linux下nvidia-smi报错

1. Failed to initialize NVML: driver/library version mismatch

  • 问题:服务器更新 N 卡驱动版本之后,内核中的 N 卡驱动模块没有更新。
  • 解决:有两种方式解决
    • 重启服务器。
    • 让内核重新载入 N 卡驱动模块:
    1
    2
    sudo rmmod nvidia
    nvidia-smi

2. NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

  • 问题:N 卡驱动模块没有成功加载到内核,可能是由于 Linux 内核升级导致版本不兼容。
  • 解决:
    1. 检查是否安装了 dkmsdkms 是一个非常方便的内核模块管理工具),如果没有安装需要手动安装一下。
    2. 利用 dkms 检测 N 卡驱动模块在 Linux 内核升级时是否有成功编译加载:
    1
    dkms status
    1. 若显示 N 卡驱动模块没有成功编译加载,则可以利用 dkms 手动编译加载:
    1
    sudo dkms install -m nvidia -v 460.xx    # `460.xx` 为版本号,根据 dkms status 的输出自行改为自己的版本
    1. dkms 手动编译加载还不成功,一般可能是因为新内核导致原来 N 卡无法编译,此时就需要手动安装更新版本的 N 卡驱动了,具体安装方法因不同 Linux 发行版而异:
    • Debian 系 Linux 发行版
    1
    sudo apt install nvidia-xxx # xxx 为需要安装的版本
    • Arch 系 Linux 发行版
    1
    2
    3
    yay -S nvidia-xxxxx            # xxxxx 为需要安装的版本
    # 或者直接安装 nvidia-dkms,它会自动安装最新版的 N 卡驱动
    yay -S nvidia-dkms
    1. 若仍然无法解决,可以直接到官网下载 Linux 的 .run 安装包安装。不过这种安装方式后续无法跟随系统进行更新,需要手动下载安装包进行更新。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!