已合并
!4 merge inductor-dynamic-reduction-group-autotune into v2.10.0_dev #46285
qinhanmin创建于 9月14日
!4 merge inductor-dynamic-reduction-group-autotune into v2.10.0_dev #46285
已合并
qinhanmin创建于 9月14日
qinhanmin
qinhanmin
9月14日

【合入来源】

https://gitcode.com/Ascend/pytorch/issues/4779

【修改方案】

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

【资料变更】

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

【接口变更】

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

【功能验证】

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

【CheckList】

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

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 qinhanmin 的贡献)
qinhanminqinhanmin
9月14日 创建了 pull request,commit c808e421
atomgit-bot
atomgit-bot
9月14日 评论:

变更摘要

本 PR 将 inductor 动态 shape reduction 分组自动调优(dynamic-reduction-group-autotune)特性合入 v2.10.0_dev 分支,主要聚焦三类改动:调整 SplitTiling 对含动态分裂轴的 reduction 核函数的分桶与停止分裂策略;为 NPUSymbolicGroupedAutotuner 引入候选筛选与更贴近真实数据的 benchmark 输入;新增 allow_embedding_dense_backward_lowering 配置开关以控制 aten.embedding_dense_backward 的 lowering 路径。

主要改动

  • 分裂轴停止条件优化(split_tiling.py):在 meet_stop_condition 中新增 has_dynamic_split_axis 与 is_reduction_kernel 判断,当启用 npu_config.enable_symbolic_shape_group_autotune 且 reduction 核函数已含动态分裂轴时直接返回 True,避免再拉入静态分裂轴导致整轴驻留(residency)丢失和 BLOCK_SUB 碎片化。
  • 分桶边界按静态轴因子缩放(split_tiling.py):新增 _OUTER_BUCKETS_WITH_STATIC_AXES(按核心数倍数定义边界)以及 _static_group_factor、_scale_buckets_by_static_factor 方法,对外层/reduction 组的 GroupFeatureSpec 桶边界乘以静态轴因子,避免静态轴把动态轴压成单元素导致组无法填满 grid。
  • 分组 benchmark 候选筛选(triton_heuristics.py):新增 _screen_grouped_entries,当 reduction 分组候选数超过 _GROUPED_SCREEN_MIN_CANDIDATES(200)时先对各候选执行单次 launch 预跑并按组保留头部候选,被筛掉的候选保留其单次耗时,避免对明显劣势配置做全量重复测量。
  • 整型 benchmark 输入按真实取值范围采样(triton_heuristics.py):新增 integer_benchmark_range,在 materialize_spec 中对于 reduction 核函数的整型 runtime_arg,依据运行时参数快照 _grouped_runtime_args_snapshot 的真实 min/max 区间随机填充 tensor,恢复 gather/embedding 类核函数在真实数据上的性能差异。
  • reduction 分组运行时规则扩展(triton_heuristics.py):在 build_grouped_launch_policy 中将 "outer"、"reduction" 纳入会附加 representative_numel 运行时规则的 primary feature 列表,避免低于 representative 的 shape 继承其 grid 而循环多余行数。
  • embedding_dense_backward lowering 开关(config.py、decomposition.py、lowering_fallback_list.py):新增配置 allow_embedding_dense_backward_lowering(由环境变量 TORCHINDUCTOR_ENABLE_EMBEDDING_DENSE_BACKWARD_LOWERING 控制),为真时将 aten.embedding_dense_backward 从 TORCH_NATIVE_FALLBACK_LIST 移除并注册到 triton decomposition,否则保持原有 fallback 行为。
likedislike
不准确?
atomgit-bot
atomgit-bot
9月14日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
ascend-robotascend-robot成员
9月14日 添加了label:stat/needs-squash
ascend-robotascend-robot成员
9月14日 添加了label:needs-issue
ascend-robotascend-robot成员
9月14日 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
9月14日 评论:

Linking Issue Notice

@qindong0 , the pull request must be linked to at least one issue.
If an issue has already been linked, but the needs-issue label remains, you can remove the label by commenting /check-issue .

