已合并
perf(layer_norm): check fusion pass platform before pattern construction #11299
rk创建于 9月28日
perf(layer_norm): check fusion pass platform before pattern construction #11299
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 rk 的贡献)atomgit-bot
9月28日 评论:
9月28日 评论:
变更摘要
本 PR 属性能优化,将 LayerNormONNXFusionPass 与 LayerNormONNXMULFusionPass 的平台校验从匹配结果过滤阶段前移到 pattern 构造阶段:在不支持的平台或平台信息获取失败时,Patterns() 直接返回空 pattern 列表,从而避免构造分别为 96 和 40 个的 pattern 及后续的结构匹配,并消除匹配结果过滤阶段的重复平台查询。
主要改动
LayerNormONNXFusionPass::Patterns()前移平台校验: 在Patterns()开头调用IsSupportedPlatform(),不支持时直接return {},避免继续构造 96 个 pattern。LayerNormONNXFusionPass::MeetRequirements()移除重复平台查询: 删除原位于guard_begin日志后的IsSupportedPlatform()判断,平台校验不再在匹配过滤阶段重复执行。LayerNormONNXMULFusionPass::Patterns()前移平台校验: 在其Patterns()开头加入IsSupportedPlatform()判断,不支持时返回空 pattern 列表,跳过 40 个 pattern 的构造。LayerNormONNXMULFusionPass::MeetRequirements()移除重复平台查询: 同样删除guard_begin日志后的IsSupportedPlatform()判断,避免过滤阶段再次查询平台信息。


不准确?
atomgit-bot
9月28日 评论:
9月28日 评论:
9月28日 添加了label:cann-cla/yes
CANN-robot
9月28日 评论:
9月28日 评论:
Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| */*/docs/acl*.md | ✅ 陈昊文, 钱泽洪, 杨露 (3/2) | ✅ 杨露 (1/1) |
| norm | ✅ 钱泽洪, 陈昊文 (2/2) | ✅ 钱泽洪, 陈昊文 (2/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
wangpengbo26, thanks for your pull request. All authors of the commits have signed the CLA. 👍


此处折叠了80条消息 查看更多
9月29日 添加了label:approved
qianzehong
9月29日 评论:
9月29日 评论:
/approve
/lgtm


9月29日 添加了label:lgtm
9月29日 关闭了关联的issue
9月29日 合入了pull request
描述
将
LayerNormFusionPass、LayerNormInferenceFusionPass、LayerNormONNXFusionPass、LayerNormONNXMULFusionPass和LayerNormRemoveBroadcastFusionPass五条融合规则的平台校验从MeetRequirements()前移到Patterns()开头。不支持的平台或平台信息获取失败时返回空 pattern,避免构造 pattern(分别为 32、64、96、40、1 个)及后续结构匹配;移除匹配结果过滤阶段的重复平台查询。改动原因
平台校验原先位于
MeetRequirements()(匹配结果过滤阶段):MeetRequirements()在每次匹配回调中重复查询平台信息。平台信息在图编译期间不变,校验一次即可,前移到
Patterns()入口可将不支持平台的整体开销降到最低。改动方法
五条规则统一调整:
Patterns()开头增加IsSupportedPlatform()校验:不支持的平台或平台信息获取失败时直接返回空 pattern 列表。MeetRequirements()中的IsSupportedPlatform()重复校验。涉及文件(5 个,+16 -16):
norm/layer_norm/op_graph/fusion_pass/layer_norm_fusion_pass.cpp(+3 -3)norm/layer_norm/op_graph/fusion_pass/layernorm_inference_fusion_pass.cpp(+3 -3)norm/layer_norm/op_graph/fusion_pass/layer_norm_onnx_fusion_pass.cpp(+3 -3)norm/layer_norm/op_graph/fusion_pass/layer_norm_onnx_mul_fusion_pass.cpp(+3 -3)norm/layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp(+4 -4)关联的Issue
-https://gitcode.com/cann/ops-nn/issues/6262
测试
pass
文档更新
不涉及
类型标签
AI/Agent生成声明