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
使用约束:
--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功能同时开启,后续配置时无限制。