Closed
[Bug-Report|缺陷反馈]: SquareSumAll 小归约及长归约丢失舍入残差 #4423
raoliang_sacAdd on  7 days agoClosed at  7 days ago
raoliang_sacCollaborators
7 days ago Create

一、问题描述(必填)

Ascend 950 SquareSumAll 当前主线在两例原输入回放中未满足既定 cross_check L1。71 元素用例第二路 NPU 输出 27214880,A100 为 27214882,FP64 golden 为 27214881.318424225,RMSE 比为 1.9344;240669576 元素用例第二路 NPU 为 8022.78515625,A100 为 8022.78564453125,FP64 golden 为 8022.78545649552,RMSE 比为 1.5967。

真实 NPU 中间值确认:小归约在水平求和中丢失舍入残差;长归约的流式 FP32 FMA 累计在最终合并前已跨过正确舍入边界。已有末级补偿不足以覆盖这两个阶段。

二、环境信息(可选)

  • 官方 master 基线:c47568d3b5d22b1570bfbaad40dc63681ff5ca30。
  • Ascend950PR_9579;任务内独立 CANN Master/Revise,Toolkit+ops 9.3.0 weekly20260923。
  • TTK e3fb50a977f89da24084e344c073d34834e659e3,显式 --pc=1。
  • NVIDIA A100-PCIE-40GB,PyTorch 2.14.1+cu130;精度参考为原 FP32 torch.dot,golden 为 FP64 square+sum。

三、重现步骤(可选)

用例 SquareSumAll_L1_accuracy_perf_d_b_262:两个 FP32 ND 输入 shape=(71,),范围分别为 [1,2]、[-1000,-10]。
用例 SquareSumAll_L1_accuracy_perf_d_b_019:两个 FP32 ND 输入 shape=(3,3,7,7,2,2,3,45478),第一路为最小正次正规常量,第二路范围 [-0.01,0.01]。使用历史已冻结实际输入与对应 A100/FP64 参考,最新主线发布 binary 两例均稳定失败。

四、预期结果(可选)

保持原 L1(mare≤5、mere≤1.5、rmse≤1.5),不得修改 golden、GPU 标杆或放宽容差消除失败。修复版本通过 61/61 固定输入、122/122 输出,并保留特殊值语义;性能按本次同带宽折算 0.1 下限验收。

关联 PR:https://gitcode.com/cann/ops-math/merge_requests/7040

验证补充:固定输入 61/61 加精简 ST 19/19,全部 80/80 数值用例、160/160 输出通过原 L1。最终提交 fc9c6e6e54bc4a7c15cc4c0e5dfce52523b6e726,指定入口双平台本地 CI PASS;线上 CI 已启动,平台完成结果尚未确认。

likedislike
Rraoliang_sacCollaborators
7 days ago Added label: bug-report
Rraoliang_sacCollaborators
7 days ago Modify description of issue
陈思
陈思Collaborators
7 days ago Comments:

/assign @raoliang_sac

likedislike
CANN-robotCANN-robotCollaborators
7 days ago Assign raoliang_sac as responsible person
CANN-robotCANN-robotCollaborators
7 days ago Close issue
CANN-robotCANN-robotCollaborators
7 days ago Added label: resolved