昇腾社区首页
中文
注册

FX Pass配置功能

功能简介

本功能为试验特性,后续版本可能存在变更,暂不支持应用于商用产品中。

reduce-overhead执行模式(aclgraph)下,可基于torch.compile生成的ATen IR表示FX Graph或GraphModule,通过对图中的ATen IR变换和分析,可以在不修改原始模型代码的情况下对模型进行灵活修改,比如应用各种图优化Pass操作(算子融合、精度转换、量化等)。

TorchAir提供了一些FX Pass配置项,可以将变换后的ATen IR下沉到aclgraph执行器上,提升算子的执行效率。

使用约束

  • 目前仅适用于如下产品:
    • Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件
    • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • 本功能必须先开启reduce-overhead模式,约束与reduce-overhead模式配置一致。

使用方法

该功能通过torchair.get_npu_backend中compiler_config配置,示例如下,仅供参考不支持直接拷贝运行,参数介绍参见表1

1
2
3
4
5
6
7
8
9
import torch_npu, torchair
config = torchair.CompilerConfig()
# 配置图执行模式
config.mode = "reduce-overhead"
# FX Pass配置开关
config.debug.aclgraph.disable_reinplace_inplaceable_ops_pass = False
config.debug.aclgraph.disable_reinplace_input_mutated_ops_pass = False
npu_backend = torchair.get_npu_backend(compiler_config=config)
opt_model = torch.compile(model, backend=npu_backend)
表1 参数说明

参数名

说明

aclgraph.disable_reinplace_inplaceable_ops_pass

布尔类型,是否关闭Pass。该Pass针对模型的中间节点,将节点中包含的Out-of-place算子(非原地算子)替换为In-place算子(原地算子),以减少计算过程中的内存搬运,从而提升性能。

  • False(缺省值):默认打开此pass。
  • True:关闭此pass。

aclgraph.disable_reinplace_input_mutated_ops_pass

布尔类型,是否关闭Pass。该Pass针对模型的原始输入参数,若包含原地操作算子(如KV Cache),Dynamo的Functionalize流程会将原地算子替换为“Out-of-place算子+copy_算子”,本Pass是该操作的逆向过程,将“Out-of-place算子+copy_算子”替换为In-place算子,以减少计算过程中的内存搬运,从而提升性能。

  • False(缺省值):默认打开此pass。
  • True:关闭此pass。