搭载Tesla K80的GCP Ubuntu虚拟机安装NVIDIA驱动后nvidia-smi报错
NVIDIA-SMI报错故障排查与解决步骤
1 校验内核头文件与驱动模块状态
- 先执行
uname -r查看当前运行内核版本,再执行dpkg -l | grep linux-headers(Debian/Ubuntu系)或rpm -qa | grep kernel-devel(CentOS系)确认对应版本的内核头/开发包已安装,若内核版本和头文件版本不匹配,先重启到和头文件对应的内核版本,或者安装当前内核匹配的开发包 - 执行
dkms status查看NVIDIA驱动模块是否已编译注册到当前内核:如果没有对应NVIDIA条目,执行sudo dkms autoinstall手动编译模块,完成后重启实例
2 确认开源NVIDIA驱动已完全禁用
系统默认携带的nouveau开源驱动会抢占NVIDIA官方驱动的设备权限,是常见报错诱因:
- 执行
lsmod | grep nouveau如果有输出说明nouveau正在运行 - 禁用操作:
- Debian/Ubuntu系:创建
/etc/modprobe.d/blacklist-nouveau.conf文件,写入以下内容:blacklist nouveau
options nouveau modeset=0 - 执行
sudo update-initramfs -u(Debian/Ubuntu)或sudo dracut -f(CentOS)更新启动镜像,之后重启实例
- Debian/Ubuntu系:创建
3 校验GCP实例硬件层面配置
- 确认创建实例时确实勾选了对应型号的GPU,且实例所在可用区有对应GPU库存,注意GCP的抢占式实例可能会出现GPU资源被回收导致驱动无法识别的情况
- 进入GCP控制台实例详情页,确认
显示GPU设备选项处于开启状态,部分实例默认关闭该配置
4 清理残留后走包管理重装驱动
之前的安装残留会导致驱动冲突,先完全清理旧版本再重装:
- 所有系统通用清理命令:
sudo /usr/bin/nvidia-uninstall,如果是CUDA包安装的额外执行sudo /usr/local/cuda-X/bin/cuda-uninstaller(X替换为你之前装的CUDA版本号) - Debian/Ubuntu系额外执行
sudo apt purge nvidia* cuda* -y && sudo apt autoremove -y - CentOS系额外执行
sudo yum remove nvidia* cuda* -y - 清理完成重启后,用系统包管理安装驱动:Ubuntu可以用
sudo ubuntu-drivers autoinstall,CentOS可以加ELRepo源后安装对应kmod-nvidia包 - 安装完成后再次重启,执行
nvidia-smi验证
内容的提问来源于stack exchange,提问作者Faraz H
相关产品推荐
相关产品推荐

