已关闭
[Requirement|需求建议]: 承接 kth_value、median、nan_median 并归位 ACLNN 接口 #5783
黄晓彬创建于  10 天前关闭于  9 天前
黄晓彬成员
10 天前 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Backgroud(背景信息)

将 ops-math 的 kth_value、median、nan_median 迁入 ops-nn/index,并将原位于 index/gather_v2 的 aclnnKthvalue、aclnnMedian(Dim)、aclnnNanMedian(Dim) 接口、示例、文档与测试归位到对应算子目录。

Origin(信息来源)

自规划

Benefit / Necessity (价值/作用)

统一三个算子的实现、接口、测试和文档归属,减少跨仓依赖和 GatherV2 目录中的无关内容,使目标算子的独立编译依赖明确。

Design(设计方案)

  1. 承接三个算子的 Ascend950/arch35 Host、Kernel、InferShape、L0 API 及 UT/ST 数据;保持原有主要算法、TilingKey、TilingData 和 golden 语义。
  2. 将依赖的 Sort 公共代码复制到 kth_value 内并调整命名,适配目标仓 CMake、公共头文件和 arch35 UT 目录;三个算子归入 sort@ops-nn。
  3. 公共 ACLNN 头文件保持兼容:index/median/op_api/aclnn_median.h 统一声明 Median、MedianDim、NanMedian、NanMedianDim 的八个两阶段接口,保留原函数签名和 C 链接声明,不新增 aclnn_nan_median.h。已有调用方继续包含 aclnnop/aclnn_median.h;cpp 实现按 Median/NanMedian 分开,示例、文档与测试同步引用统一头文件。
  4. Median/NanMedian 共用辅助逻辑在 median/op_api/median_common.cpp 中单份实现,median_common.h 仅供内部 cpp 使用。其辅助函数和常量原本位于 cpp 内部,未在原 aclnn_median.h 中公开;公共头文件不依赖它,它也不进入公开 ACLNN 头文件安装清单。通过 L0 函数指针避免反向依赖。移除三算子的 common 桩和弱符号判断,保留运行时芯片路径选择。
  5. CMake 显式表达 ACLNN 实际调用依赖,包括 KthValue 旧芯片 Sort+Gather 路径所需 GatherV2;从 GatherV2 移除已迁出接口的 MedianDim 依赖。
  6. 补充三算子 README、op_list、API 索引及源码链接,保留约束说明。

原生实现支持 FLOAT、FLOAT16、BFLOAT16、INT8/16/32/64、UINT8/16/32/64;输入非空且 rank > 0,dim 合法,k 位于 [1, axisLen]。ACLNN 的独立约束以接口文档为准。

验收要求:旧调用方通过原 aclnn_median.h 可取得全部八个接口声明,公开签名不变;内部辅助头文件不成为用户编译依赖;目标仓完整承接三个算子后再移除源仓实现。

验证记录:本次 d1329e645 已完成八个声明与迁移前头文件的逐项对比,统一头文件及两个 NanMedian 示例的 C++ 语法编译通过,引用路径与安装清单检查通过;pre-commit 适用检查通过(含 OAT,codespell 按本次本地验证约定跳过),codecheck 人工复核通过但不等同于服务端扫描。JIT 已按本次本地验证约定停止,后续门禁 UT 未执行,本次未完成完整链接、NPU ST 或跨芯片验证。

原迁移阶段的既有记录(本次未重跑):33 项 Kernel 编译及 Host/ACLNN 链接、符号检查通过;950 Host UT 为 56/59 通过,3 项本地失败仍保留,尚不能视为全部验收通过。

本仓 PR:https://gitcode.com/cann/ops-nn/merge_requests/10222
配套源仓清理 PR:https://gitcode.com/cann/ops-math/merge_requests/5550
两笔 PR 需协调合入,先确保目标仓承接可用,再移除源仓实现。

likedislike
黄晓彬成员
10 天前 添加了label:requirement
黄晓彬成员
10 天前 修改了issue 的描述
黄晓彬成员
10 天前 修改了issue 的描述
CANN-robotCANN-robot成员
9 天前 关闭了 issue
CANN-robotCANN-robot成员
9 天前 添加了label:resolved
黄晓彬成员
3 天前 关联了pull request:[9.2.0] feat/fix/perf: 回合 kth_value、median、nan_median 迁移与优化