看了网上很多方案,都没有解决,最后一招解决了。
其实,这个意思不是说你真的没有CUDA gpu,而是你的显卡驱动比较旧,像我的就是10.1cuda,431.78版本的,查看方式有两种:
第一种就是你在虚拟环境里输入nvidia-smi,然后就如下图所示,显示我的是10.1的版本。
第二种就是在cmd中输入nvidia-smi查看。如果你的cmd中显示不是内部程序或者命令,你需要添加一个路径C:\Program Files\NVIDIA Corporation\NVSMI到环境变量path中,然后就可以查看了。
然后你在虚拟环境里面输入nvcc -V查看你的运行的CUDA版本,我的就是11.3版本,v11.3.58。
可以看到两者版本不一致,问题就出在这,如果你用nvidia-smi查看的版本低于你用nvcc -V查看的版本,在你执行import torch时就会报错CUDA driver initialization failed, you might not have a CUDA gpu.
解决方案:
然后你直接登陆windows系统里的NVIDIA账户,直接去里面更新驱动版本就行了。但是我又遇到安装时出现了一个意外报错,这时
你可以试试在这个文件夹找到已经下载好的安装包,然后直接双击安装。
C:\ProgramData\NVIDIA Corporation\Downloader\
然后就能正常安装了。
然后最后去虚拟环境里执行import torch时,就没有任何报错了
并且可以正常执行torch.cuda.is_available(),返回TRUE。
最后,你在查看一下两个CUDA的版本,发现你用nvidia-smi查看的版本高于你用nvcc -V查看的版本