已合并
[CANNBot] 增加 StackGroupPoints 支持 Ascend950 实现 SIMT #1290
[CANNBot] 增加 StackGroupPoints 支持 Ascend950 实现 SIMT #1290
已合并
ideal_创建于 8月13日
ideal_
ideal_
8月13日

描述

增加 StackGroupPoints 支持 Ascend950 实现 SIMT

关联的Issue

https://gitcode.com/cann/ops-cv/issues/781

测试

本地出包验证门槛用例、三方、geir,通过冒烟测试。

文档更新

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 ideal_ 的贡献)
ideal_ideal_
8月13日 创建了 pull request,commit b1ea2d6f
atomgit-bot
atomgit-bot
8月13日 评论:

变更摘要

本 PR 由 CANNBot 生成,主要为 StackGroupPoints 算子新增 Ascend950 平台上的 SIMT 实现。改动将原有 arch22 的 tiling 文件重命名归档,并新增 arch35 目录下的 tiling 与 kernel 实现:StackGroupPointsTilingFunc 负责平台信息获取、输入 dtype/形状校验、核数计算、tiling 数据填充与 workspace/BlockDim/LocalMemory 设置;kernel 侧通过 OpStackGroupPointsSimt<T> 以 Grid-Stride 线程映射直接读写 GM 完成特征聚合,并在 stack_group_points_apt.cpp 中通过模板参数调度该 SIMT 版本。同时新增 ascend950 的二进制配置与 tiling key 配置,并将 ascend950 注册到算子支持列表中。

主要改动

  • 新增 arch35 tiling 实现:新增 objdetect/stack_group_points/op_host/arch35/stack_group_points_tiling.cpp 与头文件,实现 ValidateDtype、ValidateShape、GetPlatformInfo、FillTilingData、GetWorkspaceSize 等逻辑,并通过 IMPL_OP_OPTILING(StackGroupPoints) 注册 StackGroupPointsTilingFunc 与 TilingParseForStackGroupPoints。
  • 新增 SIMT kernel 实现:新增 objdetect/stack_group_points/op_kernel/arch35/stack_group_points.h,定义 OpStackGroupPointsSimt<T> 与 Process<T>,采用 Grid-Stride 线程映射直接读写 GM,并处理 b <= 0 时输出全零的特殊分支。
  • 新增 tiling 数据结构与模板调度:新增 stack_group_points_tiling_data.h 定义 StackGroupPointsTilingData 字段,新增 stack_group_points_tiling_key.h 声明单场景模式的 tiling key,并在 stack_group_points_apt.cpp 中通过 schMode 模板调用 NsStackGroupPoints::Process<DTYPE_FEATURES>。
  • 新增 Ascend950 平台配置与注册:新增 op_host/config/ascend950/stack_group_points_binary.json(定义 float16/float32 两套二进制输入输出描述)与 stack_group_points_simplified_key.ini,并在 stack_group_points_def.cpp 中新增 AddConfig("ascend950")。
  • 归档 arch22 tiling 并补充单测:将原 stack_group_points_tiling.cpp/.h 重命名为 arch22 目录下文件并修正文件结尾换行,更新现有 UT 的 include 路径,同时新增 tests/ut/op_host/arch35/test_stack_group_points_tiling.cpp 覆盖 fp16/fp32 场景。
likedislike
不准确?
atomgit-bot
atomgit-bot
8月13日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
CANN-robotCANN-robot成员
8月13日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
8月13日 评论:

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.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
*/*/README.md ✅ 刘伟, 陈娇, yue-ma (3/2) ✅ 陈娇 (1/1)
*/*/op_graph/*_proto.h ✅ 汤磊, yue-ma, 刘伟 (3/2) ✅ 汤磊 (1/1)
*/*/op_host/*_def.cpp ✅ 汤磊, yue-ma, 刘伟 (3/2) ✅ 汤磊 (1/1)
objdetect/stack_group_points ✅ 刘伟, yue-ma (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

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

likedislike
此处折叠了202条消息 查看更多
yue-ma成员
8月24日 评论:

/lgtm

likedislike
CANN-robot
CANN-robot成员
8月24日 评论:

The following users do not have permission to comment /lgtm or /approve on any module in this PR:
guankarl

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