华为Ascend昇腾适配PyTorch框架

文章详细介绍了如何在ARM架构的CPU上,由于社区未提供预编译的PyTorch包,因此需要通过源码编译安装PyTorch1.8.1。此外,还提到了PyTorchAdapter的作用,它是为昇腾AI处理器适配PyTorch框架的插件,提供超强算力。安装流程包括版本对齐、环境依赖安装、源码编译PyTorch、安装PyTorchAdapter、torch_npu包以及torchvision,并提供了环境变量配置和测试样例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、参考资料

PyTorch用户文档

PyTorch网络模型移植&训练指南

AscendPyTorch

第三方框架适配

二、重要说明

  1. 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安装指南

PyTorch Adapter插件,用于昇腾适配PyTorch框架,为使用PyTorch框架的开发者提供昇腾AI处理器的超强算力。用户在准备相关环境进行基于PyTorch框架模型的开发、运行时,可以选择在服务器中手动编译相关模块。

2. Ascend适配PyTorch API支持清单

PyTorch API支持清单_1.5.0.md

四、安装AscendPyTorch环境

PyTorch安装指南

1. 版本对齐

AscendPyTorch版本CANN版本支持PyTorch版本Gitee分支名称
2.0.2CANN 5.0.21.5.0.post22.0.2.tr5
2.0.3CANN 5.0.31.5.0.post32.0.3.tr5
2.0.4CANN 5.0.41.5.0.post42.0.4.tr5
3.0.rc1CANN 5.1.RC11.5.0.post5v1.5.0-3.0.rc1
3.0.rc1CANN 5.1.RC11.8.1.rc1v1.8.1-3.0.rc1
3.0.rc2CANN 5.1.RC21.5.0.post6v1.5.0-3.0.rc2
3.0.rc2CANN 5.1.RC21.8.1.rc2v1.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_使用自定义镜像

六、昇腾Ascend 随记 —— TensorFlow 模型迁移

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花花少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值