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) |
参数名 |
说明 |
---|---|
aclgraph.disable_reinplace_inplaceable_ops_pass |
布尔类型,是否关闭Pass。该Pass针对模型的中间节点,将节点中包含的Out-of-place算子(非原地算子)替换为In-place算子(原地算子),以减少计算过程中的内存搬运,从而提升性能。
|
aclgraph.disable_reinplace_input_mutated_ops_pass |
布尔类型,是否关闭Pass。该Pass针对模型的原始输入参数,若包含原地操作算子(如KV Cache),Dynamo的Functionalize流程会将原地算子替换为“Out-of-place算子+copy_算子”,本Pass是该操作的逆向过程,将“Out-of-place算子+copy_算子”替换为In-place算子,以减少计算过程中的内存搬运,从而提升性能。
|
父主题: reduce-overhead模式功能