AddLayerNorm→InplaceAddLayerNorm 融合规则原先存在于其他路径,需要将其迁移至 graph base(op_graph)路径,使用 graph_metadef 的原生 Graph/GNode 接口改图,与已有算子实现形成完整闭环。InplaceAddLayerNorm 将 x1/x2 原地写回,省去额外输出拷贝,降低显存占用与访存开销。
InplaceAddLayerNorm
ops-nn 仓库 inplace_add_layer_norm 算子融合规则路径迁移需求。
ZInplaceAddLayerNormFusionPass
FusionBasePass
Run
AddLayerNorm
epsilon
additional_output
关联 PR:https://gitcode.com/cann/ops-nn/pull/9018
一、背景信息(Backgroud)
AddLayerNorm→InplaceAddLayerNorm 融合规则原先存在于其他路径,需要将其迁移至 graph base(op_graph)路径,使用 graph_metadef 的原生 Graph/GNode 接口改图,与已有算子实现形成完整闭环。
InplaceAddLayerNorm将 x1/x2 原地写回,省去额外输出拷贝,降低显存占用与访存开销。二、信息来源(Origin)
ops-nn 仓库 inplace_add_layer_norm 算子融合规则路径迁移需求。
三、价值/作用(Benefit / Necessity)
四、设计方案(Design)
ZInplaceAddLayerNormFusionPass,继承FusionBasePass,使用 graph_metadef 原生 Graph/GNode 接口改图;Run入口先做全局守卫(场景、平台,只判一次),再扫图取AddLayerNorm候选,逐节点过守卫链后执行单节点替换,替换失败整图回退;epsilon/additional_output原样透传。关联 PR:https://gitcode.com/cann/ops-nn/pull/9018