02814d5e创建于 2023年4月24日历史提交

FrameworkPTAdapter 5.0.RC1 版本说明书

FrameworkPTAdapter 5.0.RC1

用户须知

本框架基于Facebook主导的开源PyTorch进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

PyTorch1.8.1版本开始采用插件化适配方式,与原生PyTorch框架实现彻底解耦,对用户安装使用及后端算子适配开发提供较好体验。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性

二级特性

说明

适配NPU的PyTorch1.8.1特性

框架基础功能

优化设备内存分配策略,修复少量BUG

FX

支持模型IR图构建以及基于IR图的代码生成

优化器

支持npu_fused_adam等融合优化器

适配NPU的PyTorch1.11.0特性

框架基础功能

优化设备内存分配策略,修复少量BUG

FX

支持模型IR图构建以及基于IR图的代码生成

优化器

支持npu_fused_adam等融合优化器

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题

问题描述

数据类型支持

NPU不支持float16类型的inf/nan数据输入输出。

数据Format

出现4D以上的format时不能降维。

集合通信约束

要求一次训练任务中不同device上执行的图相同。

当前只支持1/2/4/8P粒度的分配。

只支持int8,int32,float16和float32数据类型。

Apex功能支持

Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04, 2.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Ubuntu 18.04, 2.04/Euler 2.8, 2.10/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS/UOS 20 1020e

FrameworkPTAdapter 3.0.0

用户须知

本框架基于Facebook主导的开源PyTorch进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

PyTorch1.8.1版本开始采用插件化适配方式,与原生PyTorch框架实现彻底解耦,功能、性能与PyTorch1.5.0基本保持一致,对后端算子适配提供较好开发体验。PyTorch 1.11.0当前为beta版本,建议优先使用PyTorch 1.8.1版本。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性

二级特性

说明

适配NPU的PyTorch1.5.0特性

框架基础功能

适配CANN算子IR变更。

适配NPU的PyTorch1.8.1特性

框架基础功能

支持NPU Tensor类型,修复少量BUG

序列化存取

支持NPU Tensor直接序列化存取,完善torch.save/load接口能力

精度对比工具

支持溢出检测,优化数据dump性能

适配NPU的PyTorch1.11.0特性

框架基础功能

支持NPU Tensor类型,修复少量BUG

序列化存取

支持NPU Tensor直接序列化存取,完善torch.save/load接口能力

精度对比工具

支持溢出检测,优化数据dump性能

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题

问题描述

数据类型支持

NPU不支持float16类型的inf/nan数据输入输出。

数据Format

出现4D以上的format时不能降维。

集合通信约束

要求一次训练任务中不同device上执行的图相同。

当前只支持1/2/4/8P粒度的分配。

只支持int8,int32,float16和float32数据类型。

Apex功能支持

Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04, 2.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Ubuntu 18.04, 2.04/Euler 2.8, 2.10/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS/UOS 20 1020e

FrameworkPTAdapter 3.0.RC3

用户须知

本框架基于Facebook主导的开源PyTorch进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

PyTorch1.8.1版本开始采用插件化适配方式,与原生PyTorch框架实现彻底解耦,功能、性能与PyTorch1.5.0基本保持一致,对后端算子适配提供较好开发体验。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性 二级特性 说明
适配NPU的PyTorch1.5.0特性 框架基础功能 适配CANN算子IR变更。
适配NPU的PyTorch1.8.1特性 精度对比工具 支持NPU与CPU精度对比工具。
profiling 支持自定义算子profiling。
API满足度提升 新增部分API适配(详见API清单)。
适配NPU的PyTorch1.11.0特性 框架基础功能 支持模型训练功能,适配算子API(详见API清单)。
混合精度 支持apex混合精度训练。
分布式 支持DDP分布式训练功能。
profiling 支持E2E profiling功能。

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题 问题描述
数据类型支持 NPU不支持float16类型的inf/nan数据输入输出。
数据Format 出现4D以上的format时不能降维。
集合通信约束 要求一次训练任务中不同device上执行的图相同。
当前只支持1/2/4/8P粒度的分配。
只支持int8,int32,float16和float32数据类型。
Apex功能支持 Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04, 2.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Ubuntu 18.04, 2.04/Euler 2.8, 2.10/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS/UOS 20 1020e

