Pull Request已成功合入, 合并人@CANN-robot
(感谢 ideal_ 的贡献)变更摘要
本 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 注册到算子支持列表中。
主要改动
- 新增
arch35tiling 实现:新增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")。 - 归档
arch22tiling 并补充单测:将原stack_group_points_tiling.cpp/.h重命名为arch22目录下文件并修正文件结尾换行,更新现有 UT 的 include 路径,同时新增tests/ut/op_host/arch35/test_stack_group_points_tiling.cpp覆盖fp16/fp32场景。


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
/approveor/lgtm- Commenting
/approveimplies 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. 👍


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


描述
增加 StackGroupPoints 支持 Ascend950 实现 SIMT
关联的Issue
https://gitcode.com/cann/ops-cv/issues/781
测试
本地出包验证门槛用例、三方、geir,通过冒烟测试。
文档更新
类型标签