Pull Request已成功合入, 合并人@CANN-robot
(感谢 TvT989 的贡献)变更摘要
此 PR 主要修复 aclnn 代码生成接口中与日志/错误报告相关的若干问题。核心改动包括:在 workspace 大小不足时引入结构化的错误报告机制(REPORT_PREDEFINED_ERR_MSG + NNOPBASE_INVALID_ARGUMENT),通过 needInvalidArgumentReport 参数有条件地启用无效参数报告的基础设施(宏定义和头文件引入),将 CheckAutoContiguousWarning 调用从 ValidateInputContiguousConflict 移至 GenerateCode 以避免重复检查,以及修正 ACLNN_OPTIONAL_PARAM_CHECK 环境变量的校验范围。此外还包含大量代码缩进与格式对齐的统一调整。
主要改动
-
Workspace 不足时的结构化错误报告:在
AclnnOpGenCodeRunUnContWithWorkspaceImpl的genContiguousCodelambda 中,将原来简单的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]"。


代码审查
审查总结
本次审查覆盖了全部 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),对生产环境无直接影响。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


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
/approveor/lgtm- Commenting
/approveimplies 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. 👍


compile


/check-pr


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.


流水线任务触发成功
任务链接 [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执行结束


流水线任务触发成功
任务链接 [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 | >>>>> |


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的社区贡献。


compile


流水线任务触发成功
任务链接 [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执行结束


流水线任务触发成功
任务链接 [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执行结束


/check-pr


The following labels are not ready.
lgtm: Please wait for reviewers to review the code.
approved: Please wait for committers to review the code.


/check-pr


The following labels are not ready.
lgtm: Please wait for reviewers to review the code.
approved: Please wait for committers to review the code.


/approve


描述
关联的Issue
测试
文档更新
类型标签