产品概述
Ascend Extension for PyTorch 概述
Ascend Extension for PyTorch 插件是基于昇腾的深度学习适配框架,使昇腾NPU可以支持PyTorch框架,为PyTorch框架的使用者提供昇腾AI处理器的超强算力。
方案特性
当前阶段,本产品对PyTorch框架与昇腾AI处理器进行了在线对接适配。
昇腾AI处理器的加速实现方式是以算子为粒度进行调用(OP-based),即通过Ascend Computing Language(AscendCL)调用一个或几个亲和算子组合的形式,代替原有的算子实现方式。PyTorch适配插件架构图如下所示。
图1 PyTorch适配插件架构图
该在线对接适配方案的特点包含:
- 最大限度的继承PyTorch框架动态图的特性。
- 最大限度的继承原生PyTorch的开发方式,可以使用户在将模型移植到昇腾AI处理器设备进行训练时,在开发方式和代码重用方面做到最小的改动。
- 最大限度的继承PyTorch原生的体系结构,保留框架本身出色的特性,比如自动微分、动态分发、Debug、Profiling、Storage共享机制以及设备侧的动态内存管理等。
- 扩展性好。在打通流程的通路之上,对于新增的网络类型或结构,只需涉及相关计算类算子的开发和实现。框架类算子,反向图建立和实现机制等结构可保持复用。
- 与原生PyTorch的使用方式和风格保持一致。用户在使用在线对接方案时,只需在Python侧和Device相关操作中,指定Device为昇腾AI处理器,即可完成用昇腾AI处理器在PyTorch对网络的开发、训练以及调试,用户无需进一步关注昇腾AI处理器具体的底层细节。这样可以确保用户的修改最小化,迁移成本较低。