nvidia-smi报错版本不匹配(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 找到答案 。
于是我频繁查找解决方法 ,在这篇博客中找到了答案 ,但是每台电脑的情况都有不同,我这台电脑还有更多的坑(下文再说其余坑的解决方法) ,首先说解决方法:
第一步 ,安装dkms:
sudo apt-get install dkms
第二步,查看本机连接不上的驱动版本:
ls -l /usr/src/
可以看到有一个nvidia的文件 ,我这里是 nvidia-470.103.01
如果没有 nvidia-470.103.01 这类文件 ,那么请作者打开 unbuntn
的软件与升级 ,如下:
打开以后发现有一项 additional drivers,根据自己的需求安装一个就好了 ,我这里安装的470 ,如下:
安装完成后在 /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 ,链接成功!
以上就是本博主遇到的所有坑以及解决办法 ,喜欢的点个赞支持一下白!
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!