系统:ubuntu 18.04
突然发现cuda不能用
torch.cuda.is_available() ==>False
终端输入 nvidia-smi显示如下
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
其他博客上说:“这是一个常见问题,经常出现在ubuntu系统中,主要原因还是系统内核升级了,导致新版本内核和原来显卡驱动不匹配”
并且给出了两种解决方案
解决方法一:
只需执行两条命令就好:
sudo apt-get install dkms
sudo dkms install -m nvidia -v 470.57.02(470.57.02表示的是驱动版本号)
利用命令 ll /usr/src/ 可查看下面有一个nvidia-470.57.02/文件夹,版本号因电脑而异
以下注意!
如果以上命令成功的话,不用看下面
执行上面第二条语句后,其实报错了
nvidia-smi not work [Error! Bad return status for module build on kernel]
输入nvcc --version
没有问题
gcc -v
发现gcc版本是7.1版本,这个时候就要注意了,很有可能是gcc的版本低了(我的就是这个原因)
现在要执行gcc升级到8.*
$sudo apt install gcc-8
$sudo update-alternatives --config gcc
(这里输入后有个choice,我直接enter)
$sudo update-alternatives --remove-all gcc
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 10
$sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-8 10
然后重新安装驱动
$sudo dkms install -m nvidia -v 470.57.02
再次输入nvidia-smi
成功了
如果还不行,将机器重启一下
再不行的话,看看其他出路吧,祝好运
解决方法二:(没试过,自己谨慎选择)
(网络版本)
启动系统时,选择与之显卡驱动匹配的旧版本系统内核,重启系统之前,可使用命令查看当前系统内核版本
uname -r
5.3.0-40-generic(这是作者目前的系统内核版本)
现在重启系统,在进行ubuntu启动引导的界面时,就是刚开始叫你选择操作系统的界面,选择“ubuntu高级选项”,选择一个以前的内核版本,他的新版本是5.3.0-40-generic,然后选择一个离新版本最接近的低版本内核5.3.0-26-generic,然后成功进入系统