Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
将 ops-math 的 kth_value、median、nan_median 迁入 ops-nn/index,并将原位于 index/gather_v2 的 aclnnKthvalue、aclnnMedian(Dim)、aclnnNanMedian(Dim) 接口、示例、文档与测试归位到对应算子目录。
自规划
统一三个算子的实现、接口、测试和文档归属,减少跨仓依赖和 GatherV2 目录中的无关内容,使目标算子的独立编译依赖明确。
index/median/op_api/aclnn_median.h
aclnn_nan_median.h
aclnnop/aclnn_median.h
median/op_api/median_common.cpp
median_common.h
aclnn_median.h
原生实现支持 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 或跨芯片验证。
d1329e645
原迁移阶段的既有记录(本次未重跑):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 需协调合入,先确保目标仓承接可用,再移除源仓实现。
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(设计方案)
index/median/op_api/aclnn_median.h统一声明 Median、MedianDim、NanMedian、NanMedianDim 的八个两阶段接口,保留原函数签名和 C 链接声明,不新增aclnn_nan_median.h。已有调用方继续包含aclnnop/aclnn_median.h;cpp 实现按 Median/NanMedian 分开,示例、文档与测试同步引用统一头文件。median/op_api/median_common.cpp中单份实现,median_common.h仅供内部 cpp 使用。其辅助函数和常量原本位于 cpp 内部,未在原aclnn_median.h中公开;公共头文件不依赖它,它也不进入公开 ACLNN 头文件安装清单。通过 L0 函数指针避免反向依赖。移除三算子的 common 桩和弱符号判断,保留运行时芯片路径选择。原生实现支持 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 需协调合入,先确保目标仓承接可用,再移除源仓实现。