简介
概述

TorchAir(Torch Ascend Intermediate Representation)是昇腾Ascend Extension for PyTorch(torch_npu)的图模式能力扩展库,提供了昇腾设备亲和的torch.compile图模式后端,实现了PyTorch网络在昇腾NPU上的图模式推理加速以及性能优化。
TorchAir在Ascend Extension for PyTorch中的架构如图1所示,其实现图模式的方式有如下两种,可通过config.mode切换模式。
- max-autotune模式(Ascend IR):将PyTorch的FX计算图转换为昇腾中间表示(IR,Intermediate Representation),即Ascend IR计算图,并通过GE(Graph Engine,图引擎)实现计算图的编译和执行。
- reduce-overhead模式(aclgraph):采用Capture&Replay方式实现任务一次捕获多次执行,Capture阶段捕获Stream任务到Device侧,暂不执行;Replay阶段从Host侧发出执行指令,Device侧再执行已捕获的任务,从而减少Host调度开销,提升性能。
为了实现图模式下模型推理加速和优化,TorchAir不仅继承了大部分PyTorch原生Dynamo特性(如动态shape图功能等),还在此基础上新增了其他图优化和图定位能力,如离线场景下导图、集合通信算子入图等,详细介绍请参见基础功能、max-autotune模式功能、reduce-overhead模式功能。
使用约束
- PyTorch图模式功能当前仅支持单进程单卡场景。
- 目前仅如下产品支持aclgraph(reduce-overhead模式)执行模式:
Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件 Atlas A3 训练系列产品/Atlas A3 推理系列产品
常用概念
使用说明
首次阅读本文档时,建议先阅读表1,以帮助您快速获取TorchAir安装方法、快速上手示例、关键功能项说明、API参考等。
使用场景 |
操作指引 |
说明 |
---|---|---|
1. TorchAir使用前如何准备环境 |
阐述了TorchAir包的获取、安装、版本约束以及依赖的三方库等信息。 |
|
2. TorchAir图模式如何快速配置 |
提供了TorchAir配置图模式的示例,并介绍图模式相关的config配置。 |
|
3. TorchAir提供了哪些图功能 |
提供了图模式公共的基础功能,不区分图执行方式(max-autotune模式或reduce-overhead模式)。 |
|
提供了Ascend IR(max-autotune模式)图模式场景下支持配置的功能。
|
||
提供了aclgraph(reduce-overhead模式)图模式场景下支持配置的功能。 |
||
4. 已支持入图的ATen API |
提供了能在昇腾NPU上以图模式执行的Torch API列表。 |
|
5. 自定义算子如何入图 |
针对自定义算子,TorchAir提供了入图方法和关键步骤指导。 |
|
6. 常用定位方法和案例 |
|
|
7. TorchAir提供了哪些API |
提供了图模式下推理场景常用的API以及LLM-DataDist(模型分布式集群和数据加速组件)相关API介绍。 |
|
8. 图模式下有哪些常见问题 |
罗列了一些常见问题,提供问题分析和处理方法建议,供用户参考。 |