Closed
[Documentation|文档反馈]: aclnnLog10 161002 错误码表缺「self 与 out 的 shape 不一致」子项 #4132
liuhanwen8Add on  14 days agoClosed at  3 days ago
liuhanwen8
liuhanwen8
14 days ago Create

一、文档链接

  • 接口资料:math/log/docs/aclnnLog10&aclnnInplaceLog10.md(aclnnLog10GetWorkspaceSize 错误码表)
  • 实现:math/log/op_api/aclnn_log10.cpp、common/inc/op_api/level2_base_math.h

二、问题文档片段

原文(161002 错误码表,逐字复制):

    <tr>
      <td rowspan="3">ACLNN_ERR_PARAM_INVALID</td>
      <td rowspan="3">161002</td>
      <td>self和out的数据类型和数据格式不在支持的范围之内。</td>
    </tr>
    <tr>
      <td>计算结果的数据类型无法转换为指定输出out的类型。</td>
    </tr>
    <tr>
      <td>self和out的维度大于8。</td>
    </tr>

现象

错误码表只声明 3 个子项,缺「self 与 out 的 shape 不一致」,而实现会因该情形返回 161002。
调用方拿到 161002 后逐条对照三条子项都不匹配(dtype 合法、结果类型可转、rank≤8),
读不出「out 的 shape 必须与 self 一致」这层。

期望

161002 子项补一条「self 与 out 的 shape 不一致。」(rowspan="3" 改 rowspan="4")。

环境

  • 硬件:Ascend 910B2
  • CANN:9.2.0(opp/version.info Version=9.2.0)
  • 仓库:cann/ops-math,master 最新提交 5eaca2328
  • 复现日期:2026-10-27

复现步骤

  1. 取下接口资料:git clone https://gitcode.com/cann/ops-math ,资料在 math/log/docs/。
  2. 把下面的脚本存为 repro_doc_err_table.py。
  3. 运行 python3 repro_doc_err_table.py,期望退出码 1 且打印 [DEFECT] ...shape 不一致...。

复现脚本

#!/usr/bin/env python3
"""文本断言:161002 错误码表必须声明「self 与 out 的 shape 不一致」。"""
import os, re, sys
DOC = os.environ.get("LOG10_DOC") or "aclnnLog10&aclnnInplaceLog10.md"
NEEDLES = ("shape不一致", "形状不一致", "shape不同", "形状不同", "shape必须一致")
def find_doc():
    for base in (".", "math/log/docs", "docs"):
        p = os.path.join(base, DOC)
        if os.path.isfile(p):
            return p
    return ""
path = find_doc()
if not path:
    print("[SKIP] 找不到资料,用 LOG10_DOC 指定"); sys.exit(2)
flat = re.sub(r"\s+", "", open(path, encoding="utf-8").read())
if "161002" not in flat:
    print("[SKIP] 资料无 161002 错误码表"); sys.exit(2)
hit = [n for n in NEEDLES if n in flat]
if hit:
    print("[OK] 161002 已声明 shape 不一致(命中 %s)" % hit); sys.exit(0)
print("[DEFECT] 161002 错误码表未声明「self 与 out 的 shape 不一致」子项"); sys.exit(1)

实测输出(资料未修):

[DEFECT] 161002 错误码表未声明「self 与 out 的 shape 不一致」子项

阴性对照:在 161002 表里补一行「self与out的shape不一致。」后重跑,输出
[OK] 161002 已声明 shape 不一致(命中 ['shape不一致']),退出码 0。

上板确认实现行为(910B2 + CANN 9.2.0):self=fp32[4x2]、out=fp32[2x4](numel 相同、
shape 不同)→ ret1=161002,第一段即拒绝。

影响

调用方无法按错误码表定位「out shape 必须与 self 一致」,只能停在「输入参数非法」;
与同页「使用说明」里已写的「数据 shape 与 self 一致」两处口径不一致。

建议

在 161002 的 rowspan 子项中补「self 与 out 的 shape 不一致。」。

likedislike
liuhanwen8liuhanwen8
14 days ago Added label: bug-report
xujiachen8Collaborators
13 days ago Comments:

您好,感谢反馈!核对当前 master(b08e885e7fac),资料的 out 参数说明已要求 shape 与 self 一致,但 161002 错误码表的三条子项确实没有列出 shape 不一致,两个位置的说明不完整对应。

接口校验会调用 CheckSameShape1In1Out,先检查逐维 shape 是否相等,失败后返回 ACLNN_ERR_PARAM_INVALID。因此即使元素总数相同,例如 [4,2] 与 [2,4],也不满足这里的形状契约。

一个可行调整是在 161002 表中补充对应的 shape 不一致触发条件,并同步表格合并行数;这是补齐现有校验的说明,不需要新增校验逻辑。我们会持续跟踪这处错误码说明。

likedislike
Xxujiachen8Collaborators
13 days ago Assign jiaoyiming as responsible person
Xxujiachen8Collaborators
13 days ago Added label: pending-confirmation
陈思陈思Collaborators
13 days ago Removed label: pending-confirmation
CANN-robotCANN-robotCollaborators
3 days ago Close issue
CANN-robotCANN-robotCollaborators
3 days ago changed custom state from 进行中 to 已完成
CANN-robotCANN-robotCollaborators
3 days ago Added label: resolved