编译安装PyTorch
安装依赖
选择编译安装方式安装时需要安装系统依赖。目前支持CentOS与Ubuntu操作系统。
- CentOS
yum install -y patch libjpeg-turbo-devel dos2unix openblas git yum install -y gcc==7.3.0 cmake==3.12.0 #gcc7.3.0版本及以上,cmake3.12.0版本及以上。若用户要安装1.11.0版本PyTorch,则gcc需为7.5.0版本以上。
- Ubuntu
apt-get install -y patch build-essential libbz2-dev libreadline-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev m4 dos2unix libopenblas-dev git apt-get install -y gcc==7.3.0 cmake==3.12.0 #gcc7.3.0版本及以上,cmake3.12.0版本及以上。若用户要安装1.11.0版本PyTorch,则gcc需为7.5.0版本以上。
安装PyTorch 1.8.1或1.11.0
以下操作步骤以安装PyTorch 1.8.1版本为例。
- 安装官方torch包。
- x86_64
pip3 install torch==1.8.1+cpu
若执行以上命令安装cpu版本PyTorch报错,请点击下方PyTorch官方链接下载whl包安装。
- 在aarch64架构下,用户可以选择编译安装官方torch包。
- 下载PyTorch v1.8.1源码包,1.11.0版本请替换版本号为v1.11.0。
git clone -b v1.8.1 https://github.com/pytorch/pytorch.git --depth=1 pytorch_v1.8.1
- 进入源码包获取被动依赖代码。
cd pytorch_v1.8.1 git submodule sync git submodule update --init --recursive
- 配置环境变量。
export USE_XNNPACK=0
- 执行编译安装。
python3 setup.py install
- 下载PyTorch v1.8.1源码包,1.11.0版本请替换版本号为v1.11.0。
- x86_64
- 编译生成PyTorch插件的二进制安装包。请参考表1下载对应PyTorch版本分支代码。
# 下载对应PyTorch版本分支代码,进入插件根目录, 以v1.8.1-3.0.0为例,1.11.0版本请替换版本号为v1.11.0-3.0.0 git clone -b v1.8.1-3.0.0 https://gitee.com/ascend/pytorch.git cd pytorch # 指定Python版本编包方式,以Python3.7为例,其他Python版本请使用 --python=3.8或--python3.9 bash ci/build.sh --python=3.7
- 安装pytorch/dist目录下生成的插件torch_npu包,如果使用非root用户安装,需要在命令后加--user。
pip3 install --upgrade dist/torch_npu-1.8.1-cp37-cp37m-linux_aarch64.whl # 若用户在x86架构下安装插件,或安装1.11.0版本,请替换为对应的whl包。
- 安装对应框架版本的torchvision。
#PyTorch 1.8.1需安装0.9.1版本,PyTorch 1.11.0需安装0.12.0版本 pip3 install torchvision==0.9.1
- 配置环境变量,验证是否安装成功。
- 请参考配置环境变量章节配置CANN环境变量脚本。
- 执行单元测试脚本,验证PyTorch是否安装成功。
cd test/test_network_ops/ python3 test_div.py
结果显示OK证明PyTorch框架与插件安装成功。
安装PyTorch 1.5.0
PyTorch 1.5.0只支持通过编译方式安装。
- 获取适配昇腾AI处理器的PyTorch源代码。请参考表1下载对应PyTorch版本分支代码。
git clone -b v1.5.0-3.0.0 https://gitee.com/ascend/pytorch.git
- 获取原生PyTorch源代码和third_party代码。在当前目录pytorch/下获取原生PyTorch1.5.0的源代码。
cd pytorch git clone -b v1.5.0 --depth=1 https://github.com/pytorch/pytorch.git cd pytorch git submodule sync git submodule update --init --recursive
- 生成适配NPU的PyTorch全量代码。进入到pytorch/scripts目录,根据选择的版本执行,执行脚本,会在pytorch/pytorch/目录中生成npu适配全量代码。
cd ../scripts/ bash gen.sh
- 进入到pytorch/pytorch/目录,安装依赖库。
cd ../pytorch pip3 install -r requirements.txt
- 编译生成PyTorch的二进制安装包。
- 在pytorch/pytorch/目录,执行以下命令。
# 指定Python版本编包方式,以Python3.7为例 bash build.sh --python=3.7
- 执行以下命令,安装pytorch/dist目录下生成的torch包,{arch}为架构名称,如果使用非root用户安装,需要在命令后加--user,例如:pip3 install --upgrade torch-1.5.0.post7+ascend-cp37-cp37m-linux_{arch}.whl --user。
cd dist pip3 install --upgrade torch-1.5.0.{version}+ascend-cp37-cp37m-linux_{arch}.whl
- 在pytorch/pytorch/目录,执行以下命令。
- 安装对应框架版本的torchvision。
pip3 install torchvision==0.2.2.post3
- 配置环境变量,验证是否安装成功。
- 执行命令运行环境变量配置脚本。
cd ../ source env.sh
- 执行单元测试脚本,验证PyTorch是否安装成功。
cd ../ python3 pytorch1.5.0/test/test_npu/test_network_ops/test_div.py
结果显示OK证明PyTorch框架安装成功。
- 执行命令运行环境变量配置脚本。
AscendPyTorch版本 |
CANN版本 |
支持PyTorch版本 |
代码分支名称 |
---|---|---|---|
3.0.0 |
CANN 6.0.1 |
1.5.0.post8 |
v1.5.0-3.0.0 |
1.8.1 |
v1.8.1-3.0.0 |
||
1.11.0.rc2(beta) |
v1.11.0-3.0.0 |
||
3.0.rc3 |
CANN 6.0.RC1 |
1.5.0.post7 |
v1.5.0-3.0.rc3 |
1.8.1.rc3 |
v1.8.1-3.0.rc3 |
||
1.11.0.rc1(beta) |
v1.11.0-3.0.rc3 |
||
3.0.rc2 |
CANN 5.1.RC2 |
1.5.0.post6 |
v1.5.0-3.0.rc2 |
1.8.1.rc2 |
v1.8.1-3.0.rc2 |
||
3.0.rc1 |
CANN 5.1.RC1 |
1.5.0.post5 |
v1.5.0-3.0.rc1 |
1.8.1.rc1 |
v1.8.1-3.0.rc1 |
||
2.0.4 |
CANN 5.0.4 |
1.5.0.post4 |
2.0.4.tr5 |
2.0.3 |
CANN 5.0.3 |
1.5.0.post3 |
2.0.3.tr5 |
2.0.2 |
CANN 5.0.2 |
1.5.0.post2 |
2.0.2.tr5 |
父主题: 附录