已合并
修复aclnn代码生成接口的日志打印问题 #4122
修复aclnn代码生成接口的日志打印问题 #4122
已合并
TvT989创建于 7月7日
TvT989
TvT989
7月7日

描述

关联的Issue

测试

文档更新

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 TvT989 的贡献)
TvT989TvT989
7月7日 创建了 pull request,commit 944cc137
atomgit-bot
atomgit-bot
7月7日 评论:

变更摘要

此 PR 主要修复 aclnn 代码生成接口中与日志/错误报告相关的若干问题。核心改动包括:在 workspace 大小不足时引入结构化的错误报告机制(REPORT_PREDEFINED_ERR_MSG + NNOPBASE_INVALID_ARGUMENT),通过 needInvalidArgumentReport 参数有条件地启用无效参数报告的基础设施(宏定义和头文件引入),将 CheckAutoContiguousWarning 调用从 ValidateInputContiguousConflict 移至 GenerateCode 以避免重复检查,以及修正 ACLNN_OPTIONAL_PARAM_CHECK 环境变量的校验范围。此外还包含大量代码缩进与格式对齐的统一调整。

主要改动

  • Workspace 不足时的结构化错误报告:在 AclnnOpGenCodeRunUnContWithWorkspaceImpl 的 genContiguousCode lambda 中,将原来简单的 NnopbaseOpLogE 日志调用替换为 REPORT_PREDEFINED_ERR_MSG(NNOPBASE_INVALID_ARGUMENT, ...),输出包含 workspaceSize、requiredSize 和 reason 的详细错误信息,便于问题定位。

  • 有条件引入无效参数报告基础设施:AclnnGenCodeDecImpl、AclnnGenCheckInfo、AclnnGenCodeCommFunDelcare 三个函数新增 needInvalidArgumentReport 参数。当该参数为 true 时,AclnnGenCodeCommFunDelcare 会追加 #define NNOPBASE_INVALID_ARGUMENT "EZ1010" 宏,AclnnGenCodeDecImpl 会引入 <string>、<vector> 和 "base/err_msg.h" 头文件。AclnnGenCodeImplStart 中通过 AnalyzeSocAutoContiguousSupport 的结果决定该参数值。

  • CheckAutoContiguousWarning 调用位置调整:将该方法的调用从 ValidateInputContiguousConflict 内部移除,改为在 GenerateCode 主流程中直接调用。这避免了每次校验输入连续性冲突时都触发 AutoContiguous 警告检查,仅在实际生成代码阶段执行一次。

  • ACLNN_OPTIONAL_PARAM_CHECK 校验修复:引入常量 MAX_PARAM_CHECK_ENUM_NUM = 4UL,将校验条件从错误的 parsedVal > UINT32_MAX(该条件永远不成立)修正为 parsedVal >= MAX_PARAM_CHECK_ENUM_NUM,日志提示也相应更新为 "expected integer between [0, 3]"。

likedislike
不准确?
atomgit-bot
atomgit-bot
7月7日 评论:

代码审查

审查总结

本次审查覆盖了全部 5 个变更文件:

文件 审查结果
tests/tools/utils/opbuild/aclnn_auto_contiguous_test.cpp.txt 无问题(错误信息中的 "AutoContiguous API" 与该文件匹配)
tests/tools/utils/opbuild/aclnn_ref_contiguous_test.cpp.txt P3: 错误信息中 API 名称复制粘贴错误
tests/tools/utils/opbuild/aclnn_rms_norm_grad_test.cpp.txt P3: 错误信息中 API 名称复制粘贴错误
tests/tools/utils/opbuild/aclnn_soc_version_dynamic_ignore_cont_test.cpp.txt P3: 错误信息中 API 名称复制粘贴错误
tests/tools/utils/opbuild/aclnn_soc_version_test1.cpp.txt P3: 错误信息中 API 名称复制粘贴错误

统计

  • P0: 0
  • P1: 0
  • P2: 0
  • P3: 1(同一问题的 4 个文件实例,合并为一个 finding)

总体风险判断

低风险。本次变更将旧的简单日志调用 NnopbaseOpLogE 替换为更详细的 REPORT_PREDEFINED_ERR_MSG 错误上报机制,这是对日志质量的改进。核心逻辑(条件判断、错误返回码)未发生变化,不存在正确性、安全性或可靠性风险。

