已开启
DVM GraphFusion matmul-only 开启说明 #4
SorryNaCN创建于  6月11日
SorryNaCN
SorryNaCN成员
6月11日 创建

开启方式

建议在启动 Python 前设置环境变量,避免模块 import 时读取不到开关:


# 开启 matmul_backward 分解
export INDUCTOR_DVM_ENABLE_MATMUL_BACKWARD_DECOMP=1

选项1:# GraphFusion 只融合包含 matmul 的子图,不含 matmul 的图 fallback
export INDUCTOR_DVM_GRAPH_FUSION_ONLY_MATMUL_GRAPHS=1

选项2:# GraphFusion 支持 op 列表只保留 matmul 类 op: mm/bmm/addmm 建议先试试这个
export INDUCTOR_DVM_GRAPH_FUSION_ONLY_MATMUL_OPS=1

GraphFusion 本身需要显式 enable:

from torch_npu._inductor.dvm.graph_fusion import DvmGraphFusionPatch

DvmGraphFusionPatch.enable()
# 后面再跑 torch.compile(...)

开关含义

  • INDUCTOR_DVM_ENABLE_MATMUL_BACKWARD_DECOMP=1:把 aten.matmul_backward.default 分解成 matmul 相关算子。
  • INDUCTOR_DVM_GRAPH_FUSION_ONLY_MATMUL_GRAPHS=1:只融合包含 mm/bmm/addmm 的 GraphFusion 子图,其余子图 fallback。
  • INDUCTOR_DVM_GRAPH_FUSION_ONLY_MATMUL_OPS=1:把 GRAPH_FUSION_SUPPORT_OP 限制成 aten.mm.default / aten.bmm.default / aten.addmm.default

注意

这些环境变量是在模块 import 时读取的,所以需要先 export,再启动 Python 或运行脚本。

likedislike
SorryNaCNSorryNaCN成员
6月15日 修改了issue 的描述
SorryNaCNSorryNaCN成员
6月15日 修改了issue 的描述