Closed
[Documentation|文档反馈]: aclnnInplaceLog10 示例 test_aclnn_inplace_log10.cpp 输出标签写成 acos,与所调接口 log10 不符 #4105
liuhanwen8Add on  14 days agoClosed at  3 days ago
liuhanwen8
liuhanwen8
14 days ago Create

一、文档链接 (必填)

二、问题文档片段 (必填)

原文(test_aclnn_inplace_log10.cpp:133-135,逐字复制):

    for (int64_t i = 0; i < size; i++) {
        LOG_PRINT("%ld acos(%f) = %f\n", i, selfHostData[i], resultData[i]);
    }

💡 存在的问题

该示例调用的是 aclnnInplaceLog10,计算结果确实是以 10 为底的对数,但打印标签写成了 acos。按仓库 examples 的方式构建并运行后,实际输出为:

test aclnnInplaceLog10
0 acos(1.000000) = 0.000000
1 acos(2.000000) = 0.301030
...
7 acos(8.000000) = 0.903090

数值(log10)正确、标签(acos)错误。同目录其它示例(test_aclnn_log.cpp / test_aclnn_log2.cpp / test_aclnn_log10.cpp)打印的都是各自算子名,只有本文件沿用了 acos 示例的标签。

影响:照抄示例做验证或写自动化脚本的人会按 acos(x) 解读输出;日志排查时也会误判成调用了 acos。

修复建议:把 LOG_PRINT("%ld acos(%f) = %f\n", ...) 改成 LOG_PRINT("%ld log10(%f) = %f\n", ...)。

三、复现(可执行)

在仓根目录执行以下脚本(纯文本断言,无 NPU 也能跑):

python3 - <<'PY'
import pathlib, sys
p = pathlib.Path("math/log/examples/test_aclnn_inplace_log10.cpp")
src = p.read_text(encoding="utf-8")
bad = [i + 1 for i, l in enumerate(src.splitlines()) if "acos(" in l]
if bad:
    print("[DEFECT] test_aclnn_inplace_log10.cpp:%d 仍以 acos 作为标签: %s"
          % (bad[0], src.splitlines()[bad[0] - 1].strip()))
    sys.exit(1)
print("[OK] no acos label")
PY

实测:rc=1,输出

[DEFECT] test_aclnn_inplace_log10.cpp:134 仍以 acos 作为标签: LOG_PRINT("%ld acos(%f) = %f\n", i, selfHostData[i], resultData[i]);

上板复核实跑(可选):按 examples 的编译方式构建后运行,输出即上文 test aclnnInplaceLog10 那段。

四、环境

  • 仓:cann/ops-math master cb6b7761(2026-10-26),缺陷仍在
  • 硬件:Atlas A2 训练服务器(Ascend910B2 ×8)
  • 软件:CANN 9.2.0,g++ 11.4.0 aarch64
likedislike
liuhanwen8liuhanwen8
14 days ago Added label: documentation
xujiachen8Collaborators
13 days ago Comments:

您好,感谢反馈!核对 cann/ops-math@b08e885e7fac370203a51904fd0680523b9a9205 后,确认这是示例日志标签的笔误。独立示例 两段调用分别是 aclnnInplaceLog10GetWorkspaceSize 和 aclnnInplaceLog10,结果也从原地输入缓冲回读,但打印文字仍写成了 acos。

接口实现 中原地入口复用 Log10 流程,并以 LOG_BASE=10 调用 l0op::Log;错误的打印文字不会把调用切换成 Acos。您报告的数值正确、日志名称错误,与这处源码不一致相符。

一个直接的调整方向是将该行标签改为 log10,保持原地调用和结果回读不变;同版本接口资料中的原地示例 已使用 log10,可以据此统一两处示例。

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