FrameworkPTAdapter 3.0.RC2

用户须知

本框架基于Facebook主导的开源PyTorch1.5.0和1.8.1版本进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

PyTorch1.8.1版本采用插件化适配方式,与原生PyTorch框架实现彻底解耦,当前功能、性能与PyTorch1.5.0基本保持一致,对后端算子适配提供较好开发体验。 支持AOE调优工具。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性

二级特性

说明

适配NPU的PyTorch1.5.0特性

框架基础功能。

少量BUG修复。

适配NPU的PyTorch1.8.1特性

插件化解耦

torch_npu插件与原生PyTorch框架实现彻底解耦。

性能优化

优化单算子下发以及集合通讯功能

API满足度提升。

新增部分API适配(详情见API清单)。

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题

问题描述

数据类型支持

NPU不支持float16类型的inf/nan数据输入输出。

数据Format

出现4D以上的format时不能降维。

集合通信约束

要求一次训练任务中不同device上执行的图相同。

当前只支持1/2/4/8P粒度的分配。

只支持int8,int32,float16和float32数据类型。

Apex功能支持

Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04, 2.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Ubuntu 18.04, 2.04/Euler 2.8, 2.10/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS/UOS 20 1020e

FrameworkPTAdapter 3.0.RC1

用户须知

本框架基于Facebook主导的开源PyTorch1.5.0和1.8.1版本进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

PyTorch1.8.1版本采用插件化适配方式,延续PyTorch1.5.0特性,功能基本保持一致,对后端算子适配提供较好开发体验。 支持AOE调优工具。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性

二级特性

说明

适配NPU的PyTorch1.5.0特性

支持AOE调优工具

支持AOE自动调优工具,提升模型性能。

框架基础功能

新增适配算子开发(详见API清单)。

适配NPU的PyTorch1.8.1特性

插件化解耦

将NPU适配代码解耦迁移至torch_npu插件,实现昇腾适配代码与PyTorch原生代码解耦。

支持AOE调优工具

支持AOE自动调优工具,提升模型性能。

框架API满足度提升

支持昇腾PyTorch1.5.0版本已适配API(详情见API清单)。

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题

问题描述

数据类型支持

NPU不支持float16类型的inf/nan数据输入输出。

数据Format

出现4D以上的format时不能降维。

集合通信约束

要求一次训练任务中不同device上执行的图相同。

当前只支持1/2/4/8P粒度的分配。

只支持int8,int32,float16和float32数据类型。

Apex功能支持

Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04, 2.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Ubuntu 18.04, 2.04/Euler 2.8, 2.10/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS/UOS 20 1020e

FrameworkPTAdapter 2.0.4

用户须知

本框架基于Facebook主导的开源PyTorch1.5.0和1.8.1版本进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

PyTorch1.8.1版本延续PyTorch1.5.0特性,功能基本保持一致,对后端算子适配提供较好开发体验。当期1.8.1版本仅支持Resent50网络模型。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性

二级特性

说明

适配NPU的PyTorch1.5.0特性

精度对比工具完善

支持IR与对应TBE算子映射,支持在GPU侧加载NPU侧dump数据对比。

支持E2E prof工具

将PyTorch原生profiling工具和cann prof工具获取到的性能数据统一集成,实现端到端的模型和算子性能分析。

框架基础功能

新增适配算子开发(详见算子清单)。

适配NPU的PyTorch1.8.1特性

支持AMP

支持PyTorch原生自动混合精度。

支持Profiling

支持PyTorch原生Profiling功能。

OS兼容性

OS兼容性

新增支持Ubuntu20.04 x86+arm,Euler 2.10 arm系统。

Python版本兼容性

支持python3.9环境编译及使用(仅PyTorch1.8.1)。

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题

问题描述

数据类型支持

