已合并
FE Log Rectification #4643
李颜戎创建于 8月31日
FE Log Rectification #4643
已合并
李颜戎创建于 8月31日
李颜戎
李颜戎
8月31日

Pull Request

描述

EcoC15版本日志易用性整改(FE责任田)

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

描述测试此变更的步骤和前提条件:

  1. ut st通过

核对清单

其他信息

在此添加任何其他关于本次 PR 的说明。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 李颜戎 的贡献)
李颜戎李颜戎
8月31日 添加了label:enhancement
李颜戎李颜戎
8月31日 创建了 pull request,commit 4f7f428c
atomgit-bot
atomgit-bot
8月31日 评论:

变更摘要

该 PR 是一次以日志与提示信息质量改进为主的变更,同时伴随若干错误分支的测试补充与开发辅助配置调整。核心内容覆盖 compiler/engines/ffts_engine、compiler/engines/nn_engine、compiler/opcompiler、graph_metadef、runtime/v2 等模块:一是大规模修正日志/报错文本的语法、拼写与表述歧义,并为多处日志补充 bytes、MB 等计量单位及参数合法取值范围,使诊断信息更准确;二是将部分非致命失败场景的日志级别从 FFTS_LOGI/GELOGI 提升为 FFTS_LOGW/GELOGW(如 ffts_configuration.cc、fftsplus_ops_kernel_builder.cc、dsa_core_launch_kernel.cc),并在 python_api_call.cc 中将 Python 调用失败日志从 TE_INFOLOGF 提升为 TE_ERRLOGF;三是为 tbe_single_op_info_assembler.cc、te_cache_space_manager.cc、fusion_binary_info.cc、generate_simple_key.cc、tbe_op_store_adapter.cc 等处的错误信息补充动态输入输出索引规模、simpleKeyMode 枚举取值、缓存配置参数合法范围等细节。此外,新增大量 ST/UT 测试用例覆盖 tiling offset 溢出、输入输出数量超限、空 kernel 等异常分支,并添加 scripts/init_project.py 工程脚手架脚本与 .opencode/opencode.json 的 compaction 配置。

主要改动

  • 日志文本与计量单位规范化:在 fftsplus_task_builder.cc、fusion_rule_node_constructor.cc、graph_fusion.cc、l2_optimizer.cc、fe_gentask_utils.cc、binary_manager.cc、plugin_manager.cc 等大量文件中修正日志与 REPORT_*_ERROR 文案的语法错误和表述歧义,并为多处大小日志补充 bytes/MB 等单位,如 tbe_json_parse_impl.cc 的 "File size %ld bytes"、aicore_ops_kernel_builder.cc 的 workspace 大小、rt_ffts_plus_launch_args.cc 的溢出上限提示。

  • 日志级别调整与错误提示增强:将 ffts_configuration.cc、fftsplus_ops_kernel_builder.cc、fftsplus_task_builder.cc 中加载失败/优化失败场景由 FFTS_LOGI 提升为 FFTS_LOGW,将 dsa_core_launch_kernel.cc 由 GELOGI 提升为 GELOGW;同时为 tbe_single_op_info_assembler.cc 的动态输入输出索引不匹配报错补充 start/end size 数值,为 binary_manager.cc/fusion_binary_info.cc/generate_simple_key.cc 补充 simpleKeyMode 合法取值说明。

  • 配置参数校验提示完善:te_cache_space_manager.cc 对 ASCEND_MAX_OP_CACHE_SIZE、ASCEND_REMAIN_CACHE_SIZE_RATIO 等无效配置的告警补充了合法范围(如 -1 或 [1, INT_MAX)、[0, 100]);tbe_op_store_adapter.cc 为非法 range_limit_type 报错列出 DEFAULT/LIMITED/UNLIMITED/DYNAMIC 有效枚举。

  • 异常分支测试补充:在 tests/ge 与 tests/engines/nn_engine 的 ST/UT 中新增大量用例,覆盖 RtFFTSKernelLaunchArgs::RedirectTilingAddr 的 tiling offset 溢出、FFTSUpdateStaAICoreArgs/MixL2UpdateGeDataDumpInfo 等输入输出数量超 kMaxIndexNum、HeavyFormatSelector 空 kernel、FusionRulePatternConstructor 重复节点名/循环检测、UpdateMergedCopyInfo tiling size 溢出等错误分支。

  • 开发辅助配置与脚本:.opencode/opencode.json 新增 compaction(auto: true、reserved: 20000)配置;新增 scripts/init_project.py 脚手架脚本,用于初始化 long-task-agent 项目结构(生成 feature-list.json、task-progress.md、RELEASE_NOTES.md、CLAUDE.md/AGENTS.md 引用及 docs/plans、examples 等目录),并新增配套的 scripts/.long-task-plugin-root 路径提示文件。

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

