nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案

2023-05-16

        由于断电,服务器重启了,当再次跑实验时,发现cuda不可用,于是输入“nvidia-smi”才发现了一个错误,如下:

      NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver

        这是由于重启服务器,linux内核升级导致的,由于linux内核升级,之前的Nvidia驱动就不匹配连接了,但是此时Nvidia驱动还在,可以通过命令 nvcc -V 找到答案。

        重新安装Nvidia驱动的流程如下:

第一步,安装dkms:

sudo apt-get install dkms

第二步,查看本机连接不上的驱动版本:

ls -l /usr/src/

        可以看到有一个nvidia的文件,我这里是 nvidia-470.103.01

        如果没有 nvidia-470.103.01 这类文件,那么请打开 unbuntn 的软件与升级或下载安装,安装完成后在 /usr/src/ 目录下就会有 nvidia-470.103.01 文件。

第三步,使用dkms重新安装适合驱动:

sudo dkms install -m nvidia -v 470.103.01

        这条命令 -v 后面需要填写本机的nvidia驱动版本,根据第二步得到!

        到了这里,如果你安装成功,那么恭喜你,此时输入nvidia-smi就会成功连接了!


============================================================================
如果安装失败了,请跟者本文走>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

此时,如果你的gcc(尽量大于7.3版本)版本过低,那么上述命令sudo dkms install -m nvidia -v 470.103.01失败的原因就找到了,查看现有的gcc版本:

gcc --version

这里我讲解安装gcc7.5版本的过程:

第一步,下载gcc,输入命令:

cd /usr/local/src/
wget http://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz tar xvf
gcc-7.3.0.tar.xz

第二步,安装gcc的依赖软件,gcc的软件包内提供了自动下载需要软件的脚本,命令如下:

cd gcc-7.5.0/
./contrib/download_prerequisites

第三步,生成Makefile文件,输入命令:

./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

第四步,编译gcc,命令如下:

make -j4
ls /usr/local/bin | grep gcc

多核电脑可以添加 “-j4” ,make对多核处理器的优化选项,此步骤非常耗时 !

第五步,安装gcc,命令如下:

make install

安装完成后,再次输入命令sudo dkms install -m nvidia -v 470.103.01,如果成功了,恭喜你!

=============================================================================
如果失败了,别急,接着往下看>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
此时,我们需要把新安装的gcc版本的优先级调到最高,否则系统还是会调用以前版本的gcc,这样还是会导致命令sudo dkms install -m nvidia -v 470.103.01失败。

gcc在 /usr/bin 目录下,输入命令查看所有版本的gcc:

ls /usr/bin/gcc*
ls /usr/bin/g++*

将查到的版本加入gcc候选中,最后的数字是优先级,如下:

> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 100
> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100


> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 100
> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
完成上面的操作之后,我们就可以通过下面的指令来选择不同的gcc和g++的版本了

sudo update-alternatives --config gcc

这里我们选择新安装的 gcc-7,也就是输入数字 2 ,到这里,我们在输入命令sudo dkms install -m nvidia -v 470.103.01,成功!

重启电脑,输入nvidia-smi,链接成功!

————————————————
原文链接:https://blog.csdn.net/nizhenshishuai/article/details/123873453

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案 的相关文章

