已合并
sort/sort_with_index/top_k_v2/kth_value err msg整改 #3943
wuxiyuan创建于 7月9日
sort/sort_with_index/top_k_v2/kth_value err msg整改 #3943
已合并
wuxiyuan创建于 7月9日
wuxiyuan
7月9日

描述

将 sort、sort_with_index、top_k_v2、kth_value 四个算子中的通用 OP_LOGE 调用替换为结构化错误日志宏,使错误信息包含参数名、实际值、期望值等结构化字段,便于问题定位。
涉及算子

  • sort
  • sort_with_index
  • top_k_v2
  • kth_value

涉及文件

  • math/kth_value/op_host/arch35/kth_value_tiling_arch35.cpp
  • math/kth_value/op_host/kth_value_infershape.cpp
  • math/sort/op_graph/sort_graph_infer.cpp
  • math/sort/op_host/arch35/sort_tiling.cpp
  • math/sort/op_host/arch35/sort_tiling_arch35.cpp
  • math/sort/op_host/arch35/sort_tiling_common.cpp
  • math/sort_with_index/op_host/arch35/sort_with_index_tiling.cpp
  • math/sort_with_index/op_host/sort_with_index_infershape.cpp
  • math/top_k_v2/op_graph/top_k_v2_graph_infer.cpp
  • math/top_k_v2/op_host/arch35/sort_with_index_tiling.h
  • math/top_k_v2/op_host/arch35/top_k_v2_tiling_arch35.cpp
  • math/top_k_v2/op_host/top_k_v2_infershape.cpp

关联的Issue

https://gitcode.com/cann/ops-math/issues/2191

测试

已完成自验证

文档更新

类型标签

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

变更摘要

此 PR 主要对 sortsort_with_indextop_k_v2kth_value 四个算子模块中的错误日志进行规范化整改。核心工作是将原有的通用 OP_LOGE 宏替换为一系列具备结构化语义的专用日志宏(如 OP_LOGE_FOR_INVALID_VALUE_WITH_REASONOP_LOGE_FOR_INVALID_DTYPEOP_LOGE_WITH_INVALID_INPUTOP_LOGE_FOR_INVALID_SHAPE_WITH_REASON 等),使每条错误日志明确携带参数名、错误值和原因描述,提升问题定位效率与日志一致性。

主要改动

  • 错误日志宏统一替换: 在 kth_value_tiling_arch35.cppsort_tiling_arch35.cppsort_tiling_common.cppsort_with_index_tiling.cpptop_k_v2_tiling_arch35.cpp 等多个 tiling 文件中,将原有的 OP_LOGE 调用系统性替换为 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON,每条日志新增参数名(如 ubSizetileDatamaxCoreNum)和状态(如 exceeds limitinsufficientfailed)两个字段。

  • 数据类型与形状校验日志规范化: 在 sort_graph_infer.cpptop_k_v2_graph_infer.cpptop_k_v2_infershape.cpp 等推断文件中,将 dtype 检查的 OP_LOGE 替换为 OP_LOGE_FOR_INVALID_DTYPEOP_LOGE_FOR_INVALID_DTYPE_WITH_REASON,形状检查替换为 OP_LOGE_FOR_INVALID_SHAPE_WITH_REASON / OP_LOGE_FOR_INVALID_SHAPEDIM_WITH_REASON / OP_LOGE_FOR_INVALID_SHAPES_WITH_REASON,并附带具体 dtype 名称和形状信息。

  • 空指针与属性校验日志规范化: 在 top_k_v2_tiling_arch35.cppsort_with_index_tiling.cppsort_with_index_tiling.h 等文件中,将空指针检查(如 GetInputDescplatform_infotilingData)的日志替换为 OP_LOGE_WITH_INVALID_INPUT;在 kth_value_infershape.cpp 中将 dim 属性的范围校验日志替换为 OP_LOGE_WITH_INVALID_ATTR,并补充了 #include <string> 以支持字符串拼接。

  • 多行日志合并与格式统一: 将原本跨多行的 OP_LOGE 调用(如 ComputeInsertionBytesPerSegEstimateTwoStageUbBytes 中的溢出日志)合并为单行 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 调用,信息通过字符串拼接纳入 reason 参数,减少代码冗余并保持可读性。

