跑深度学习nvidia驱动忽然实效的详细解决方法

由于经常跑深度学习,所以对于显卡驱动什么的都还是整的比较明白的不含糊,所以都能跑的起来。但是今天跑pytorch框架时(用到cuda)忽然给我报了个错:

RuntimeError: No CUDA GPUs are available

这给我整不会了,因为用cuda一直都用的好好的今天忽然这样,我首先torch.cuda.is_available()试了一下,果然是false。
然后

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.

应该是我的ubuntu偷偷趁我不注意把kernel给升级了,导致nvidia的版本不匹配。
运行cat /var/log/dpkg.log |grep nvidia
跑深度学习nvidia驱动忽然实效的详细解决方法_第1张图片
看第一行,可以看到从525.116.04升级到525.125.06,然后cat /proc/driver/nvidia/version可以看到nvidia的版本还是旧的116的(因为我已经解决了所以现在是新的了截图不了),所以验证了猜想。
所以接下来,我本着尽量不重装的原则尝试解决方法。
首先重启的时候选择低版本的内核进入然后运行nvidia-smi就变成了

Failed to initialize NVML: Driver/library version mismatch

且再运行cat /proc/driver/nvidia/version就显示找不到路径,方法1 failed。
然后试一下一下两条命令:

sudo apt-get install dkms
sudo dkms install -m nvidia -v 525.125.06

这个nvidia的版本号可以用ls /usr/src查看
跑深度学习nvidia驱动忽然实效的详细解决方法_第2张图片
正常来说,百分之七八十的人都是到这一步之后再运行nvidia-smi就可以成功显示了。但是我还不行,我运行第二句显示我已经installed了:

Module nvidia/525.125.06 already installed on kernel 5.xxx-xx-generic/x86_64

所以继续。
最后我是进入bios将security boot关掉就成功了。

你可能感兴趣的:(常见问题的解决方法,深度学习,人工智能,计算机视觉)