笔者在很久之前就装过Pytorch,但当时装的是CPU版本,今天尝试装GPU版本,几经波折,总结一些问题在此,以少走弯路。
一. 版本号选取问题
1. 查看自己的CUDA版本
对于英伟达30系显卡,算力达到8.x,一般需要适配11.x的CUDA。自己可以针对性根据自己的显卡算力查看适配的CUDA。
按下WIN+R键,输入cmd,进入命令行界面。
输入nvidia-smi,可以查看NVIDIA显卡(笔者显卡的型号为3060)支持的CUDA版本为11.8,说明我们在安装Pytorch对应的CUDA版本时,应选择11.8以下的版本。
也可以由控制面板(在图窗搜索栏搜索NVIDIA Control Panel)选择进入NVIDIA的控制面板进行查看,结果是一致的。
2. 查看Pytorch版本
进入Pytorch官网,可以看到在2023年2月18日这天前Pytorch最高支持的CUDA版本为11.7,尚未支持CUDA 11.8,我们选择CUDA 11.7版本对应的Pytorch版本下载即可。
3. 下载CUDA和cuDNN
由于CUDA以及cuDNN服务器在国外,这导致在国内下载CUDA和cuDNN都十分麻烦,如果要实现平稳下载,建议是进行科学上网。下载途径均可通过NVIDIA官网找到。
3.1 CUDA的下载
根据自身的系统选择下载相应的CUDA版本。笔者的系统为Win 11,选择local方式,点击下载。
完成下载后得到对应的安装文件,双击后进行安装即可,安装过程根据自身需要勾选选项,笔者选择了自定义设置并一路默认安装。
3.2 cuDNN的下载
cuDNN的下载稍烦一些,需要先注册一些信息后再完成下载。完成信息注册后,尝试下载。
然后就会在下载中频繁遇到这种0B/s的迷惑行为,哪怕你觉得快到终点线了。
尝试恢复下载,就会出现File Not Found or Link has Expired的提示。
解决方式:迅雷下载
这就说明一件事,人家不想让你以这种方式下载成功。那我们换一种方式,用迅雷下载,选中对应的下载文件,右键复制链接。
新建一个迅雷下载任务,完成下载。
将下载后的文件恢复后缀名为.zip后,解压文件,发现里面应该有三个文件夹:
直接按住 Ctrl键,同时选中bin,include 和 lib 这三个文件夹,将这三个文件夹内的内容复制到CUDA文件夹对应的目录下,我CUDA的安装路径如下,其中v11.7为CUDA的版本号:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7
复制完后打开bin文件夹,可以发现在bin文件夹中已经合并了cuDNN的bin文件夹的内容。
3.3 PATH的设置
进入高级系统设置,设置环境变量,修改PATH的内容。新加入:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin
完成设置后,打开命令行界面,输入nvcc -V,如果可以看到出现CUDA的相应信息,说明已经成功安装。
下面可以看见CUDA 11.7版本已经成功安装:
二. 虚拟环境建立
恭喜你!至此已经完成了CUDA和cuCUDA的下载,接下来让我们进入最后的Pytorch安装,但先别急,咱先配置下环境。
1.创建虚拟环境(如果确定只装一个版本,此处可略)
由于笔者上次为系统已装过cpu版本的pytorch,所以再次安装pytorch时笔者准备用Anaconda先建立一个pytorch-gpu版本下的虚拟环境,以避免对之前文件的干扰。通过Anaconda的Prompt工具进入命令行界面,输入
conda create -n name python=3.7 # python版本可自己指定,3.8、3.9也是可以的
此处新建的python为3.7版本,然后再用activate切换到新环境:
conda activate pytorch-gpu
pytorch-gpu即为我们新建立的env。
用env list 可以查看目前所有建立的env:
2. 配置pip源
笔者选择用pip进行下载(我是不会告诉你有一个悲伤故事叫 “我始终没有找到通过conda实现成功下载的方法” )。
在下载之前,我们先一劳永逸地配置一下pip源,在 C:\Users\用户名 目录下新建pip文件夹(比如我的用户名是10929),然后在pip文件夹中用记事本创建一个命名为 pip.ini 的文本文件,在文件中写入:
[global]
index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host = mirrors.huaweicloud.com
timeout = 120
笔者在这里选的是华为云的镜像,大家也可以选择阿里云、豆瓣、清华等其他的pip镜像,思路是一致的。
3. 安装Pytorch
现在我们可以在命令行中输入官网上提示的安装命令了:
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
接下来就是正常的安装过程,完成安装后,可通过如下的命令来查看torch的信息,以确认torch是否已经安装成功。
import torch
print(torch.__version__) # 查看torch当前版本号
print(torch.version.cuda) # 编译当前版本的torch使用的cuda版本号
print(torch.cuda.is_available()) # 查看当前cuda是否可用于当前版本的Torch,如果输出True,则表示可用
可以看到,在建立的这个虚拟环境中已经成功安装了cuda 11.7版本的pytroch。