likedislike
atomgit-bot
atomgit-bot
7月9日 评论:

代码审查

经过对所有 12 个变更文件的逐文件、逐行审查,我确认本次 diff 是一次纯错误消息格式标准化改造:将 OP_LOGE 替换为结构化日志宏(如 OP_LOGE_FOR_INVALID_VALUE_WITH_REASONOP_LOGE_FOR_INVALID_DTYPEOP_LOGE_WITH_INVALID_INPUTOP_LOGE_FOR_INVALID_SHAPES_WITH_REASONOP_LOGE_WITH_INVALID_ATTR 等)。未引入任何逻辑变更、控制流变更或新缺陷。


审查结论摘要

优先级 问题数量
P0 0
P1 0
P2 0
P3 0

整体风险判定:无风险。此变更仅涉及错误消息格式的标准化,所有宏替换均保留了原有的错误条件和返回值逻辑,参数映射正确,字符串生命周期安全。


逐文件审查确认

# 文件 审查结果
1 math/kth_value/op_host/arch35/kth_value_tiling_arch35.cpp 无问题 — 15 处 OP_LOGE → 结构化宏替换,参数正确
2 math/kth_value/op_host/kth_value_infershape.cpp 无问题 — 新增 #include <string> 必要且正确,std::string 临时变量生命周期安全
3 math/sort/op_graph/sort_graph_infer.cpp 无问题 — 1 处 OP_LOGEOP_LOGE_FOR_INVALID_DTYPE
4 math/sort/op_host/arch35/sort_tiling.cpp 无问题 — 2 处替换,参数正确
5 math/sort/op_host/arch35/sort_tiling_arch35.cpp 无问题 — 多处分拆及替换,宏参数一致
6 math/sort/op_host/arch35/sort_tiling_common.cpp 无问题 — printf→字符串拼接转换正确,顺带修复了原 %u 格式化 uint64_t 的类型不匹配
7 math/sort_with_index/op_host/arch35/sort_with_index_tiling.cpp 无问题 — 6 处替换,参数正确
8 math/sort_with_index/op_host/sort_with_index_infershape.cpp 无问题 — 2 处替换,新增的 OP_LOGE_FOR_INVALID_SHAPES_WITH_REASON 参数正确
9 math/top_k_v2/op_graph/top_k_v2_graph_infer.cpp 无问题 — 1 处 OP_LOGEOP_LOGE_FOR_INVALID_DTYPE
10 math/top_k_v2/op_host/arch35/sort_with_index_tiling.h 无问题 — 5 处替换,C 头文件变更正确
11 math/top_k_v2/op_host/arch35/top_k_v2_tiling_arch35.cpp 无问题 — 多处宏替换,IsValidParam 分拆为独立检查为改进,std::string reasonMsg 生命周期正确
12 math/top_k_v2/op_host/top_k_v2_infershape.cpp 无问题 — 3 处替换,std::to_string + 字符串拼接的临时对象生命周期安全
类型 数量
🔴 阻塞 1
🟡 建议 0

⛔ 需要修改

likedislike
CANN-robotCANN-robot成员
7月9日 添加了label:cann-cla/yes
wuxiyuan
7月9日 评论:

compile

likedislike
此处折叠了90条消息 查看更多
CANN-robotCANN-robot成员
7月9日 添加了label:approved
RuiWang_成员
7月9日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
7月9日 添加了label:lgtm
CANN-robotCANN-robot成员
7月9日 关闭了关联的issue
CANN-robotCANN-robot成员
7月9日 合入了pull request