开发者
资源

AUTOFUSE_FLAGS环境变量控制点

--enable_autofuse

控制整体自动融合功能是否开启。

取值:

  • true:表示开启。
  • false:(默认值)表示关闭。

不配置表示关闭整体自动融合功能,关闭时以下其他控制点全部失效,无论是否配置。

配置示例:

--enable_autofuse=true

使用约束:

配置开启后,Elemwise算子与Broadcast算子间的自动融合能力便开启。

--autofuse_disable_pass

控制拓展融合能力是否关闭。

取值:

  • reduce:控制Reduce类算子融合能力关闭。
  • concat:控制Concat类算子融合能力关闭。

配置多个取值时使用英文逗号分割,默认为空,Reduce类、Concat类算子的融合能力目前默认不开启。

配置示例:

--autofuse_disable_pass=reduce,concat

使用约束:

与--autofuse_enable_pass不能同时配置相同的取值。

--autofuse_enable_pass

控制拓展融合能力是否开启。

取值:

  • reduce:控制Reduce融合能力开启。
  • concat:控制Concat融合能力开启。

配置多个取值时使用英文逗号分割,默认为空,Reduce类、Concat类算子的融合能力目前默认不开启。

配置示例:

--autofuse_enable_pass=reduce,concat

使用约束:

与--autofuse_disable_pass不能同时配置相同的取值。

--autofuse_enhance_precision_blacklist

控制自动融合局部融合节点不做提升精度操作。

某个AscGraph中所有的AscIR都配置到黑名单中,该AscGraph才不会升精度。

取值:

AscIR类型的字符串组合,多个类型使用英文逗号分割,默认值为空字符串,表示所有AscGraph都会提升精度。

该参数中的AscIR类型是Dump图中对应节点type中的取值,例如Dump图中某节点type的取值为ge:Add,则实际配置为Add。

配置示例:

--autofuse_enhance_precision_blacklist=Le,Where,Sub,Add,Sigmoid

使用约束:

  • "Sum"、"Mean"、"Prod"不支持低精度类型,默认必须提升精度,因此不能配置到提升精度黑名单中。
  • 不提升精度可以获得更高性能,但可能会引发精度问题。因此,在配置不提升精度后,用户需确保精度满足业务要求。
  • Dump图的方法请参见环境变量参考 > 图编译 > DUMP_GE_GRAPH

--recomputation_threshold

控制自动融合重计算阈值。

该参数用于设置单输出算子的引用阈值,当单输出节点引用个数超过阈值时,首次融合会在当前节点进行融合截断。

取值:0-255间的任意整数,默认为1。

配置示例:

--recomputation_threshold=5

使用约束:

无。

--experimental_enable_jit_executor_v2

控制是否打开切图编译。

取值:

  • true:表示开启。
  • false:(默认值)表示关闭。

切图编译是将原始图在无法推导符号的边界进行断图处理,切成N个图,将上游图的输出作为下游图的输入hint继续符号推导并执行。

配置示例:
--experimental_enable_jit_executor_v2=true

使用约束:

如下场景不支持切图:

  • 动态分档场景
  • 图上包含资源类算子(输入或者输入的类型是DT_RESOURCE,如TensorArrayWrite)
  • 图上包含V1版本控制算子(如:"Switch","StreamSwitch","Merge","StreamMerge","Enter","Exit","LoopCond","NextIteration")
  • 开启数据预处理下沉
  • 开启AOE调优的场景

--autofuse_enable_pgo

控制是否开启PGO(Profile-Guided Optimization,基于采样数据的优化)调优。

PGO调优是通过预上板采样,选取表现相对更好的Tiling以提升模型执行性能。

取值:

  • true:表示开启。
  • false:(默认值)表示关闭。

配置示例:

--autofuse_enable_pgo=true

使用约束:

仅支持对静态图调优,首次配置时,不能与其他Profiling功能同时开启,后续配置时无限制。