已关闭
[Bug-Report|缺陷反馈]: AccumulateNV2 Arch35 广播、空Tensor、尾块及累加精度问题 #3014
m0_73979701创建于  13 天前关闭于  13 天前
m0_73979701
m0_73979701
13 天前 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

AccumulateNV2 在 Arch35(Ascend950)通路的动态输入和边界场景存在以下问题:

  1. TilingKey 中编码了由 DEF 输入类型约束已经覆盖的 dtype 信息,导致 TilingKey 存在冗余编码;
  2. 广播场景的输出 Shape 和输入广播 Stride 推导不完整,动态输入或不同 Rank 时可能生成错误的访问参数;
  3. 空 Tensor / 空广播场景存在非法路径,零维计算可能触发 0 % 0,并可能继续访问无效数据;
  4. 非 32 字节对齐的尾块访问存在越界风险;
  5. FP16 多输入累加直接使用低精度累加,FP32 多输入累加在边界场景存在舍入误差,可能造成精度不稳定。

Environment / 环境信息 (Mandatory / 必填)

  • 昇腾硬件型号:Ascend950(Arch35)
  • CANN 版本:9.2.0
  • 算子:AccumulateNV2
  • 调用通路:ACLNN、GEIR

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

使用 AccumulateNV2 的动态输入测试用例执行,覆盖以下场景即可复现:

  • 多输入广播、不同 Rank 广播;
  • 空 Tensor 或空广播;
  • 输出元素个数不是 32 字节对齐的尾块;
  • FP16/FP32 多输入累加;
  • ACLNN 场景不下发 N 属性。

可使用对应算子的 ACLNN/GEIR 测试用例和 Arch35 AscendC 构建通路执行验证。

Describe the expected behavior / 预期结果 (Mandatory / 必填)

  1. TilingKey 不包含 DEF 已能确定的冗余 dtype 编码;
  2. 动态输入广播 Shape、Stride 和输入数量推导正确;
  3. 空 Tensor 场景安全返回空输出,不发生非法访问或异常;
  4. 尾块访问不越界;
  5. ACLNN、GEIR 输出满足精度标准并正常执行。

暂无单一固定日志;问题由广播、空 Tensor、尾块和多输入累加用例触发。相关测试结果和构建日志可在修复 PR 中补充。

Special notes for this issue/备注 (Optional / 选填)

该问题对应 AccumulateNV2 Arch35 通路整改,涉及 TilingKey、InferShape、Tiling、Kernel 及相关 UT。

关联修复 PR:!5310 fix(AccumulateNV2): 修复Arch35广播、精度及空张量异常

likedislike
m0_73979701m0_73979701
13 天前 修改了issue 的描述
CANN-robotCANN-robot成员
13 天前 关闭了 issue
CANN-robotCANN-robot成员
13 天前 添加了label:resolved