首页IT科技nvidia-smi报错版本不匹配(nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案)

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

时间2025-08-01 16:29:52分类IT科技浏览5308
导读:由于断电,服务器重启了,当我再次跑实验时,发现cuda不可用,于是输入“nvidia-smi”才发现了一个错误,如下: NVIDIA-SMI has failed because it couldn’t communicate...

由于断电                ,服务器重启了                        ,当我再次跑实验时         ,发现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版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
快速提升SEO排名的6个关键策略(让你的网站在搜索引擎中脱颖而出) zblogphp(打造专属个人博客,选择Zblog免费白色简洁主题)