Closed
[Bug-Report|缺陷反馈]: AccumulateNV2 算子多项 P1 缺陷:dtype 一致性校验缺失、fp32 极值 NaN、N 参数未校验、broadcast 死代码 #3870
wangweidongAdd on  17 days agoClosed at  15 days ago
wangweidong
17 days ago Create

一、问题描述 (必填)

AccumulateNV2 算子验证整改中发现多项 P1 功能缺陷:

  1. dtype 一致性校验缺失:图路径、aclnn 第一段校验、tiling 三层均未校验输入 dtype 与首个输入/输出 dtype 的一致性,混合 dtype 输入不报 161002(ACLNN_ERR_PARAM_INVALID),直接产生错误结果。
  2. fp32 极值求和 NaN:守卫式 TwoSum 实现在极值输入场景下输出 NaN,与竞品 TensorFlow AddN 行为不一致。
  3. N 参数校验缺失:Host 侧未校验属性 N 与实际输入 tensor 数量的一致性,不匹配时行为未定义。
  4. broadcast 死代码与能力越界:TilingData 中 needBroadcast/rank/outputShape/inputStrides 为死字段(2632B 中有效仅 32B),kernel 内 GetBroadcastInputOffset 及全部广播分支不可达;对外宣称与实际行为不一致。

二、环境信息 (可选)

  • 昇腾硬件型号:Ascend950PR(arch35)
  • CANN 版本:9.3.0

三、重现步骤 (可选)

  1. 构造混合 dtype 输入 tensor list(如 fp32 + fp16)
  2. 分别以 aclnnSum / 图模式直连调用
  3. 缺陷版本不报 161002,输出错误数值
  4. fp32 路径构造极值输入,可观察 NaN 输出

四、预期结果 (可选)

  1. 混合 dtype 在图路径/aclnn 第一段/tiling 三层均拦截并返回 161002
  2. fp32 求和与 TF AddN 同构:N≤9 顺序求和、N>9 余数优先 8 分块,极值不产生 NaN
  3. attrN 与输入数量不一致时 Host 侧报参数错误
  4. 算子本体同 shape 强校验;广播语义由 aclnnSum 接口层 BroadcastTo 承接;TilingData 死字段清除(2632B→32B)

💡 备注(选填)

修复 PR(含 fp16 非广播路径 Vector 管线性能优化、golden 精度标准落位、文档修正):https://gitcode.com/cann/ops-math/pull/6584

likedislike
Wwangweidong
17 days ago Added label: bug-report
wangweidong
17 days ago Comments:

/assign @gcw_YBIAEfqJ

likedislike
CANN-robotCANN-robotCollaborators
17 days ago Assign gcw_YBIAEfqJ as responsible person
CANN-robotCANN-robotCollaborators
15 days ago Close issue
CANN-robotCANN-robotCollaborators
15 days ago Added label: resolved