简介
概述
TorchAir(Torch Ascend Intermediate Representation)是昇腾Ascend Extension for PyTorch(torch_npu)的图模式能力扩展库,提供了昇腾设备亲和的torch.compile图模式后端,实现了PyTorch网络在昇腾NPU上的图模式推理加速以及性能优化。
TorchAir在Ascend Extension for PyTorch(torch_npu)中的位置如图1所示,图中左侧为单算子执行模式(Eager),右侧为torch.compile图执行模式(Graph)。torch.compile图模式不仅继承了大部分PyTorch原生的Dynamo特性(如动态shape图功能等),还在此基础上新增其他图优化和定位调试能力,例如FX图Pass优化、图内多流并行、集合通信算子入图等,详细功能参见使用向导,手册中提到的概念请参考常用概念。
目前图执行分为两种模式(可通过config.mode切换):
使用说明
- 产品定位:当前版本的TorchAir作为beta特性,主要专注于推理场景下的模型优化。
- 前提条件:在使用TorchAir图模式功能之前,建议先熟悉Ascend Extension for PyTorch基础知识。
- 产品支持情况:
- reduce-overhead模式(aclgraph)功能支持如下产品:
Atlas A3 训练系列产品/Atlas A3 推理系列产品 Atlas A2 训练系列产品/Atlas A2 推理系列产品
- max-autotune模式大部分功能都支持,少数功能产品支持情况有些差异,具体请以每章使用约束为准。
- reduce-overhead模式(aclgraph)功能支持如下产品:
- 其他约束:PyTorch图模式支持单进程和多进程,每个进程只支持使用1张NPU卡,不支持使用多张NPU卡。
使用向导
首次阅读本文时,建议先熟悉下表,它将帮助您快速掌握TorchAir原理和关键技术。此外,本文还将指导您快速上手安装方法、功能配置示例以及API参考等。
使用场景 |
操作指引 |
说明 |
|---|---|---|
1. 如何安装TorchAir |
介绍TorchAir包获取、安装、版本约束以及依赖的三方库信息等。 |
|
2. 如何配置TorchAir功能 |
提供了TorchAir图模式功能配置的简单样例。 |
|
3. TorchAir提供了哪些图功能 |
介绍公共的基础图功能,不区分max-autotune或reduce-overhead图执行模式。 |
|
介绍aclgraph图执行模式下支持的图功能。 |
||
介绍Ascend IR图执行模式下支持的图功能。 |
||
4. 支持入图的ATen API |
提供了能在昇腾NPU上以图模式执行的Torch API列表。 |
|
5. 自定义算子如何入图 |
针对自定义算子,提供算子开发和适配入图的全流程和样例。 |
|
6. TorchAir提供了哪些API |
介绍TorchAir图模式功能配置时可能会使用的接口。 |
|
7. TorchAir应用案例和常见定位方法 |
|
常用概念
本节列举了手册中常用的术语和概念,以帮助您更好地理解关键特性和实现原理。

