如果能察觉出是英伟达驱动出问题,问题就解决了一大半。应该有这个意识:cuda相关的错误都先看看驱动、cuda等有没有问题,然后再找代码错误。
1.首先看看cuda能不能用
找到之前可以用的pytorch环境
import torch
print(torch.cuda.is_available())
输出False,说明CUDA无法使用。之前成功运行过,因此不是torch和cuda版本冲突。为了进一步验证,进入2.
2.进一步验证是cuda问题还是英伟达驱动问题
检查驱动是否可用
nvidia-smi:如果输出版本号,为可用
nvcc -V:如果输出版本号,为可用
我的驱动显示不出版本号,不可用。
3. 如果驱动不可用,更新驱动
首先查看 NVIDIA版本号
ls /usr/src
输入下列代码,-V后面是查到的NVIDIA版本号
sudo apt-get install dkms
sudo dkms install -m nvidia -v 450.80.02
驱动突然不可用原因可能是Linux内核自动升级了,但是驱动并没有更新,导致版本不对应。
4.还是不可行,更改BIOS
如果最后一行后提示:
Module nvidia/460.80 already installed on kernel 5.xxx-xx-generic/x86_64
尝试将BIOS中的Secure Boot改为Disabled解决问题!
华硕笔记本进入BIOS的方式是在开机前按F2,然后按F7进入高级设置,修改Secure Boot的状态即可。
至此成功解决。
參考鏈接:
https://blog.csdn.net/qq_41330902/article/details/124413233
https://blog.csdn.net/weixin_43978293/article/details/125056963