已关闭
[Requirement|需求建议]: 补充 RmsNormGradQuant 独立 CPU TestSpec golden #7020
raoliang_sac创建于  10 天前关闭于  10 天前
raoliang_sac成员
10 天前 创建

Backgroud(背景信息)

RmsNormGradQuant 算子目录尚无可供当前 TTK 直接加载的 TestSpec golden。已有 ACLNN/GEIR 参考脚本依赖 NPU 执行反向与量化,需要补充独立 CPU 参考实现,避免精度验证依赖被测设备算子。

Origin(信息来源)

算子 golden 资产补齐需求;用户提供了原 ACLNN/GEIR 参考脚本,并要求适配当前 TTK 格式及进行 Ascend 950 验证。

Benefit / Necessity (价值/作用)

提供统一的 kernel/GEIR/ACLNN 精度参考入口。明确前向 rstd 输入关联、量化类型、可选 offset、非连续布局及空张量边界,便于后续回归与 debug。

Design(设计方案)

仅在算子目录新增 tests/assets/golden.py:

  • 使用 __spec__ 注册 RmsNormGradQuantTestSpec 和 AclnnRmsNormGradQuantTestSpec。
  • 使用 NumPy/Torch CPU 与 float64 计算 RMSNorm 反向,再完成 INT8/HIFLOAT8 static 量化;不调用 torch_npu 或 NPU 算子。
  • 通过 customize_inputs 构造与 x 关联的 rstd,保留有效 scale、offset 和张量布局。
  • 遵循目标融合算子当前的空 batch dgamma=QuietNaN 行为,ACLNN 空 gamma 使用提前返回语义;不将 kernel 不支持的空 gamma 作为正常用例。
  • 使用独立 autograd 校验与单进程 TTK Ascend 950 上板对照,测试及框架适配不加入本次 ops-nn 单文件变更。

关联 PR:https://gitcode.com/cann/ops-nn/merge_requests/12448

likedislike
Rraoliang_sac成员
10 天前 添加了label:requirement
yuning_chenyuning_chen成员
10 天前 将 raoliang_sac 设为负责人
CANN-robotCANN-robot成员
10 天前 关闭了 issue
HuangRZzzz
HuangRZzzz成员
10 天前 评论:

(基于 master @d3ed2375 核对)

需求已闭环:独立 CPU golden 已随 !12448 合入(merged,2026-10-21 11:33),master 上路径为 norm/rms_norm_grad_quant/tests/assets/golden.py。该 PR 仅含这一个文件(新增 195 行),master 文件与合入版本字节一致(git blob 1ff1444)。逐条对照正文设计:

  1. __spec__ 注册:golden.py:21-24 同时注册 RmsNormGradQuantTestSpec(:126-135)与 AclnnRmsNormGradQuantTestSpec(:192-195),kernel/GEIR 共用 NumPy 参考,ACLNN 兼容 Torch 输入(:138-172)。
  2. 独立 CPU 参考:仅依赖 numpy/torch(:18-19),float64 计算 RMSNorm 反向后再做 INT8/HIFLOAT8 静态量化(:33-42、:45-100),无 torch_npu、无 NPU 算子调用。
  3. customize_inputs:以 epsilon=1e-5 用 x 反推 rstd 并原地写回,同时只修复随机生成的零 scale(:103-123)。
  4. 空张量语义:非空 batch 且空 gamma 时 dgamma 输出 QuietNaN(:68-75);空 gamma 走 ACLNN 提前返回在实现侧确认(aclnn_rms_norm_grad_quant.cpp:79-88)。
  5. 单文件边界:仓库侧确实只有该文件,算子目录下无 tests/st CSV 或 adapter;上板对照在仓外完成,静态不可复核。

差异项:无。若后续希望精度回归在仓内固化(如补 tests/st 资产),建议另开需求。

likedislike
CANN-robotCANN-robot成员
10 天前 添加了label:resolved