已合并
tilingkey裁剪回退 #7629
tilingkey裁剪回退 #7629
已合并
huafeng793创建于 7月17日
huafeng793成员
7月17日

描述

tilingkey裁剪回退

关联的Issue

NA

测试

NA

文档更新

NA

类型标签

AI/Agent生成声明

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

变更摘要

本次 PR 是对 tilingkey 裁剪功能的回退,主要撤销了此前 MR #7293 引入的 SmallKernel(小卷积核)裁剪优化。核心变化是:删除 CONV2D_SCALAR_OPT_SEL_NK 宏(即不带 SmallKernel 裁剪的变体),统一使用 CONV2D_SCALAR_OPT_SEL,并将 SmallKernel 选择项合并回主宏的展开链中。同时,在 conv2d_v2 相关 tilingkey 文件中删除了多个 "No SmallWeight" 变体宏,将其功能合并到基础宏中;DMA 模式下原本独立的 ORI_GROUP 系列宏也被合并到通用 DMA SEL 中。此外,新增了两个 C04 inner batch 场景的 tilingkey 选择宏。

主要改动

  • 删除 CONV2D_SCALAR_OPT_SEL_NK 宏并统一为 CONV2D_SCALAR_OPT_SEL:在 conv_tilingkey.h 中移除了 CONV2D_SCALAR_OPT_SEL_NK 的定义,同时修改 CONV2D_SCALAR_OPT_SEL 使其不再以逗号分隔而是直接拼接 SmallKernel 选择项,其他三个 tilingkey 文件中所有 _NK 宏调用也全部替换为 CONV2D_SCALAR_OPT_SEL

  • 合并/删除 "No SmallWeight" 变体宏:在 conv2d_v2_tilingkey.h 中删除了 CONV2D_COMMON_C04_NK_TPL_UINT_SELCONV2D_COMMON_C04_NO_SMALL_WEIGHT_TPL_UINT_SELCONV2D_COMMON_C04_MIXCORE_NO_SMALL_WEIGHT_TPL_UINT_SEL,所有引用处改为使用基础宏 CONV2D_COMMON_C04_TPL_UINT_SELCONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL;在 conv2d_v2_input_hwnc_tilingkey.h 中同样删除了 CONV2D_COMMON_INPUT_HWNC_NO_SMALL_WEIGHT_TPL_UINT_SEL,统一使用 CONV2D_COMMON_INPUT_HWNC_TPL_UINT_SEL

  • DMA 模式下合并 ORI_GROUP 系列宏:在 conv2d_v2_tilingkey.h 中删除了 CONV2D_COMMON_DMA_ORI_GROUP_SEL 及 5 个 CONV2D_DMA_ORI_GROUP_* 选择宏,将 CONV2D_COMMON_DMA_SELGroupType 的选择项扩展为同时包含 CONV_GROUP_TYPE_NORMAL_CONVCONV_GROUP_TYPE_ORI_GROUP_CONV,并从主 ASCENDC_TPL_SEL 列表中移除对应条目。

  • 新增 C04 inner batch 的 tilingkey 选择宏:在 conv2d_v2_inner_batch_tilingkey.hconv2d_v2_tilingkey.h 中新增 CONV_INNER_BATCH_ONLY_WEIGHT_FULLLOAD_L0_ALLCLOSE_ENABLE_C04_SELCONV_INNER_BATCH_ONLY_MN_FULLLOAD_ENABLE_C04_SEL 两个宏,并在条件编译的 #else 分支提供空定义。

  • 新增 CONV2D_ONLY_MN_FULLLOAD_MIXCORE_SEL:在 conv2d_v2_tilingkey.h 中新增该宏定义及其在 ASCENDC_TPL_SEL 列表中的条目,用于补充 MIXCORE 模式下 ONLY_MN_FULLLOAD 场景的 tilingkey 选择。

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

代码审查

All removed macros have no remaining references — the cleanup is complete. Now let me provide the closing summary.


审查总结

审查覆盖范围

已逐一审查全部 4 个变更文件:

文件 审查结论
conv/common/op_kernel/arch35/conv_tilingkey.h 发现 2 个 P1 问题(同一根因的不同分支)
conv/conv2d_v2/op_kernel/arch35/conv2d_v2_inner_batch_tilingkey.h 无独立问题(受影响于上游 bug)
conv/conv2d_v2/op_kernel/arch35/conv2d_v2_input_hwnc_tilingkey.h 无独立问题(受影响于上游 bug)
conv/conv2d_v2/op_kernel/arch35/conv2d_v2_tilingkey.h 无独立问题(受影响于上游 bug)

发现统计

  • P0: 0
  • P1: 2(CONV2D_SCALAR_OPT_SEL 宏在 #if#else 两个分支中 SmallWeightSmallKernel 之间均缺少逗号)
  • P2: 0
  • P3: 0

整体风险评估

高风险CONV2D_SCALAR_OPT_SEL 宏中缺少逗号是一个编译期语法错误,会影响所有 4 个变更文件中通过 ASCENDC_TPL_ARGS_SEL(...) 间接引用该宏的全部 tilingkey SEL 宏(约 30+ 处调用点)。此缺陷在合并 CONV2D_SCALAR_OPT_SEL_NK 和原 CONV2D_SCALAR_OPT_SEL 时意外引入了逗号丢失。修复方式明确:在 conv_tilingkey.h 第 86 行和第 91 行的 ) 后分别添加 , 即可。

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

⛔ 需要修改

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
conv 王慈孟, 郑李磊 (2/2) 王慈孟, 郑李磊 (2/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
此处折叠了56条消息 查看更多
CANN-robotCANN-robot成员
7月17日 添加了label:ci-pipeline-passed
lileizheng成员
7月17日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
7月17日 添加了label:lgtm
CANN-robotCANN-robot成员
7月17日 合入了pull request
CANN-robot
CANN-robot成员
7月17日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike