已关闭
[Requirement|需求建议]: 迁出 kth_value、median、nan_median 至 ops-nn #3141
黄晓彬创建于  9月10日关闭于  9月11日
黄晓彬成员
9月10日 创建

一、背景信息 (必填)

将 kth_value、median、nan_median 从 ops-math 迁移至 ops-nn/index,使算子实现与 ACLNN 接口归属一致。本仓负责移除原实现及其注册配置,目标仓负责承接。

二、价值/作用 (必填)

统一索引/排序相关算子的维护位置,避免两仓重复维护相同实现;将 ACLNN、Host、Kernel、测试和文档集中到对应算子目录。

三、设计方案 (必填)

3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)

由 ops-nn 提供对应算子及 aclnnKthvalue、aclnnMedian(Dim)、aclnnNanMedian(Dim) 接口。本需求不新增框架接入。

3.2 总体设计

移除 math/kth_value、math/median、math/nan_median 及相关分类、编译配置;与 ops-nn 的承接 PR 配套合入。ops-math 的 Sort 实现保留。

3.2.1 算子支持的数据类型

迁移保留原生实现的 FLOAT、FLOAT16、BFLOAT16、INT8/16/32/64、UINT8/16/32/64 支持;具体 ACLNN 参数范围以目标仓接口文档为准。

3.2.2 host侧设计

Host、Tiling、InferShape、L0 API 和测试迁移至 ops-nn;目标仓完成 CMake、公共依赖与分类适配。

3.2.3 kernel侧设计

迁移 arch35 Kernel,保持原有主要算法、TilingKey 和 TilingData。所需 Sort 公共代码由目标仓复制到 kth_value 内并调整命名。原 simplified_key 配置为 default=0,目标仓沿用等价的 CMake 默认值。

3.3 支持硬件

本次原生实现为 Ascend950(arch35);不借此次搬迁扩展芯片支持范围。

3.4 算子约束限制

保留原有算子语义及约束。原生算子输入非空且 rank > 0,dim 在合法轴范围内,KthValue 的 k 位于 [1, axisLen];ACLNN 的标量、空输入及 keepDim 行为参见各接口文档。

💡 备注(选填)
本仓 PR:https://gitcode.com/cann/ops-math/merge_requests/5550
配套承接 PR:https://gitcode.com/cann/ops-nn/merge_requests/10222
两笔 PR 需协调合入,先确保目标仓具备承接实现,再移除源仓实现。

likedislike
黄黄晓彬成员
9月10日 添加了label:requirement
CANN-robotCANN-robot成员
9月11日 关闭了 issue
CANN-robotCANN-robot成员
9月11日 添加了label:resolved
黄黄晓彬成员
9月18日 关联了pull request:[9.2.0] refactor/perf: 回合算子迁移清理与 Sort 性能优化