Bootstrap

【torch.cuda.is_available()False】 2024年pytorch cuda12.1安装问题解决方案

跟着B站热门的pytorch教程安装的过程中踩了不少坑,在这里记录一下希望对大家有所帮助。

一、False可能的原因

  • cuda 显卡算力等版本不匹配
  • python版本问题
  • conda install本身不易发现的问题

二、分析和解决

2.1cuda 显卡算力等版本不匹配

第一点在多数安装教程中都有强调,不过保险起见这里还是逐步排查一下。

首先要明确几个概念:显卡算力、cuda driver、cuda runtime。要保证你的显卡算力和显卡驱动匹配,同时cuda runtime(即pytorch安装时选择的cuda版本)的版本低于显卡驱动的版本。接下来逐个检查:

在这里插入图片描述

2.1.1查看显卡算力

在任务管理器中查看自己显卡型号后,可到cuda维基百科(需魔法)查看对应显卡的算力和支持的cuda版本。主流显卡对应算力如下:
在这里插入图片描述找到显卡对应算力因子后,可查看对应支持的cuda版本。
在这里插入图片描述如:你的显卡算力是7.5,那么你就只能使用10.0版本之后的cuda。

2.1.2查看显卡驱动:

cmd中输入(注意中间没有空格)

nvidia-smi

在这里插入图片描述红框里面的就是当前的显卡驱动版本,在安装pytorch时低于这个版本的cuda都可以选择。

更新显卡驱动(可选)

如果你的显卡驱动过低可以到nvidia的官网,下载最新的显卡驱动
Nvidia官网下载链接
在这里插入图片描述选择自己对应的显卡驱动,之后跟着安装程序走就好。

2.1.3选择合适的cuda版本

在明确了cuda版本的下限(显卡算力限制)和上限(显卡驱动限制),就可以选择一个合适的cuda版本了。
pytorch官网
在这里插入图片描述

2.2python版本问题

如果cuda版本匹配没有问题,那么可能踩到这个坑,因为很多教程时间都比较久了,anaconda创建的python虚拟环境还在3.6等低版本。并不支持高版本的CUDA。主流对应关系如下:
在这里插入图片描述可以看到目前pytorch官网推荐的两个CUDA版本都需要python3.9以上,而3.10、3.11都是fix版(也就是非稳定版本)那么很显然,创建3.9的虚拟环境是更稳妥的选择。
如果python版本不对,可能出现如下报错:

Looking in indexes: https://download.pytorch.org/whl/cu121
ERROR: Could not find a version that satisfies the requirement torch (from versions: none)
ERROR: No matching distribution found for torch

2.3conda install本身的问题

在pytorch官网提供了两种安装途径conda和pip。如果你按照视频使用conda安装,会发现两个问题:特别慢、且最后显卡不可用(False)。第一个问题稍后再说,先讲第二个。

2.3.1conda默认CPU

这可能是很多跟着教程安装踩的坑,即使安装的时候正确选择了GPU版本,conda在安装时也会安装cpu版本,原因目前未知。
这里我的pytorch已经删掉了,仅做演示

这时候可以重新创建一个虚拟环境使用官网pip的命令安装:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

或者删掉原来的pytorch(删之前最好确认一下是否真的是这个问题)

conda list(查看所有安装的包)
conda uninstall pytorch

重新使用pip安装。

不知道是不是只有我这样pip安装速度会比conda命令快非常非常多。

2.3.2conda安装速度慢

这个事情网上有很多帖子和解决方案,我比较推荐小的包就等等用默认源安装,大的几百几十M的,可以暂停退出手动换源单独安那个包,不建议全局添加镜像。附上国内的镜像:

清华镜像
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
北京外国语大学镜像
https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
阿里巴巴镜像
http://mirrors.aliyun.com/anaconda/pkgs/main

删除虚拟环境: conda remove -n虚拟环境名字--all
全局持久添加通道: conda config --add channels通道地址
全局删除通道:conda config --remove channels通道地址
显示通道:conda config --show channels
单独安装某个包:conda install xxx -c通道地址

三、总结

能用pip安装就别用conda命令安装,注意各个部分的版本匹配。看起来复杂实际上很快就可以搞定

补充:Anaconda版本也需要下载最新的

官网下载较慢——国内镜像,目前最新的是2024.2版本
请添加图片描述如果Anaconda版本太低在后续使用Pycharm时会出现找不到conda和python解释器的问题
详情可见这篇文章:pycharm与Anaconda版本兼容问题解决

;