今天用服务器跑代码,结果找不到显卡,输入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.
这是因为linux系统内核自动升级导致当前nvidia驱动与内核版本不适配造成的显卡丢失问题,
看到这里,你是不是以为我也会像其他博主一样教你怎么回退内核版本、重装适配版本的nvidia驱动?
错!如果我也这样教你的话,那真是白费了我耗时一整天才解决这个问题的功夫,其实不是我自己解决的,咨询了我身边的大佬,只用了两行命令就搞定OK,激动的我泪流满面。
好了,步入正题,无论是上面那种情况,还是No devices were found,都是显卡丢失问题,其实在正常开发中,这种问题非常常见,像吃饭喝水一样正常。针对这个问题,linux系统自带了解决问题的方式,不仅方便、快捷,而且更安全。
首先,执行下面这条指令你会进入linux系统的根目录,也就是我们常说的root目录,在这个目录下,你可以以sudo权限执行任何命令而不用在指令前加sudo,因为操作不可逆,所以慎用。
sudo -i
(输入exit即可退出sudo模式)
然后输入ls,可以看到有以下几个文件
其中NVIDIA-Linux-x86_64-535.154.05.run,它是一个nvidia驱动的安装包,这个文件就是用来修复显卡丢失问题的,版本号可能不一样,根据实际情况看。
然后执行以下指令(x86_64-后面的版本号根据你自己的来,我这个只做示例):
./NVIDIA-Linux-x86_64-535.154.05.run -m=kernel-open
一定要加-m=kernel-open ,这个字段的作用是指定安装的内核模式,一定要选open的。
执行完之后一路选择ok或第一个选项即可。
重启:
sudo reboot
然后:nvidia-smi
解决!!!