文章

NVIDIA驱动启动失败排查

问题一:

在执行: nvidia-smi , 时遇到问题:

1
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. 检查驱动是否安装

1
nvidia-smi

如果输出类似于 NVIDIA-SMI has failed 的错误,那么有可能是驱动没有正确安装或未加载。

1.1. 查看已安装的驱动版本

如果你怀疑驱动没有安装,可以查看是否安装了 NVIDIA 驱动:

1
2
3
4
dpkg -l | grep nvidia
ii  libnvidia-compute-418:amd64                                 430.50-0ubuntu3                                                            amd64        Transitional package for libnvidia-compute-430
ii  libnvidia-compute-430:amd64                                 535.104.05-0ubuntu1                                                        amd64        Transitional package for libnvidia-compute-535
ii  libnvidia-compute-535:amd64                                 535.104.05-0ubuntu1                                                        amd64        NVIDIA libcompute package

这将列出所有已安装的 NVIDIA 驱动包。

1.2 检查是否加载了 NVIDIA 内核模块

可以通过以下命令查看 NVIDIA 驱动是否加载:

1
lsmod | grep nvidia

如果没有输出,说明 NVIDIA 驱动的内核模块没有加载

============原 文=============

  1. 重新安装 NVIDIA 驱动 如果驱动未正确安装或存在问题,尝试重新安装 NVIDIA 驱动。

2.1 卸载现有的驱动 首先卸载旧的 NVIDIA 驱动:

bash 复制代码 sudo apt-get purge nvidia-* sudo apt-get autoremove 2.2 安装新的 NVIDIA 驱动 访问 NVIDIA 官方网站或使用你操作系统的包管理器来安装合适的驱动。

对于 Ubuntu,使用以下命令安装 NVIDIA 驱动:

bash 复制代码 sudo ubuntu-drivers autoinstall 或者手动安装特定版本的驱动:

bash 复制代码 sudo apt-get install nvidia-driver-460 # 例如安装版本460 安装完驱动后,重启机器:

bash 复制代码 sudo reboot 然后再试运行 nvidia-smi 命令。

  1. 检查 GPU 是否被正确识别 如果驱动安装后,GPU 仍然无法正常工作,检查系统是否正确识别到 GPU:

bash 复制代码 lspci | grep -i nvidia 如果没有看到 NVIDIA GPU,则说明硬件可能存在问题,或者驱动不兼容。

  1. 检查 CUDA 驱动版本是否与 GPU 兼容 确保安装的 NVIDIA 驱动与 CUDA 版本兼容。你可以检查安装的 CUDA 版本:

bash 复制代码 nvcc –version 如果版本不匹配,安装对应版本的 NVIDIA 驱动和 CUDA。

  1. 检查系统日志 查看系统日志,查找与 NVIDIA 相关的错误信息,以便获取更多线索:

bash 复制代码 dmesg | grep -i nvidia

  1. 检查 Secure Boot 设置(针对 UEFI 启动系统) 如果你正在使用 UEFI 启动并启用了 Secure Boot,它可能会阻止非签名的内核模块加载。可以禁用 Secure Boot 来解决此问题。

进入 BIOS 设置,禁用 Secure Boot,然后重新启动。

  1. 检查 Docker 和 NVIDIA 驱动的兼容性(如果在 Docker 中运行) 如果你在 Docker 容器中运行 CUDA 应用,确保已正确安装 NVIDIA Docker toolkit。你可以使用以下命令验证 NVIDIA 驱动和 Docker 的兼容性:

bash 复制代码 docker run –rm nvidia/cuda:11.0-base nvidia-smi 如果 nvidia-smi 在 Docker 容器中正常工作,说明 NVIDIA 驱动已正确安装并与 Docker 配合工作。

  1. 更新内核 如果你使用的是较旧的 Linux 内核版本,可能需要更新内核,因为较旧的内核可能与新的 NVIDIA 驱动版本不兼容。你可以通过以下命令检查内核版本:

bash 复制代码 uname -r 如果你使用的是较老的内核,可以考虑更新到较新的版本。

  1. 最后的排查:重启系统 如果所有步骤都没有解决问题,可以尝试重新启动系统。这将有助于重新加载内核模块并重新初始化 GPU。

bash 复制代码 sudo reboot 总结 NVIDIA-SMI has failed 错误通常是由于 NVIDIA 驱动没有正确安装或加载。可以通过以下步骤解决:

检查 NVIDIA 驱动是否安装并加载。 重新安装或更新 NVIDIA 驱动。 检查 GPU 是否被系统识别。 确保 CUDA 驱动和 GPU 驱动兼容。 检查日志文件,寻找相关错误信息。 如果以上步骤都无法解决问题,可能需要检查硬件或联系 NVIDIA 支持。

本文由作者按照 CC BY 4.0 进行授权