一、参考资料
二、重要说明
- CPU架构为ARM架构时,由于社区未提供ARM架构CPU版本的torch包,无法使用PIP3命令安装PyTorch1.8.1,需要使用源码编译安装。
三、相关介绍
1. PyTorch Adapter
1.1 问题引入
通常,开发者基于PyTorch框架开发的AI模型不能直接在昇腾AI处理器上运行(训练和推理),即运行在GPU上的PyTorch模型不能平滑迁移到昇腾AI处理器上运行。为此,本教程用于昇腾适配PyTorch框架,为使用PyTorch框架的开发者提供昇腾AI处理器的超强算力。
1.2 PyTorch Adapter简介
PyTorch Adapter插件,用于昇腾适配PyTorch框架,为使用PyTorch框架的开发者提供昇腾AI处理器的超强算力。用户在准备相关环境进行基于PyTorch框架模型的开发、运行时,可以选择在服务器中手动编译相关模块。
2. Ascend适配PyTorch API支持清单
四、安装AscendPyTorch环境
1. 版本对齐
AscendPyTorch版本 | CANN版本 | 支持PyTorch版本 | Gitee分支名称 |
---|---|---|---|
2.0.2 | CANN 5.0.2 | 1.5.0.post2 | 2.0.2.tr5 |
2.0.3 | CANN 5.0.3 | 1.5.0.post3 | 2.0.3.tr5 |
2.0.4 | CANN 5.0.4 | 1.5.0.post4 | 2.0.4.tr5 |
3.0.rc1 | CANN 5.1.RC1 | 1.5.0.post5 | v1.5.0-3.0.rc1 |
3.0.rc1 | CANN 5.1.RC1 | 1.8.1.rc1 | v1.8.1-3.0.rc1 |
3.0.rc2 | CANN 5.1.RC2 | 1.5.0.post6 | v1.5.0-3.0.rc2 |
3.0.rc2 | CANN 5.1.RC2 | 1.8.1.rc2 | v1.8.1-3.0.rc2 |
2. 安装环境依赖
如果使用非root用户安装,用户需要在本步骤的每句命令后加**–user**,示例如:pip3 install pyyaml --user。
pip3 install pyyaml
pip3 install wheel
3. 安装PyTorch(ARM版本)
注意:社区未提供arm架构cpu安装包,需要使用源码编译安装pytorch。
# 下载PyTorch v1.8.1源码包
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
# 执行编译安装
python3 setup.py install
4. 安装PyTorch(x86版本)
说明:除了安装PyTorch方式不同,其他步骤与ARM版本一致。
#x86_64
pip3 install torch==1.8.1+cpu #若使用pip命令安装cpu版本PyTorch报错,请手动下载whl包安装,下载地址:(https://download.pytorch.org/whl/torch)
5. 安装torch_npu包
编译生成torch_npu包。
# 下载master分支代码,进入插件根目录
git clone -b master https://gitee.com/ascend/pytorch.git
cd pytorch
# 指定python版本编包方式:
bash ci/build.sh --python=3.7
# 或
bash ci/build.sh --python=3.8
# 或
bash ci/build.sh --python=3.9
安装pytorch/dist下生成的插件torch_npu包,{arch}为架构名称。
pip3 install --upgrade dist/torch_npu-1.8.1rc2-cp37-cp37m-linux_{arch}.whl
6. 安装torchvision
pip3 install torchvision==0.9.1
7. 配置环境变量
在当前仓库根目录中执行设置环境变量脚本。
source env.sh
可选的环境变量
# 非连续转连续二级推导优化,可选,开启设置为1。当模型中有大量AsStrided高耗时算子被调用时,可以尝试开启此优化以获得潜在的device执行效率的提升。
export COMBINED_ENABLE=1
# 算子数据dump功能,调试时使用,可选,开启设置为1
export ACL_DUMP_DATA=1
环境变量说明
配置项 | 说明 |
---|---|
COMBINED_ENABLE | (可选)非连续转连续二级推导优化,开启设置为1。当模型中有大量AsStrided高耗时算子被调用时,可以尝试开启此优化以获得潜在的device执行效率的提升。但是Host下发性能存在下降风险。 |
ACL_DUMP_DATA | (可选)算子数据dump功能,调试时使用,开启设置为1。 |
8. 测试样例
cd test/test_network_ops/
python3 test_div.py
五、自定义PyTorch版本的AscendHub镜像
自定义镜像简介_AI开发平台ModelArts_使用自定义镜像