代码审查

发现 5 个问题,均为中低优先级建议。


关闭总结

已报告问题(4 条)

  • P2 × 1:fusion_engine_tbe_compiler_unittest.cc:675 — EXPECT_TRUE(is_su == true || is_su == false) 为恒真式,原 EXPECT_EQ(is_su, false) 的有效校验被移除,测试恒绿、不再守护 CheckSupport 失败路径。
  • P3 × 1:fusion_engine_fe_graph_optimizer_stest.cc:4250-4261 — graph_comm_isolate_node_failed 测试体无任何断言、从未调用 IsolateNode,且 root_graph/func_node/node_vec 为未使用变量(死测试)。
  • P3 × 1:fusion_engine_fe_graph_optimizer_unittest.cc:4714-4725 — UT 版同名空测试,问题同上。
  • P3 × 1:ut_heavy_format_propagation.cc:2675-2688 — get_peer_out_format_output_desc_null 声称构造 output_desc 为 nullptr 场景,实际代码并未使描述符为空,注释与行为自相矛盾,覆盖目标无法达成。

各变更文件逐项复核结论

  1. st/testcase/fusion_manager/st_configuration.cc — no issues(新增 3 个用例与仓库既有 UT 用例模式一致,FcntlLockFile fd=-1 返回 FAILED 的语义在既有测试中有先例)。
  2. st/testcase/fusion_rule_manager/fusion_rule_manager_stest.cc — no issues(重复节点/重复输入/拓扑环检测用例与 UT 孪生一致,构造合理)。
  3. st/testcase/graph_optimizer/fusion_engine_fe_graph_optimizer_stest.cc — 已报告空测试问题。
  4. st/testcase/graph_optimizer/heavy_format_propagation/st_heavy_format_propagation.cc — 与 UT 版同一根因(未真正构造空 desc 场景),已去重,未单独报告。
  5. st/testcase/graph_optimizer/trans_op_insert/trans_op_insert_complex_stest_2.cc — no issues(4 个 SwitchTransDataAndCast 场景用例)。
  6. st/testcase/op_compiler/fusion_engine_op_compiler_stest.cc — soc_version 改为 "InvalidSocVersion",断言未改,因无法访问 src 确认分支行为,不报(低置信度)。
  7. st/testcase/op_compiler/fusion_engine_op_compiler_stest_2.cc — no issues(Get*PrivateAttrValue 默认值回退用例)。
  8. st/testcase/op_compiler/fusion_engine_tbe_json_parser_stest.cc — no issues。
  9. st/testcase/ops_kernel_store/op_info_stest.cc — no issues。
  10. st/testcase/trace_handle_manager/trace_handle_manager_st.cc — no issues。
  11. st/testcase/ub_fusion/automatic_ub_fusion_st.cc — no confirmed issues(断言为弱 smoke 检查)。
  12. ut/.../tbe_info_assembler_unittest.cc — AICORE_NUM 期望由 "" 改为 "8" 与环境相关,无法确认,不报。
  13. ut/.../tbe_time_estimator_unittest.cc — no issues。
  14. ut/.../generate_cmo_type_base_ut.cc — no issues。
  15. ut/.../format_dtype_selector_manager_broadcast_unittest.cc — no issues。
  16. ut/.../fusion_rule_manager_uttest.cc — no issues。
  17. ut/.../fusion_engine_fe_graph_optimizer_unittest.cc — 已报告空测试问题。
  18. ut/.../ut_heavy_format_propagation.cc — 已报告空 desc 场景问题。
  19. ut/.../fusion_engine_op_compiler_unittest.cc — soc_version 变更同 ST 版,未确认不报。
  20. ut/.../fusion_engine_tbe_compiler_unittest.cc — 已报告恒真断言问题。

总体风险评估

本 PR 整体为纯测试新增/改动,不触碰生产代码,无 P0/P1 风险。主要问题集中在测试质量:一处断言被替换为恒真式导致测试失效(P2),以及两处新增测试为空壳/未达到注释声称的覆盖目标(P3),建议合入前修正,避免产生假绿用例。

类型 数量
🔴 阻塞 0
🟡 建议 2

💬 仅评论

likedislike
不准确?
李颜戎
李颜戎
8月31日 评论:

compile

likedislike
此处折叠了129条消息 查看更多
zhanj
zhanj成员
9月1日 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
9月1日 添加了label:lgtm
yangyongqiang
yangyongqiang成员
9月2日 评论:

/approve

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