已合并
sort cleancode处理 #4135
黄晓彬创建于 7月17日
sort cleancode处理 #4135
已合并
黄晓彬创建于 7月17日
黄晓彬成员
7月17日

描述

  1. 魔法数字消除:2/3/4/6/2048 等字面量替换为 DOUBLE_BUFFER_NUM、MERGE_LIST_MAX_NUM、ONE_CORE_DATA_SIZE 等具名常量,涉及 17+ 处
  2. 函数提取:BuildSortGraph()、SelectAndFinalizeKthValueRoute()、FillRadixKernelResources()、LaunchSortKernel() 等 6 个 helper 函数从主流程中提取,减少重复
  3. sort_apt.cpp 重构:内核派发链由 if constexpr + return 改为 if/else if,拆出 LaunchRadixMoreCore/LaunchMergeSortRoute 模板
  4. Lambda 捕获修复:[&] → [&info, &computeBatchNum](sort_tiling_common.cpp:1168)
  5. 格式化统一:const_cast 间距、缩进(2→4空格)、注释对齐、文件末尾换行补全,涉及 30+ 文件

关联的Issue

不涉及

测试

1 sort sort_with_index top_k_v2 kth_value 全量ST通过
2 二级冒烟通过

文档更新

不涉及

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 黄晓彬 的贡献)
黄晓彬成员
7月17日 创建了 pull request,commit bfbcb359
atomgit-bot
atomgit-bot
7月17日 评论:

变更摘要

该 PR 主要对 sort 和 kth_value 算子的代码进行清理(cleancode)重构,核心目标是将散落各处的魔数替换为具名常量、抽取重复逻辑为独立函数,并重构 sort_apt.cpp 中的模板分派链以提高可读性和可维护性。所有改动不涉及功能逻辑变更。

主要改动

  • 魔数替换为具名常量:在多个 host 端和 kernel 端文件中,将硬编码的 2342048 等数值替换为 DOUBLE_BUFFER_NUMNON_LAST_SMALL_AXIS_MIN_AXIS_LENONE_CORE_DATA_SIZERADIX_HIST_BUFFER_NUMINT64_INDEX_SCALEMERGE_WORKSPACE_BUFFER_NUMTWO_WAY_MERGE_LIST_NUMTHREE_WAY_MERGE_LIST_NUM 等常量,并在 sort_tiling_common.hmerge_sort_constants.hradix_sort_constants.h 中集中定义这些常量。

  • 提取 BuildSortGraph 函数aclnn_sort.cpp):将 aclnnSortGetWorkspaceSize 中构造排序计算图的冗长内联代码抽取为 BuildSortGraph 独立函数,包括 contiguous 转换、BF16/Bool 类型适配、UseNoTranspose 路由判断以及 reshape/ViewCopy 链路。

  • 提取 AllocateSortOutputs 函数sort.cpp):消除 dim-zero 分支和正常分支中重复的 values/indices 输出张量分配逻辑,统一通过 AllocateSortOutputs 辅助函数分配。

  • 提取 SelectAndFinalizeKthValueRoute 函数kth_value_tiling_arch35.cpp):将 Tiling4KthValue 主流程中的路由选择与定型逻辑封装为独立函数,并提取 FillRadixKernelResources 函数(sort_tiling_common.cpp)整合 FillRadixMoreCoreInfo 中的 kernel 参数填充与 workspace 计算。

  • 重构 sort_apt.cpp 模板分派:引入 LaunchSortKernelLaunchRadixMoreCore 模板辅助函数,将原来嵌套深、重复多的 if constexpr 分派链改为平铺的 else if constexpr 结构,并使用 std::conditional_t / std::is_same_v 替代 sizeof(DTYPE_X) 级联判断;同时在 sort_tiling_key.h 中为 schId 0 和 1 补充 SORT_SCHID_0 / SORT_SCHID_1 宏定义,消除剩余硬编码。

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

代码审查

✅ 未发现问题

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

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
math/sort 宋恺, wangrui_ (2/2) 宋恺 (1/1)
repo-cann/ops-math 宋恺, wangrui_ (2/2) 宋恺 (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
此处折叠了69条消息 查看更多
CANN-robot
CANN-robot成员
7月21日 评论:

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

任务名称状态日志下载链接
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_Pr ✅ SUCCESS
StaticCheck_codespell ✅ SUCCESS
StaticCheck_link_validity ✅ SUCCESS
StaticCheck_resource_existence ✅ SUCCESS
StaticCheck_tag_closed ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
codecheck_codestyle ⚠️ WARNING >>>>>
codecheck_precommit ✅ SUCCESS >>>>>

[2026-07-21 14:38:48]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月21日 添加了label:api-check-failed
CANN-robotCANN-robot成员
7月21日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月21日 添加了label:ci-pipeline-passed
CANN-robotCANN-robot成员
7月21日 合入了pull request