已合并
perf(inductor): optimize training operators #45392
perf(inductor): optimize training operators #45392
已合并
luqichao创建于 9 天前
luqichao
luqichao成员
9 天前
  1. aten.embedding_dense_backward.default 加入 NPU native fallback,复用 NPU 原生算子,避免 Inductor 生成低效 kernel。
  2. 在 Triton backend 中独立维护完整的 matmul_backward decomposition,覆盖不同输入维度和 batch 场景,降低对 MFusion backend 逻辑的依赖。
likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 luqichao 的贡献)
luqichaoluqichao成员
9 天前 创建了 pull request,commit 80028721
atomgit-bot
atomgit-bot
9 天前 评论:

变更摘要

本 PR 旨在优化训练算子的性能:一方面将 aten.embedding_dense_backward.default 加入 NPU native fallback,复用 NPU 原生算子,避免 Inductor 生成低效 kernel;另一方面在 Triton backend 中通过 _matmul_backward_inductor 独立维护完整的 matmul_backward decomposition,覆盖不同输入维度与 batch 场景,降低对 MFusion backend 逻辑的依赖。

主要改动

  • 新增 _matmul_backward_inductor 分解实现:在 torch_npu/_inductor/decomposition.py 中新增该函数,按输入张量维度组合(1d-1d、2d-1d、1d-2d、nd 与低维、低维与 nd 及默认 torch.matmul 分支)分别计算 grad_selfgrad_other,并通过 mask 控制是否生成对应梯度。
  • 注册 matmul_backward 分解:通过 register_decomposition([aten.matmul_backward.default])(_matmul_backward_inductor) 在 Triton decomposition 注册流程中挂载该实现,使 matmul_backward 的分解在 Triton backend 内独立完成。
  • 扩展 Triton decomposition 列表:在 _register_triton_decompositions() 中新增 aten.slice_backwardaten.embedding_dense_backwardaten.matmul_backward.default 三项分解注册。
  • 新增 NPU native fallback 条目:在 torch_npu/_inductor/lowering_fallback_list.pyTORCH_NATIVE_FALLBACK_LIST 中新增 aten.embedding_dense_backward.default,使该反向算子直接复用 NPU 原生算子实现,避免低效 kernel 生成。
likedislike
atomgit-bot
atomgit-bot
9 天前 评论:

代码审查

✅ 未发现问题

likedislike
luqichaoluqichao成员
9 天前 关联了issue:Inductor perf optimize for training
ascend-robotascend-robot成员
9 天前 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
9 天前 评论:

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.


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
torch_npu/_inductor rain-666, HinPeng (2/2) HinPeng (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

luqichao, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
ascend-robot
ascend-robot成员
9 天前 评论:

当前仓库存在以下 保护分支

Protected Branch Version Release
master
v2.12.0
v2.11.0
v2.7.1
v2.10.0
v2.9.0
v2.7.1-26.1.0
v2.9.0-26.1.0
v2.10.0-26.1.0
v2.11.0-26.1.0
v2.12.0-26.1.0
ci-test

评论 /sync <branch1> <branch2> ... 可将当前 PR 修改同步到其它分支(创建同步 PR):
a) 如果当前 PR 是 Open 状态,同步操作将延迟到 PR 被合并时执行
b) 如果当前 PR 已经 Merged,将立即执行同步操作

注意:

  1. /sync 命令可以指定同步到多个分支,仅最后一个 /sync 命令生效
  2. 如果创建的同步 PR 不正确,可通过向同步 PR 的源分支提交轻量级 PR 完善,或使用 /close 命令关闭
likedislike
ascend-robotascend-robot成员
9 天前 添加了label:ci-pipeline-running
ascend-robot
ascend-robot成员
9 天前 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
9 天前 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
9 天前 评论:

✅ 跳过 docs ci 检查,没有需要检查的文档文件

