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

        由于断电,服务器重启了,当再次跑实验时,发现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

  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值