更新时间:2023-03-03 GMT+08:00

GPU驱动不可用

问题描述

执行nvidia-smi查看GPU使用情况,显示如下:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
图1 GPU驱动不可用

可能原因

系统内核进行了升级,导致在新内核上,GPU驱动不可用。

问题排查

根据不同的系统在服务器中执行如下命令,查看安装驱动时的内核版本:

  • CentOS:find /usr/lib/modules -name nvidia.ko
  • Ubuntu:find /lib/modules -name nvidia.ko

示例:以CentOS为例,执行上述命令,回显信息如图2所示可以看出GPU驱动是基于3.10.0-957.5.1.el7.x86_64版本的内核安装的。

图2 安装驱动时的内核版本

执行uname –r,如图3所示,查看当前内核版本是3.10.0-1160.24.1.el7.x86_64。

图3 当前内核版本

说明安装驱动的内核版本跟当前内核版本不一致。

处理方法

  • 方法一:重新启动,选择安装GPU驱动时的内核版本,即可使用GPU驱动。
    1. 云服务器操作列下单击“远程登录 > 立即登录”。
    2. 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。
    3. 然后快速刷新页面,按上下键,阻止系统继续启动,选择安装GPU驱动时的内核版本进入系统。在当前内核版本下GPU驱动即可正常使用。
  • 方法二:基于新的内核版本,重新安装驱动。
    1. 卸载驱动。
      • 方法1:执行nvidia-uninstall命令,卸载驱动。

        如果提示命令不存在可以执行•查询云服务器安装的驱动版本:whereis n...卸载驱动。

      • 方法2:查询云服务器安装的驱动版本:whereis nvidia
        图4 查询安装的驱动版本

        根据查询的驱动版本从NVIDIA官网下载驱动包(此处重新下载驱动包是为了执行卸载动作,且后续重新安装驱动时需要此安装包)。

        以驱动版本nvidia-396.44为例,执行sh NVIDIA-Linux-x86_64-396.44.run --uninstall,卸载驱动

    2. 重装驱动。

      操作指导请参考:安装GPU驱动