随机推荐

  • pycharm专业版连接远程docker容器

    一 配置远程docker容器 1 启动带有端口的docker容器 6006端口是用来运行tensorboard的 xff0c 这里重要的是22端口 如果希望通过ssh远程连接docker xff0c 需要对容器的22端口做端口映射 dock
  • VScode 远程开发配置

    一 配置免密远程登录 因为是要远程登录 xff0c 那么需要通过使用ssh进行密钥对登录 xff0c 这样每次登录服务器就可以不用输入密码了 先来一句官方介绍 xff1a ssh 公钥认证是一种方便 高安全性的身份验证方法 xff0c 它将
  • np.meshgrid()与torch.meshgrid()的区别

    比如要生成一张图像 h 61 6 w 61 10 的xy坐标点 xff0c 看下两者的实现方式 xff1a 两种方式的差异在于 xff1a xs ys 61 np meshgrid np arange w np arange h xs ys
  • JSON是什么

    提起 JSON xff0c 作为如今最受欢迎的数据交换格式 xff0c 可以说是无人不知 无人不晓了 JSON 全称 JavaScript Object Notation xff08 JS 对象简谱 xff09 xff0c 自诞生之初的小目
  • 【C++】数组定义引发Stack overflow错误(运行时是报段错误)

    C 43 43 xff08 实际是C的语法 xff09 定义数组时出错 xff0c 代码如下 xff1a float t1 9830400 调试时触发Stack overflow错误 xff08 可执行文件运行时 xff0c 是报段错误 x
  • 【C/C++】数组初始化

    数组定义不初始化会被随机赋值 因此如果数组的所有元素在下面没有逐一赋值 xff0c 但是又会使用到的话 xff0c 最后不要只定义而不初始化 会带来问题 数组初始化的几种形式 可以直接用 xff1a a 10 61 xff0c 就可以让a
  • 【C++】指针数组与数组指针

    指针数组 指针数组可以说成是 指针的数组 xff0c 首先这个变量是一个数组 xff0c 其次 xff0c 指针 修饰这个数组 xff0c 意思是说这个数组的所有元素都是指针类型 xff0c 在32位系统中 xff0c 指针占四个字节 定义
  • 【旋转框目标检测】2201_The KFIoU Loss For Rotated Object Detection

    paper with code paper code Jittor Code https github com Jittor JDet PyTorch Code https github com open mmlab mmrotate Te
  • CUDA编译报错unsupported GNU version! gcc versions later than 10 are not supported!

    问题 xff1a python编译用于cuda的so文件中 xff0c 使用编译 cu文件出错 xff1a error unsupported GNU version gcc versions later than 10 are not s
  • RuntimeError: CUDA error: no kernel image is available for execution on the device

    问题 xff1a 代码换机器执行时 xff0c 使用包含自行编译的cuda算子库so时出错 xff1a RuntimeError CUDA error no kernel image is available for execution o
  • Ubuntu非LTS版本安装nvidia-docker出错:Unsupported distribution!

    问题 xff1a 按照Nvidia官方流程 xff0c 在Ubuntu22 10安装nvidia docker在执行以下命令时 distribution 61 etc os release echo ID VERSION ID amp am
  • 测试torch方法是否支持半精度

    并不是所有的torch方法都支持半精度计算 测试半精度计算需要在cuda上 xff0c cpu不支持半精度 因此首先需要创建半精度变量 xff0c 并放到cuda设备上 部分方法在低版本不支持 xff0c 在高版本支持半精度计算 xff0c
  • yolov5关闭wandb

    yolov5训练过程中wandb总是提示登入账号 xff0c 不登入还不能继续训练 xff0c 想要关闭wandb xff0c 直接不使用即可 在 yolov5 utils loggers wandb wandb utils py中 imp
  • 目标检测 YOLOv5的loss权重,以及与图像大小的关系

    1 目标检测 YOLOv5的loss权重 YOLOv5中有三个损失分别是 box obj cls 在超参数配置文件hyp yaml中可以设置基础值 xff0c 例如 box 0 05 cls 0 5 obj 1 训练使用时 xff0c 在t
  • 手写一个JSON反序列化程序

    上一篇文章 JSON是什么 给大家介绍了JSON的标准规范 xff0c 今天就自己动手写一个JSON的反序列化程序 xff0c 并命名它为 zjson 0 开始之前 本篇文章的目的是学习实践 xff0c 所以我们选择相对简单的Python实
  • yolov5源码解析--输出

    本文章基于yolov5 6 2版本 主要讲解的是yolov5是怎么在最终的特征图上得出物体边框 置信度 物体分类的 一 总体框架 首先贴出总体框架 xff0c 直接就拿官方文档的图了 xff0c 本文就是接着右侧的那三层输出开始讨论 Bac
  • yolov5源码解析--损失计算与anchor

    本文章基于yolov5 6 2版本 主要讲解的是yolov5在训练过程中是怎么由推理结果和标签来进行损失计算的 损失函数往往可以作为调优的一个切入点 xff0c 所以我们首先要了解它 一 代码入口 损失函数的调用点如下 xff0c 在tra
  • 多任务学习中各loss权重应该如何设计呢?

    来源 xff1a 22 封私信 80 条消息 多任务学习中各loss权重应该如何设计呢 xff1f 知乎 zhihu com 多损失在深度学习中很常见 xff0c 例如 xff1a 目标检测 xff1a 以 YOLO 为例 xff0c 它的
  • YOLOv5之autoanchor看这一篇就够了

    简单粗暴 xff0c 废话也不罗嗦了 xff0c 学习目的就是解决下面三个问题 xff0c 1 默认anchor t设置为4 xff0c 这个参数如何调整 xff1f 有没有必要调整 xff1f xff08 首先网上很多说这个参数是长宽比是
  • nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案

    由于断电 xff0c 服务器重启了 xff0c 当再次跑实验时 xff0c 发现cuda不可用 xff0c 于是输入 nvidia smi 才发现了一个错误 xff0c 如下 xff1a NVIDIA SMI has failed beca