前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >错误 NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. 解决方案

错误 NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. 解决方案

作者头像
为为为什么
发布2022-08-06 16:36:22
13.5K0
发布2022-08-06 16:36:22
举报
文章被收录于专栏:又见苍岚又见苍岚

使用nvidia-smi报错,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. 显卡与驱动程序不兼容导致报错
  2. 内核版本过高导致较为落后的显卡驱动与先进的内核版本不兼容导致报错
  3. gcc 版本过低,导致安装驱动过程中编译的文件出现问题或无法运行

解决方案

上述几种问题隐蔽性逐渐升高,可以依次解决进行逐个排查,啥时候 nvidia-smi 好了啥时候算

针对问题一

考虑重新安装适合当前环境的显卡驱动程序

如果 nvidia-smi 仍然报错,进行下一步

针对问题二
  • 查看当前驱动版本
代码语言:javascript
复制
ls /usr/src/ | grep nvidia

查看文件夹下 nvidia-***.***.*** 的文件夹,字符串中nvidia- 后面的部分都是驱动版本

例如:

代码语言:javascript
复制
$ ls /usr/src/ | grep nvidia
nvidia-470.86
  • 执行命令
代码语言:javascript
复制
sudo apt-get install dkms
sudo dkms install -m nvidia -v 470.86
  • 或者上述命令执行时报错:
代码语言:javascript
复制
gcc: error:unrecognized command line option '-fstack-protector-strong'

我出这个错误的时候环境为:Ubuntu18.04.4,gcc版本为4.8.5 (事实证明问题症结出在 gcc版本太低上,不过这是后话,先尝试解决这个问题)

代码语言:txt
复制
- 进入自己当前使用的内核文件夹,以 `/usr/src/linux-headers-5.3.0-510-generic` 为例
- 修改 文件夹中的 `Makefile` 文件
- 将带有`-fstack-protector-strong` 的一行注释掉

代码语言:txt
复制
- 之后可以再次尝试之前的命令如果 nvidia-smi 仍然报错,可以尝试使用低版本内核开机尝试查看自己的内核版本:
代码语言:javascript
复制
uname -r
# 或
cat /proc/version
  • 重启系统,在进行ubuntu启动引导的界面时,就是刚开始叫你选择操作系统的界面,选择“ubuntu高级选项”,选择一个以前的内核版本,作者的新版本是5.3.0-40-generic,然后选择一个离新版本最接近的低版本内核5.3.0-26-generic,然后成功进入系统

如果 nvidia-smi 仍然报错,进行下一步

针对问题三

如果 nvidia-smi 仍然报错,进行下一步

针对问题三
查看CUDA官网版本需求

如果是 CUDA 用户,需要弄清楚 gcc 需求版本

  • Nvidia 对使用环境的系统内核和 gcc 版本有基本的对应需求
  • 对于不同的CUDA版本有不同的需求,在CUDA 文档中选择自己需要的CUDA版本,此处以 11.3.1 为例
  • 选择 11.3.1 后选择 Installation Guide Linux
  • 查看 Table 1. Native Linux Distribution Support in CUDA 11.3
升级 gcc

如果确定了自己的 gcc 版本低得离谱,可以尝试升级 gcc 修复错误

  • 查看 gcc 版本:
代码语言:javascript
复制
gcc -v

  • 升级 gcc 可以直接卸载后重新安装
代码语言:javascript
复制
sudo apt remove gcc
sudo apt install gcc
  • 之后重新安装显卡驱动
代码语言:javascript
复制
sudo apt-get install nvidia-driver-470 nvidia-settings nvidia-prime
  • 我的错误到这里已经解决了

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题原因
  • 解决方案
    • 针对问题一
      • 针对问题二
        • 针对问题三
          • 针对问题三
            • 查看CUDA官网版本需求
            • 升级 gcc
        • 参考资料
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档