在windows环境下编译pytorch源码

前言

本文记录一下自己在windows环境下编译pytorch源码所经过程和踩过的坑。

系统环境

Windows10家庭中文版
PyTorch-v1.12.1
Conda-v22.9.0
Python-3.9.13
CUDA-v11.8
Visual Studio 2019

1.Conda创建虚拟环境

打开Anaconda Prompt,输入命令创建环境,这里直接指定python版本。

conda create -n debugpytorch python=3.9
conda activate debugpytorch

进入debugpytorch虚拟环境:

2.Conda下载依赖

在Conda环境中安装编译所需依赖

conda install astunparse numpy ninja pyyaml setuptools cmake cffi typing_extensions future six requests dataclasses

3.下载PyTorch源码

方法一:

git命令行方式克隆项目。

git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
# if you are updating an existing checkout
git submodule sync
git submodule update --init --recursive --jobs 0

这里我采用的方法二。

方法二:

下载PyTorch源码:
PyTorch的github网址:https://github.com/pytorch/pytorch,进入后选择对应版本
在windows环境下编译pytorch源码_第1张图片
最下端选择第一个下载。
在这里插入图片描述
注意
在windows下解压时,会出现can not create symbolic link的错误。这时采用管理员下的命令行解压。
首先安装7z,并将7z目录放到环境变量中。
在这里插入图片描述
管理员方式打开命令行,执行以下命令。

7z x pytorch1.12.1.tar1

解压完成。

4.Conda环境下编译源码

在Anaconda Prompt窗口下进入之前创建的debugpytorch环境下,进入源码文件夹。
Anaconda Prompt
执行命令开始编译(编译选项设置DEBUG):

set "DEBUG=1 USE_DISTRIBUTED=0 USE_MKLDNN=0 USE_CUDA=0 BUILD_TEST=0 USE_FBGEMM=0 USE_NNPACK=0 USE_QNNPACK=0 USE_XNNPACK=0" 
&& python setup.py develop

编译过程较慢,编译完成后显示
在windows环境下编译pytorch源码_第2张图片提示编译成功后,可以打开torch/init.py文件,在文件最后加上以下两行代码:

print("FileName: " + __file__ + '\n')
print("Welcome To PyTorch Source Code World\n')

之后在Anaconda Prompt中输入python进入:
在这里插入图片描述
输入import torch导入torch包:
在这里插入图片描述
编译成功!

注意
编译过程失败有以下几个原因:
1.内存不够,可以增加内存或者swap空间
2.各种依赖或者编译器版本不对,Visual Studio务必是2019版的,本人在2022版中编译失败,而且编译速度比2019慢的多。

参考博客

[1]: PyTorch源码学习系列 - 1.初识https://zhuanlan.zhihu.com/p/567978232

你可能感兴趣的:(pytorch,pytorch,windows,python)