华为Ascend昇腾适配PyTorch框架

2023-05-16

一、参考资料

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 模型迁移

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为Ascend昇腾适配PyTorch框架 的相关文章

随机推荐

  • Linux: grep命令及用法说明

    一 几种grep指令的区别 1 grep Global Regular Expressions Print 全局正则表达式打印 标准grep命令如下所示 xff1a grep span class token operator lt spa
  • 靠谱测试人员需要具备BUG洞察能力

    测试人员发现BUG 在整个测试工作过程中间占的比重非常高 xff0c 测试用例设计的目的也是为了发现系统中间的BUG 所以 xff0c BUG洞察能力是测试人员必不可少的能力 1 一般缺陷的发现能力 至少你要满足一般缺陷的发现能力 xff0
  • [Git]删除远程分支和本地分支

    删除远程分支 1 切换到你git项目所在的目录后 xff0c 使用 git branch a命令来查看所有的分支 2 我们需要先把分支切换到master xff0c 3 接着就是删除远程分支的命令了 xff0c git push origi
  • 【转】如何防止softmax函数上溢出(overflow)和下溢出(underflow)

    转载出处 xff1a https www codelast com Deep Learning xff08 Ian Goodfellow amp Yoshua Bengio amp Aaron Courville xff09 第四章 数值计
  • C++工程,CMakelist.txt,CMake添加所有头文件,CMake递归添加头文件,CMake查找所有源文件

    CMakelist txt cmake minimum required span class token punctuation span VERSION 3 5 span class token punctuation span pro
  • git 本地回退到某个版本

    master xff1a Git 的默认分支 xff0c init 命令默认创建 origin xff1a Git 克隆的仓库服务器的默认名字 github将master改名main主要是因为master and slave术语不够政治正确
  • IIC通信协议总结(详细说明完整过程)

    IIC协议简介 IIC xff08 inter integrated Circuit集成电路总线 总线支持设备之间的短距离通信 xff0c 用于处理器和一些外围设备之间的接口 xff0c 它需要两根信号线来完成信息交换 IIC的一个特殊工艺
  • cmake添加资源文件

    一 cmake添加资源文件 1 在最外层cmakelist中添加资源文件目录 images ADD SUBDIRECTORY images 2 在资源文件cmakelist中添加images qrc编译方式 Files SET IMAGE
  • ROS串口数据读取发送

    记录一下 包含串口数据HEX形式的读取 xff0c 发送 xff1b 读取后通过节点发送消息 myserialnode cpp include 34 ros ros h 34 include lt serial serial h gt in
  • S-MSCKF代码阅读

    阅读学习代码 文章目录 第一部分 xff1a 相关库函数介绍1 pluginlib理解与示例2 nodelet3 launch文件4 Eigen内存分配器5 std map的第三个参数6 image transport7 message f
  • Windows+COLMAP三维重建教程【exe安装】

    一 步骤 1 下载COLMAP COLMAP COLMAP 2 解压并运行COLMAP 3 稀疏三维重建 xff0c 生成稀疏图 4 稠密图三维重建 xff0c 生成稠密图 二 可能出现的问题 1 Dense stereo reconstr
  • 程序基础:正则表达式

    一 正则表达式元字符 1 匹配字符 xff1a xff1a 任意一个字符 abc xff1a 表示匹配一个字符 xff0c 这个字符必须是abc中的一个 a zA Z xff1a 表示匹配一个字符 xff0c 这个字符必须是a z或A Z这
  • 【Ubuntu版】CMake安装教程

    一 参考资料 Windows版 CMake安装教程 二 具体步骤 1 离线安装 1 1 Ubuntu系统 官网下载CMake软件包 CMake官网 解压软件包 cmake可执行性文件 home yoyo 360Downloads cmake
  • Jetson TX2刷机教程

    一 参考资料 Jetson TX2官方文档 Jetpack开发者文档 Jetson官方安装教程 jetson tx2刷机 TX2 NVIDIA Jetson Tx2刷机指南 xff08 JetPack 4 4 SDK manager 1 4
  • FFmpeg教程(超级详细版)

    一 参考资料 通过ffmpeg把图片转换成视频 FFmpeg命令 一 使用filter complex命令拼接视频 FFmpeg 视频处理入门教程给新手的 20 多个 FFmpeg 命令示例 FFmpeg命令行转码 ffmpeg 翻译文档
  • yolov5+Deepsort实现目标跟踪

    一 参考资料 项目源码 pytorch yolo5 43 Deepsort实现目标检测和跟踪 工程落地 YoloV5 43 deepsort 43 Fast ReID 完整行人重识别系统 xff08 三 xff09 yolov5 deeps
  • Jetson Xaiver NX相关教程(详细版)

    一 参考资料 Jetson nano NX 部署Yolo v5过程记录 二 相关介绍 三 软件安装 2 1 jetson stats 2 1 1 相关介绍 jetson stats是一个开源软件包 xff0c 用于监测和控制Nvidia J
  • 编译C++程序(经验版)

    一 g 43 43 编译 span class token comment 编译 span g 43 43 文件名 g 43 43 helloWorld cpp g 43 43 文件名 o 输出文件名 g 43 43 open video
  • 【WSL2教程】WSL迁移到非系统盘

    一 问题引入 默认情况下 xff0c WSL会安装在C盘 xff08 系统盘 xff09 xff0c 而C盘空间有限 xff0c 随着WSL子系统的使用 xff0c C盘空间越来越少 xff0c 最后有可能出现C盘不足导致WSL系统崩溃 有
  • 华为Ascend昇腾适配PyTorch框架

    一 参考资料 PyTorch用户文档 PyTorch网络模型移植 amp 训练指南 AscendPyTorch 第三方框架适配 二 重要说明 CPU架构为ARM架构时 xff0c 由于社区未提供ARM架构CPU版本的torch包 xff0c