TorchAir(Torch Ascend Intermediate Representation)是昇腾为Ascend Extension for PyTorch(torch_npu)提供的图模式能力扩展库,支持PyTorch网络在昇腾设备上进行图模式推理。TorchAir基于torch.compile提供了昇腾设备的图模式编译后端,对接PyTorch的Dynamo特性,将PyTorch的FX(Functionalization)计算图转换为昇腾Ascend IR(Intermediate Representation)计算图,并通过GE(Graph Engine)启动计算图编译和执行能力。
TorchAir继承了Dynamo原生大部分特性,如动态shape图功能等,在此基础上又新增了图相关能力,如离线场景导图、集合通信算子入图等功能,详细介绍参见功能介绍。
PyTorch图模式功能当前仅支持单进程单卡场景。
首次阅读本文档时,建议先阅读表1,以帮助您快速获取TorchAir安装方法、快速上手示例、关键功能项说明、API参考等。
使用场景 |
操作指引 |
说明 |
---|---|---|
1. TorchAir使用前如何准备环境 |
阐述了TorchAir包的获取、安装、版本约束以及依赖的三方库等信息。 |
|
2. TorchAir图模式如何快速配置 |
提供了TorchAir如何使能图模式的代码示例,同时介绍了图模式下支持配置的config功能。 |
|
3. TorchAir提供了哪些关键能力 |
提供了模型缓存编译方案,通过优化Dynamo和Ascend IR计算图编译耗时,加速torch.compile图模式启动时间。 |
|
通过Monkey Patch方式补充原生PyTorch 2.1中部分不支持的集合通信算子入图能力。 |
||
为了优化Host调度性能,NPU提供了一个ACL Graph方案,一种Device调度方案,省略算子的Host调度过程。 |
||
提供了模型推理时可能会用到的一系列精度或性能问题分析和定位功能,具体如下: |
||
提供了能进一步提升模型执行性能的功能。此类功能适用于某些特定场景,用户需要根据实际情况配置对应功能项。 |
||
4. 自定义算子如何通过TorchAir入图 |
针对自定义算子,TorchAir提供插件化入图方式,方便自定义算子入图。 |
|
5. TorchAir支持哪些Aten API |
提供了能在昇腾NPU上以图模式执行的Torch API列表。 |
|
6. 图模式下大模型推理和迁移案例 |
|
|
7. 更多功能配置相关的API |
提供了图模式下推理场景常用的API以及LLM-DataDist(模型分布式集群和数据加速组件)相关API介绍。 |
|
8. 图模式下的常见问题有哪些 |
罗列了一些常见问题,提供问题分析和处理方法建议,供用户参考。 |