Closed
[Documentation|文档反馈]: aclnnLog10 161002 错误码表缺「self 与 out 的 shape 不一致」子项 #4132
liuhanwen8Add on 14 days agoClosed at 3 days ago
14 days ago Added label: bug-report
xujiachen8
13 days ago Comments:
13 days ago Comments:
您好,感谢反馈!核对当前 master(b08e885e7fac),资料的 out 参数说明已要求 shape 与 self 一致,但 161002 错误码表的三条子项确实没有列出 shape 不一致,两个位置的说明不完整对应。
接口校验会调用 CheckSameShape1In1Out,先检查逐维 shape 是否相等,失败后返回 ACLNN_ERR_PARAM_INVALID。因此即使元素总数相同,例如 [4,2] 与 [2,4],也不满足这里的形状契约。
一个可行调整是在 161002 表中补充对应的 shape 不一致触发条件,并同步表格合并行数;这是补齐现有校验的说明,不需要新增校验逻辑。我们会持续跟踪这处错误码说明。


13 days ago Assign jiaoyiming as responsible person
13 days ago Added label: pending-confirmation
13 days ago Removed label: pending-confirmation
3 days ago Close issue
3 days ago changed custom state from 进行中 to 已完成
3 days ago Added label: resolved
一、文档链接
math/log/docs/aclnnLog10&aclnnInplaceLog10.md(aclnnLog10GetWorkspaceSize错误码表)math/log/op_api/aclnn_log10.cpp、common/inc/op_api/level2_base_math.h二、问题文档片段
原文(161002 错误码表,逐字复制):
现象
错误码表只声明 3 个子项,缺「
self与out的 shape 不一致」,而实现会因该情形返回 161002。调用方拿到 161002 后逐条对照三条子项都不匹配(dtype 合法、结果类型可转、rank≤8),
读不出「out 的 shape 必须与 self 一致」这层。
期望
161002 子项补一条「self 与 out 的 shape 不一致。」(
rowspan="3"改rowspan="4")。环境
opp/version.infoVersion=9.2.0)5eaca2328复现步骤
git clone https://gitcode.com/cann/ops-math,资料在math/log/docs/。repro_doc_err_table.py。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)实测输出(资料未修):
阴性对照:在 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 不一致。」。