1. TorchAir适用场景
TorchAir(Torch Ascend Intermediate Representation)对接Pytorch的Dynamo特性,将Pytorch的FX(functionalize)图转化为Ascend IR,通过Graph Engine进行计算图的编译优化等操作,并下发到昇腾硬件执行。成图主要是为了解决host-bound问题,若性能瓶颈不在此,应该参考torch_npu常用优化点做针对性的性能优化。
- Host Bound问题在profiling中的表现为"Overlap Analysis"计算占比低,free占比高。可参考Host Bound问题分析
- 入图部分算子必须支持converter,ATen API支持清单列出了支持入图的ATen API,这些API能力均对等Eager模式下的ATen API能力。如果自定义模型用到的ATen API不在该列表中,说明对应的API能力可能不完备,用户需根据实际情况进行converter功能扩展,具体步骤参考:converter补齐
- 动态shape可控:当前torchair支持10个档位分档,多了会有性能劣化的问题;动态分档适用于某一维度的变化,比如batch size。
2. 约束条件
- PyTorch图模式支持单进程和多进程,每个进程只支持使用1张NPU卡,不支持使用多张NPU卡。