已合并
[refactor]decomp_2.10.0 #40576
[refactor]decomp_2.10.0 #40576
已合并
yeh创建于 7月9日
yeh
yeh成员
7月9日

【合入来源】

如有社区issue,请关联issue链接
请勿携带内部流程信息(需求链接、问题单、内部issue等)

【修改方案】

请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列
如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容)

对decomposition代码进行重构,将原先两个文件中的decomp逻辑都合并至torch_npu_inductor\decomposition.py文件,并提取公共注册函数。重构不改变原注册函数调用点。

【资料变更】

请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及”

不涉及

【接口变更】

请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及”

不涉及

【功能验证】

说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤
新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 yeh 的贡献)
yehyeh成员
7月9日 创建了 pull request,commit 87846de1
atomgit-bot
atomgit-bot
7月9日 评论:

变更摘要

本次重构将 npu_decomp.py 中分散的 NPU 分解(decomposition)逻辑整体移除,统一收敛至 torch_npu/_inductor/decomposition.py,同时清理了该文件中不再需要的 _register_npu_inductor_decompositions 分发函数及冗余导入,实现分解注册的集中管理,且不改变原有注册函数的调用点。

主要改动

  • 删除 npu_decomp.py 文件:移除 torch_npu/_inductor/ascend_npu_ir/ascend_npu_ir/npu/npu_decomp.py 全部 210 行代码,其中包含 batch_norm_decompositiongelu/gelu_backwardnpu_convolution_backwardnpu__softmax_backward_dataexpm1 等函数的定义及其通过 inductor_decomp.register_decomposition 的注册逻辑,以及 remove_decompositions 调用。
  • 移除 _register_npu_inductor_decompositions 分发函数:在 decomposition.py 中删除该函数及其内部的 backend 参数判断分支(tritonmlir_dvm),消除了对后端类型进行条件分发的间接层。
  • 清理冗余导入:从 decomposition.py 中移除 pw_cast_for_opmathout_wrapper 两个未被使用的导入,精简模块依赖。
likedislike
atomgit-bot
atomgit-bot
7月9日 评论:

代码审查

审查总结

优先级 数量 说明
P0 1 _register_npu_inductor_decompositions 函数被删除,但 __init__.pynpu_inductor_plugin.py 仍导入并调用它,导致 ImportError 运行时崩溃,且 _register_triton_decompositions / _register_mlir_dvm_decompositions 永远不会被调用
P2 1 测试文件 test_public_bindings.py 仍引用已删除的 npu_decomp 模块,测试将失败

已审查文件:

  • torch_npu/_inductor/decomposition.py:发现 P0 问题(删除 _register_npu_inductor_decompositions 但调用方未更新)
  • torch_npu/_inductor/ascend_npu_ir/ascend_npu_ir/npu/npu_decomp.py(已删除):此文件在生产代码中从未被 import,删除本身是安全的清理;但测试文件中的引用需要同步移除

总体风险评估:此变更存在破坏性的 P0 问题,合入将导致 inductor 初始化直接崩溃。 必须修复 _register_npu_inductor_decompositions 调用方,才能安全合入。

类型 数量
🔴 阻塞 1
🟡 建议 0

⛔ 需要修改

likedislike
ascend-robotascend-robot成员
7月9日 添加了label:ascend-cla/yes
此处折叠了144条消息 查看更多
htchu成员
7月16日 评论:

/approve

likedislike
ascend-robotascend-robot成员
7月16日 添加了label:approvedlgtm
ascend-robotascend-robot成员
7月16日 合入了pull request
ascend-robot
ascend-robot成员
7月16日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
ascend-robot
ascend-robot成员
7月16日 评论:
流水线 pytorch_gitcode_PR_multiVersion#12677 [ commitID:7901ae7e ] 已完成
likedislike