likedislike
ascend-robotascend-robot成员
9 天前 删除了label:docs-ci-pipeline-running
ascend-robotascend-robot成员
9 天前 添加了label:docs-ci-pipeline-success
ascend-robotascend-robot成员
9 天前 删除了label:ci-pipeline-running
ascend-robotascend-robot成员
9 天前 添加了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
9 天前 评论:
流水线 PR-pipeline_pytorch#64268 [ commitID:4dbbd8e0 ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 Build_X86 >>>
Build_ARM >>>
Build_X86_torchair 🛑 >>>
Build_ARM_torchair 🛑 >>>
patch_test 🛑 >>>
Build_X86_213 >>>
Build_ARM_213 >>>
恶意代码检查 Antipoison >>>
编码安全与规范检查 codecheck_pre-commit >>>
check_error >>>
lintrunner >>>
开源片段检查 SCA >>>
开发者测试 UT_ARM_A3_Part_01 🛑 >>>
UT_ARM_A3_Part_02 🛑 >>>
UT_ARM_A2_Part_01 >>>
UT_ARM_A2_Part_02 >>>
UT_ARM_A2_Part_03 >>>
UT_inductor_Part_01 🛑 >>>
UT_inductor_Part_02 🛑 >>>
UT_inductor_Part_03 🛑 >>>
UT_inductor_Part_04 🛑 >>>
UT_DIST_ARM_Part_01 🛑 >>>
UT_DIST_ARM_Part_02 🛑 >>>
UT_DIST_ARM_Part_03 🛑 >>>
UT_DIST_ARM_Part_04 🛑 >>>
UT_ARM_A2_Select_Part_01 >>>
UT_ARM_A2_Select_Part_02 >>>
UT_ARM_A2_Part_213 >>>
UT_inductor_Part_213 🛑 >>>
UT_DIST_ARM_Part_213 🛑 >>>
UT_ARM_A2_Select_Part_213 >>>
流水线 PR-pipeline_pytorch >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员[wujinyuan1, huangjingwei, liangsongwei, yashi999, culechan, Dring, wuyouqi1, L1919_snow, qq_52711437, WhiteNight12, nomiz, xiu_21, ffmh, wanglijun55, hss-shuai, husichao, smallsilly, lanshaozuishuai, jimmyisme1, lzy0920232, alpha-junh, Sunshine_Youngster, wei_zhuoyi, zhangyihuiben, zyw-hw, zzzkeke, rmch, yangch0324, LucciC, AACAES, renyujin, wjlflyer, senzhen-town, pengjingyou, qsc97, limuan, yule100, xiaoqi-zhou, kuhn7, chenxingying, hanye02, zichun_ye, anyrenwei, kkjocker, wangzili121, Lu_G, yvjc, puddingfjz, HandsoemLemon, bigprestigee1, huawuyi, zhenyu10, dairenjie, du-jin-hang, zou-jieyu, adelaideliu, TrHan, wanlinan, Windwindzzz, pengqihw, kisnwang, yuheng_wang, honghao_wang, jizewei, zhangguoguang, sunyu-xuan, chenrayray, hbhu_bin, liujunzhu, c_34, LiNuoh, maoyuanpeng1, zzhongmin, zhaoyu65, bellatan, jiabaolin, zhuofanshen, wencaiwen, lu_zhuge, caoshuyang, molly12, lyx324521, LQ1206, gitcode-chenjiao, cai-weiwei1989, CHDong, ogqin, yuanlipingGit, xuqinglin1, lqz2, zouwei1, chaoluoa, paradox325, jackzhang1116, yaoyao, akh, yujiacheng, dengjie0116, Hubert11111, Shine_Ws, wslhj555, longqiand, OYtao666, JiaqingQiang, luyyyy, Kingbelial, zhanghaiyu0101, wenxp1018, yanliu-luoluo, ksun_sekiro, liyong328, wgzheng, tangky, vivi_is_coding, aoiaoisola, weixin_44494597, wangmengmengwang65667, hid57809721, qq_35468730, comeonup, C547032, gcw_m5OQChA4, yao_yao_ling_xian, cnnbwcy, szqfes_12, cora_19, cann_lilin, can, shawnylee233, fanglanyue0916, hhz0, LiNuohang, taohuoquan, Jesse, WSs_321]评论有效
  • compile、compile_inductor、compile_torchair : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
rain-666
rain-666成员
8 天前 评论:

/lgtm

likedislike
Xuan Peng
8 天前 评论:

/lgtm
/approve

likedislike
ascend-robotascend-robot成员
8 天前 添加了label:approvedlgtm
ascend-robotascend-robot成员
8 天前 合入了pull request
AtlasAccount
AtlasAccount成员
8 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#14659 [ commitID:4dbbd8e0 ] 已完成
likedislike