在 Ubuntu 22.04 上,如果 nvidia-smi
在某次重启后失效,通常是由于 NVIDIA 驱动问题或系统配置出现冲突。这类问题可能源自内核更新、驱动加载失败或 NVIDIA 内核模块未正确安装等原因。以下是解决这个问题的步骤:
1. 检查 NVIDIA 驱动是否加载
首先检查 NVIDIA 驱动是否正确加载:
lsmod | grep nvidia
如果没有输出,说明 NVIDIA 驱动未正确加载。
2. 检查驱动状态
使用 ubuntu-drivers
工具查看当前系统中安装的 NVIDIA 驱动信息:
ubuntu-drivers devices
这将列出当前安装的驱动版本,并推荐适合的驱动版本。
3. 重新安装 NVIDIA 驱动
重新安装 NVIDIA 驱动可以解决大多数问题。在安装前建议禁用 Nouveau 驱动(这是默认的开源 NVIDIA 驱动),以避免冲突。
禁用 Nouveau 驱动:
编辑/etc/modprobe.d/blacklist-nouveau.conf
文件,添加以下内容:blacklist nouveau options nouveau modeset=0
然后更新 initramfs:
sudo update-initramfs -u
重新安装驱动:
安装合适的 NVIDIA 驱动(确保系统使用的是合适的版本):sudo apt update sudo apt install nvidia-driver-<version>
请将
<version>
替换为适合你显卡的驱动版本,例如nvidia-driver-525
。- 重启系统:
重新启动系统,并再次检查nvidia-smi
是否能正常运行。
4. 检查 CUDA 兼容性
如果你的系统安装了 CUDA 工具包,确保 CUDA 版本与当前的 NVIDIA 驱动兼容。可以通过以下命令检查 CUDA 的安装路径和驱动版本:
nvcc --version
如果 CUDA 和驱动不兼容,可能需要重新安装 CUDA 工具包或调整驱动版本。
5. 检查内核模块
如果 NVIDIA 内核模块未正确加载,可以手动加载或重新构建模块:
sudo modprobe nvidia
如果模块加载失败,可能需要重新构建 NVIDIA 内核模块,使用以下命令:
sudo dkms install -m nvidia -v <driver-version>
确保使用正确的驱动版本号。
6. 日志检查
如果问题仍未解决,可以通过检查系统日志查找详细错误信息:
dmesg | grep nvidia
journalctl -xe | grep nvidia
这些日志会提供有关驱动加载失败的详细信息,帮助进一步排查问题。
总结
当 nvidia-smi
在 Ubuntu 22.04 上失效时,通常是由于驱动未正确加载或系统配置冲突。通过检查驱动加载状态、重新安装驱动、调整 CUDA 兼容性以及检查系统日志,可以有效解决此类问题。