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