NPU不支持float16类型的inf/nan数据输入输出。

数据Format

出现4D以上的format时不能降维。

集合通信约束

要求一次训练任务中不同device上执行的图相同。

当前只支持1/2/4/8P粒度的分配。

只支持int8,int32,float16和float32数据类型。

Apex功能支持

Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04, 2.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Ubuntu 18.04, 2.04/Euler 2.8, 2.10/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS/UOS 20 1020e

FrameworkPTAdapter 2.0.3

用户须知

本框架基于Facebook主导的开源PyTorch1.5.0进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

从此版本开始,PyTorch1.8.1版本提供支持,此版本延续PyTorch1.5.0特性,功能保持一致(profiling工具除外)。除此之外,对后端算子适配提供较好开发体验。当期1.8.1版本仅支持Resent50网络模型。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性

二级特性

说明

适配NPU的PyTorch特性

支持PyTorch1.8.1版本

增加PyTorch1.8.1版本, 当前仅支持resnet50网络,包括其DDP分布式训练场景。

支持python3.8

支持python3.8环境编译及使用。

提供算子溢出检测工具

支持框架IR级别算子溢出检测,在发生AICORE算子溢出时,提示溢出的IR信息。

OS兼容性

新增支持UOS 20 1020e arm系统

框架基础功能

新增适配算子开发(详见算子清单)

训练模型

CenterFace

-

PCBU

-

Net++

-

FCN8S

-

OSNetRetinaFace

-

PSPnet

-

EDSR

-

Tsm

-

pnasnet5large

-

Gaitset

-

fcn

-

Albert

-

AdvancedEast

-

ReidStrongBaseline

-

Fast-scnn

-

RDN

-

SRFlow

-

MGN

-

Roberta

-

RegNetY

-

VoVNet-39

-

RegNetX

-

RefineNet

-

RefineDet

-

AlignedReID

-

FaceBoxes

-

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题

问题描述

数据类型支持

NPU不支持float16类型的inf/nan数据输入输出。

数据Format

出现4D以上的format时不能降维。

集合通信约束

要求一次训练任务中不同device上执行的图相同。

当前只支持1/2/4/8P粒度的分配。

只支持int8,int32,float16和float32数据类型。

Apex功能支持

Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Euler 2.8/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS/UOS 20 1020e

FrameworkPTAdapter 2.0.2

用户须知

本框架基于Facebook主导的开源PyTorch1.5.0进行修改,延续原生的PyTorch特性,使用NPU进行动态图训练;以算子粒度进行模型适配,代码重用性好,支持现有的网络只修改设备类型或数据类型,即可迁移到NPU上使用。

新增特性

表 1 PyTorch支持的版本特性列表

一级特性

二级特性

说明

适配训练模型

YOLOV4

-

YOLOV3

-

DB

-

RFCN

-

CRNN

-

Densenset161

-

Densenset191

-

适配NPU的PyTorch特性

框架基础功能

新增适配算子开发(详见算子清单)。

精度对比工具

新增精度对比工具,支持训练精度定界。

昇腾710芯片

新增支持昇腾710芯片在线推理。

OS兼容性

新增支持ubuntu 18.04.5、OpenEuler 20.03 LTS系统

特性修改

不涉及

已修复问题

不涉及

已知问题

已知问题

问题描述

数据类型支持

NPU不支持float16类型的inf/nan数据输入输出。

数据Format

出现4D以上的format时不能降维。

集合通信约束

要求一次训练任务中不同device上执行的图相同。

当前只支持1/2/4/8P粒度的分配。

只支持int8,int32,float16和float32数据类型。

Apex功能支持

Apex当前版本的实现方式主要为python实现,不支持APEX中的自定义优化CUDA Kernel。

兼容性

A800-9010:CentOS 7.6/Ubuntu 18.04/BC-Linux 7.6/Debian 9.9/Debian 10/OpenEuler 20.03 LTS

A800-9000:CentOS 7.6/Euler 2.8/Kylin v10/BC-Linux 7.6/OpenEuler 20.03 LTS