Closed
[Bug-Report|缺陷反馈]: circular_pad_grad aclnn golden 不支持 torch.Tensor 输入且非法输入导致流程中断 #4302
tan_xinAdd on  11 days agoClosed at  11 days ago
tan_xinCollaborators
11 days ago Create

一、问题描述 (必填)

conversion/circular_pad_grad/tests/assets/golden.py 中 aclnn 通路 golden 存在以下缺陷:

  1. 不支持 torch.Tensor 输入:aclnn 通路 CPU host 侧对 torch 原生 dtype(float32/float16)以 torch.Tensor 传入 golden,非原生 dtype(bfloat16)以 numpy 视图传入;但 golden 仅按 numpy.ndarray 处理,导致以 torch.Tensor 传入时 golden 计算失败。
  2. bfloat16 识别不准确:_aclnn_circular_pad_grad_golden 用 origin_dtype == "bfloat16" 精确匹配 dtype 名,对 torch dtype 字符串变体(含 "bfloat16" 子串的其他形式)不生效。
  3. 非法输入导致流程中断:expected_error 用例(如 padding 非法)下 golden 数学必然失败,直接抛出 GOLDEN_FAILURE 中断流程,无法让算子侧校验产生拒收证据。

二、环境信息 (可选)

  • 昇腾硬件型号:Ascend 950PR&950DT 系列、Atlas A3/A2 系列
  • CANN版本:社区版(ops-math 仓库)
  • 操作系统:Linux

三、重现步骤 (可选)

  1. 以 torch.Tensor 作为 gradOutput/self 输入调用 AclnnCircularPad2dBackwardSpec.golden / AclnnCircularPad3dBackwardSpec.golden。
  2. 构造 bfloat16 输入观察 dtype 分支是否命中。
  3. 构造非法 padding 输入触发 expected_error 用例,观察 golden 是否直接 GOLDEN_FAILURE。

四、预期结果 (可选)

  • torch.Tensor 输入与 numpy 输入均能正常计算 golden。
  • bfloat16 通过子串匹配正确识别并走降精度通路。
  • 非法输入(expected_error 用例)降级为与输出容器同 shape/dtype 的零参考,继续进入算子侧校验,由算子拒收产生证据。

💡 备注(选填)

关联 PR:https://gitcode.com/cann/ops-math/pull/6873

likedislike
Ttan_xinCollaborators
11 days ago Added label: bug-report
tan_xinCollaborators
11 days ago Comments:

/assign @tan_xin

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