唯一发现的问题是错误信息中的 API 名称存在复制粘贴错误:在 4 个非 AutoContiguous 测试文件中,reason 字符串均引用了 "AutoContiguous API",与各自函数的实际 API 名称不一致,可能对排查问题的用户造成困惑。由于全部变更位于测试类文件(.cpp.txt),对生产环境无直接影响。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
不准确?
CANN-robotCANN-robot成员
7月7日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月7日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
** ✅ gcw_kUomxQ2l, wulinyu, sjtulxh (3/2) ✅ gcw_kUomxQ2l (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

weixin_62388497, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
7月7日 将zengjuan,zhanghao_0689,wulinyu,kong0808,dengjing_aoe,YeZZzzz1,bluesky901,yangbinhua,zhudi22,chenyiyuan,xun_zhuge,bianque,houyuyang,shi_nanxiang,wuyang_hw,jiangxinyu3,munanhw,ai_xin,ascendhjh,DragonBornHD84,hyolee,gcw_kUomxQ2l,Andy-lb设为评审人
CANN-robotCANN-robot成员
7月7日 将munanhw,ai_xin,gcw_kUomxQ2l,Andy-lb设为审查人
TvT989
TvT989
7月7日 评论:

compile

likedislike
TvT989TvT989
7月7日 预合并成功(commit_id: 9c3fd8eeeb1d28a26f9781b65474ec27ea4e003f)
TvT989
TvT989
7月7日 评论:

/check-pr

likedislike
CANN-robot
CANN-robot成员
7月7日 评论:

The following labels are not ready.

lgtm: Please wait for reviewers to review the code.

approved: Please wait for committers to review the code.

ci-pipeline-passed: Please wait for the CI test to be completed.

likedislike
CANN-robotCANN-robot成员
7月7日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月7日 评论:

流水线任务触发成功
任务链接 [6fba9012c7974827930935b761c9df43][流水线指导]

任务名称状态日志下载链接
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck ✅ SUCCESS >>>>>
codecheck_Pr ✅ SUCCESS
pre_comment ✅ SUCCESS >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
codecheck_codestyle ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>> >>>>>

[2026-07-07 18:01:46]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月7日 评论:

流水线任务触发成功
任务链接 [e87410a7e8ce49cfb7b35a8e48946207][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-07-07 18:01:27]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月7日 评论:

流水线任务触发成功
任务链接 [4725c3b22d564482bea3d2f45c38fcd8][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
UT_Test_adv_test_one ✅ SUCCESS
UT_Test_adv_test_two ✅ SUCCESS
UT_Test_basic_test_two ✅ SUCCESS
UT_Test_basic_test_three ✅ SUCCESS
UT_Test_basic_test_four ✅ SUCCESS
UT_Test_basic_test_five ✅ SUCCESS
UT_Test_arm ✅ SUCCESS
UT_Test_report ❌ FAILED >>>>>
likedislike
gao_dafa成员
7月7日 评论:

weixin_62388497,感谢您的提交,建议在完成PR充分自验证后,再触发线上构建任务。

若您的PR已具备检视条件,可根据下表的责任田,@对应的committer进行代码检视,我们会在第一时间对您的提交进行处理。

代码责任田:

module committer
adv_api chenyiyuan, wuyang_hw
basic_api chenyiyuan, wuyang_hw
c_api pangfd, yue_mo_du_qian
cmake xun_zhuge, DragonBornHD84
docs munanhw, ai_xin
examples changxianyu, bianque
simt_api wulinyu, zhanghao_0689
scripts xun_zhuge, kevin365
tools YANXI_ZHAO, XuebinYang, sjtulxh

💡 如您不确定可以@谁,可以直接@我或者ascend-c sig的maintainer,xun_zhuge和ascendhjh,我们会为您分配合适的committer进行代码检视。

再次感谢您参与CANN的社区贡献。

likedislike
CANN-robotCANN-robot成员
7月7日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月7日 添加了label:ci-pipeline-failed
TvT989TvT989
7月7日 预合并成功(commit_id: a49903afb5b1d237de972c224dccc45c3d1ed0f2)
TvT989TvT989
7月7日 推送  1 个提交:725b75c8-添加ut测试用例,提升ut覆盖率
TvT989TvT989
7月7日 预合并成功(commit_id: dbc66faafedc03955054ffc3abfaed7500ce36e4)
CANN-robotCANN-robot成员
7月7日 添加了label:stat/needs-squash
TvT989
TvT989
7月7日 评论:

compile

likedislike
TvT989TvT989
7月7日 预合并成功(commit_id: 30d80aa5bf84f79ae6bfa998f5037e7b1690a717)
CANN-robotCANN-robot成员
7月7日 删除了label:ci-pipeline-failed
CANN-robotCANN-robot成员
7月7日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月7日 评论:

流水线任务触发成功
任务链接 [a4a226e1156641a684a415f3478d6c63][流水线指导]

任务名称状态日志下载链接
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck ✅ SUCCESS >>>>>
codecheck_Pr ✅ SUCCESS
pre_comment ✅ SUCCESS >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
codecheck_codestyle ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>> >>>>>

[2026-07-07 21:07:40]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月7日 评论:

流水线任务触发成功
任务链接 [709bb24f298d4528b36f22e680e2ab3d][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
UT_Test_adv_test_one ✅ SUCCESS
UT_Test_adv_test_two ✅ SUCCESS
UT_Test_basic_test_two ✅ SUCCESS
UT_Test_basic_test_three ✅ SUCCESS
UT_Test_basic_test_four ✅ SUCCESS
UT_Test_basic_test_five ✅ SUCCESS
UT_Test_arm ✅ SUCCESS
UT_Test_report ✅ SUCCESS >>>>>

[2026-07-07 21:15:26]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月7日 评论:

流水线任务触发成功
任务链接 [4c5a822d140e4f299c34e6940053da1a][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-07-07 21:07:46]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月7日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月7日 添加了label:ci-pipeline-passed
TvT989
TvT989
7月7日 评论:

/check-pr

likedislike
CANN-robot
CANN-robot成员
7月7日 评论:

The following labels are not ready.

lgtm: Please wait for reviewers to review the code.

approved: Please wait for committers to review the code.

likedislike
wulinyu成员
7月8日 评论:

/lgtm

likedislike
TvT989
TvT989
7月9日 评论:

/check-pr

likedislike
CANN-robot
CANN-robot成员
7月9日 评论:

The following labels are not ready.

lgtm: Please wait for reviewers to review the code.

approved: Please wait for committers to review the code.

likedislike
TvT989TvT989
7月9日 修改了pull request 的描述
sjtulxh成员
7月9日 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
7月9日 添加了label:lgtm
liulun0308成员
7月9日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月9日 添加了label:approved
CANN-robotCANN-robot成员
7月9日 合入了pull request