| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
sort类算子AscendC MicroAPI整改 Co-authored-by: tujun6<tujun6@huawei.com> # message auto-generated for no-merge-commit merge: !4790 merge ascendc_api_replace into master sort类算子AscendC MicroAPI整改 Created-by: tujun6 Commit-by: tujun6 Merged-by: cann-robot Description: ## 描述 本 PR 对 sort 类算子( sort、sort_with_index、kth_value)执行 arch35 MicroAPI 旧接口别名替换整改。 CANN 9.1.0 的 arch35(ascend950)MicroAPI 中,大量旧接口名与新接口名是同一 Impl 函数的别名。本次将以下旧接口统一替换为新接口名,保证代码规范并维持二进制完全等价: | 旧接口 | 新接口 | 说明 | |---|---|---| | __local_mem__ | __ubuf__ | 存储类属性标识 | | DataCopy(RegTensor 首参) | LoadAlign | 按 Load 方向判定 | | DataCopy(addr 首参) | StoreAlign | 按 Store 方向判定 | | CompareScalar | Compares | 标量比较 | | ReduceSum(3 参数 MicroAPI) | Reduce<ReduceType::SUM> | 仅 MicroAPI 层级,排除传统高阶 4 参数 API | | DataCopyGather | Gather | 聚集拷贝 | 替换统计: | 算子 | 目录 | 修改文件数 | 替换处数 | .o md5 一致 | |---|---|---|---|---| | sort | math/sort | 5 | 158 | ✅ 22 个 .o 全部一致 | | sort_with_index | math/sort_with_index | 1 | 2 | ✅ 22 个 .o 全部一致 | | kth_value | math/kth_value | 2 | 62 | ✅ 11 个 .o 全部一致 | | **合计** | | **8** | **222** | | > 注:top_k_v2 算子的同类整改已拆分到独立分支 test_tj,后续单独提交。 ## 关联的Issue #2665 ## 测试 对每个算子分别执行编译验证(bash build.sh --ops=<算子> --soc=ascend950 --opkernel -j16): 1. 编译替换后的代码,保存所有 .o 文件的 md5。 2. git stash 暂存修改,编译原始代码,保存原始 .o 的 md5。 3. 对比修改前后 md5,全部完全一致,证明替换是二进制等价的。 4. git stash pop 恢复修改。 最终残留扫描:全部 28 类旧 API 零残留(不可替换项如 GatherMask、PrefixSum、传统高阶 API、参数结构体等保持不变属正常)。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:arch35 MicroAPI 旧接口别名整改 See merge request: cann/ops-math!4790 | 21 天前 | |
kth_value: 新增radix_select和small_axis_short_rank_select调度策略 Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !3804 merge master into master kth_value: 新增radix_select和small_axis_short_rank_select调度策略 Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 当前 KthValue 算子已支持多种排序/选择策略,但在部分典型场景仍存在性能优化空间: 大型 last-axis 场景下,现有 radix_more_core 路径需要完成较完整的 radix sort 流程,再提取第 k 个元素。对于 kth_value 只需要单个 kth value/index 的语义而言,全量排序存在冗余计算。 小轴 int64/uint64 场景下,若 k 靠近头部或尾部,现有 small-axis two-stage / insertion 路径仍会完成完整排序,再提取第 k 个元素。对于短 rank 场景,可以只维护少量候选元素,避免全排序开销。 本需求在现有 KthValue 多策略框架基础上新增两条专项选择路径:radix_select 和 small_axis_short_rank_select,进一步减少不必要排序计算,提升大轴和小轴短 rank 场景性能。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2155 ## 测试 1 kthvalue 108个ST用例功能、性能达标 2 sort 331个ST用例功能、性能达标 3 二级冒烟通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3804 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 21 天前 | ||
| 2 个月前 |