likedislike
ascend-robot
ascend-robot成员
9月14日 评论:

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

Protected Branch Version Release
master
v2.12.0
v2.11.0
v2.10.0
v2.9.0
v2.7.1
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-robot
ascend-robot成员
9月14日 评论:

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 ✅ HinPeng, rain-666 (2/2) ✅ HinPeng (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)
likedislike
ascend-robot
ascend-robot成员
9月14日 评论:

CLA Signature Pass

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

likedislike
AtlasAccountAtlasAccount成员
9月14日 添加了label:ci-pipeline-running
ascend-robot
ascend-robot成员
9月14日 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
9月14日 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
9月14日 评论:

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

likedislike
ascend-robotascend-robot成员
9月14日 删除了label:docs-ci-pipeline-running
ascend-robotascend-robot成员
9月14日 添加了label:docs-ci-pipeline-success
lvjiangdong成员
9月14日 评论:

compile

likedislike
ascend-robot
ascend-robot成员
9月14日 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
9月14日 删除了label:docs-ci-pipeline-success
ascend-robotascend-robot成员
9月14日 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
9月14日 评论:

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

likedislike
ascend-robotascend-robot成员
9月14日 删除了label:docs-ci-pipeline-running
此处折叠了5条事件消息 查看更多
AtlasAccountAtlasAccount成员
9月14日 添加了label:ci-pipeline-passed
AtlasAccount
AtlasAccount成员
9月14日 评论:
流水线 PR-pipeline_pytorch#67462 [ commitID:9d5adb95 ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 Build_X86 ✅ COMPLETED >>>
Build_ARM ✅ COMPLETED >>>
Build_X86_torchair ⚪ IGNORED >>>
Build_ARM_torchair ⚪ IGNORED >>>
patch_test ⚪ IGNORED >>>
Build_X86_213 ⚪ IGNORED >>>
Build_ARM_213 ⚪ IGNORED >>>
恶意代码检查 Antipoison ✅ COMPLETED >>>
编码安全与规范检查 codecheck_pre-commit ✅ COMPLETED >>>
check_error ✅ COMPLETED >>>
lintrunner ✅ COMPLETED >>>
开源片段检查 SCA ✅ COMPLETED >>>
开发者测试 UT_ARM_A3_Part_01 ⚪ IGNORED >>>
UT_ARM_A3_Part_02 ⚪ IGNORED >>>
UT_ARM_A2_Part_01 ✅ COMPLETED >>>
UT_ARM_A2_Part_02 ✅ COMPLETED >>>
UT_ARM_A2_Part_03 ⚪ IGNORED >>>
UT_inductor_Part_01 ✅ COMPLETED >>>
UT_inductor_Part_02 ✅ COMPLETED >>>
UT_inductor_Part_03 ✅ COMPLETED >>>
UT_inductor_Part_04 ✅ COMPLETED >>>
UT_DIST_ARM_Part_01 ⚪ IGNORED >>>
UT_DIST_ARM_Part_02 ⚪ IGNORED >>>
UT_DIST_ARM_Part_03 ⚪ IGNORED >>>
UT_DIST_ARM_Part_04 ⚪ IGNORED >>>
UT_ARM_A2_Select_Part_01 ⚪ IGNORED >>>
UT_ARM_A2_Select_Part_02 ⚪ IGNORED >>>
UT_inductor_Part_213 ⚪ IGNORED >>>
流水线 PR-pipeline_pytorch ✅ COMPLETED >>>
此流水线已支持下列评论快捷指令,仅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, SCh_zx]评论有效
  • compile、compile_inductor、compile_torchair : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
Xuan Peng
29 天前 评论:

/lgtm
/approve

likedislike
ascend-robotascend-robot成员
29 天前 添加了label:approved
rain-666
rain-666成员
29 天前 评论:

/lgtm

likedislike
ascend-robotascend-robot成员
29 天前 添加了label:lgtm
ascend-robotascend-robot成员
29 天前 合入了pull request
AtlasAccount
AtlasAccount成员
29 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#15231 [ commitID:9d5adb95 ] 已完成
likedislike