已合并
fix(rms_norm): add tail>0 guard for level1 increment and multi-level reduce in stage2 #5771
fix(rms_norm): add tail>0 guard for level1 increment and multi-level reduce in stage2 #5771
已合并
raoliang_sac创建于 6月5日
raoliang_sac成员
6月5日

关联 Issue

Closes #3158

问题描述

在 norm 目录下多个 rms_norm 变体的 split_reduce / split_d kernel 中,stage2 处理非整尾块逻辑时,ComputeSum + level1 += 1 + ComputeMultiLevelReduce 在 if/else-if 分支之后无条件执行,缺少 if (tail > 0) 保护。

tail == 0(剩余列数恰好被 ubFactor 整除)时,两个 if/else-if 分支均不进入,ComputeSum 不执行,level1Local[level1] 无有效数据。但 level1 += 1ComputeMultiLevelReduce 仍然执行,向归约树写入空槽位,导致 level2/level3 读取位置错位,最终 rstd 计算结果不正确。

修复方案

将 stage2 之后的 ComputeSum + level1 += 1 + ComputeMultiLevelReduceif (tail > 0) 包裹,与 add_rms_norm_quant_regbase_split_reduce.h line 288 的已有模式保持一致。

变更文件(3 个)

文件 修复位置
norm/rms_norm/op_kernel/arch35/rms_norm_regbase_split_d.h line 182-183
norm/add_rms_norm_cast/op_kernel/arch35/add_rms_norm_cast_regbase_spilt_reduce.h line 259-261
norm/add_rms_norm_dynamic_quant/op_kernel/arch35/add_rms_norm_dynamic_quant_regbase_split_reduce.h line 311-313

变更详情

         }
-        level1 += 1;
-        ComputeMultiLevelReduce(...);
+        if (tail > 0) {
+            level1 += 1;
+            ComputeMultiLevelReduce(...);
+        }
         // Stage3: Cal MasterLoop
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 raoliang_sac 的贡献)
Rraoliang_sac成员
6月5日 创建了 pull request,commit 2c1860b3
Rraoliang_sac成员
6月5日 关联了issue:[Bug] rms_norm_regbase_split_d.h: tail==0 时 level1 和 ComputeMultiLevelReduce 无条件执行导致 rstd 计算错误
CANN-robotCANN-robot成员
6月5日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
6月5日 评论:

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


PR Approval Progress

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

Module Approval Details

module lgtm status approve status
norm 王星, 杨阳 (2/2) 王星 (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
Rraoliang_sac成员
6月12日 update merge request[project id: 7665709, iid: 5771, commit_id: 28cf6262f75e3d28f8ff3cac058ab9c22fda0285] virtual merging success
此处折叠了5条事件消息 查看更多
Rraoliang_sac成员
6月12日 修改了pull request 的描述
raoliang_sac成员
6月12日 评论:

compile

likedislike
Rraoliang_sac成员
6月12日 update merge request[project id: 7665709, iid: 5771, commit_id: 3bc6fc0e92d99de9dc031d93aba126e621e7651e] virtual merging success
CANN-robotCANN-robot成员
6月12日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
6月12日 评论:

流水线任务触发成功
任务链接 [0b50a8804c6245fc80b76e0582e7c1d9][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_mobile_station ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single ❌ FAILED >>>>>
Compile_Ascend_experimental ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_950 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_950 ✅ SUCCESS >>>>> >>>>>
Compile_Pre ✅ SUCCESS >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_mobile_station_ubuntu24 ❌ FAILED >>>>>
Compile_Ascend_X86_950_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_experimental_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_950_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_910b ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_910c ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_950 ✅ SUCCESS >>>>> >>>>>
Compile_classify ✅ SUCCESS >>>>>
likedislike
CANN-robot
CANN-robot成员
6月12日 评论:

流水线任务触发成功
任务链接 [53987ada53b94392825e3857fc8294db][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_checkpr ✅ SUCCESS
StaticCheck_codespell_check ❌ FAILED
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
codecheck_style ✅ SUCCESS >>>>>
codecheck_precommit ⚠️ WARNING >>>>> >>>>>
SCA ✅ SUCCESS >>>>>
likedislike
CANN-robotCANN-robot成员
6月12日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
6月12日 添加了label:ci-pipeline-failed
raoliang_sac成员
6月13日 评论:

compile

likedislike
Rraoliang_sac成员
6月13日 update merge request[project id: 7665709, iid: 5771, commit_id: 8afd00dff0cf0381408f724c60685679b1ba0c9b] virtual merging success
raoliang_sac成员
6月13日 评论:

compile

likedislike
Rraoliang_sac成员
6月13日 update merge request[project id: 7665709, iid: 5771, commit_id: 707e1a12efc96e2d072785bcc5ee2424bcce0d62] virtual merging success
CANN-robotCANN-robot成员
6月13日 删除了label:ci-pipeline-failed
CANN-robotCANN-robot成员
6月13日 添加了label:ci-pipeline-running
CANN-robotCANN-robot成员
6月13日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
6月13日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
6月13日 评论:

流水线任务触发成功
任务链接 [18f550c985e44485b42d2a8c1b4193c2][流水线指导]

任务名称状态日志下载链接
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
codecheck_style ✅ SUCCESS >>>>>
codecheck_precommit ⚠️ WARNING >>>>> >>>>>

[2026-06-13 09:36:51]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
6月13日 评论:

流水线任务触发成功
任务链接 [97287eef767c461cb0512651d74cca0c][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_experimental ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_950 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_950 ✅ SUCCESS >>>>> >>>>>
Compile_Pre ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_950_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_experimental_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_950_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_950 ✅ SUCCESS >>>>> >>>>>

[2026-06-13 09:37:13]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
6月13日 评论:

流水线任务触发成功
任务链接 [a7633a63247040e3b82280dc0528e269][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_mobile_station ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_experimental ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_950 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_950 ✅ SUCCESS >>>>> >>>>>
Compile_Pre ✅ SUCCESS >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_mobile_station_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_950_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_experimental_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_950_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_910b ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_910c ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_950 ✅ SUCCESS >>>>> >>>>>
Compile_classify ✅ SUCCESS >>>>>
UT_Test_ophost ✅ SUCCESS
UT_Test_opapi ✅ SUCCESS
UT_Test_kernel ✅ SUCCESS
UT_Test_opgraph ✅ SUCCESS
PreSmoke_A900 ✅ SUCCESS >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_ATK_Test_A2 ✅ SUCCESS >>>>>
UT_Test_report_lcov ✅ SUCCESS >>>>>

[2026-06-13 09:51:48]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
6月13日 评论:

流水线任务触发成功
任务链接 [c0930df43856409c903c39061bc7b3f6][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_checkpr ✅ SUCCESS
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
codecheck_style ✅ SUCCESS >>>>>
codecheck_precommit ⚠️ WARNING >>>>> >>>>>
SCA ✅ SUCCESS >>>>>

[2026-06-13 09:46:25]    CI执行结束

likedislike
CANN-robotCANN-robot成员
6月13日 添加了label:api-check-pass
CANN-robotCANN-robot成员
6月13日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
6月13日 添加了label:ci-pipeline-passed
wang-xing001成员
6月13日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
6月13日 添加了label:approved
yangyang016成员
6月13日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
6月13日 添加了label:lgtm
CANN-robotCANN-robot成员
6月13日 关闭了关联的issue
CANN-robotCANN-robot成员
6月13日 合入了pull request