| 部分算子资料修改 Co-authored-by: FelixTang7<tangyanfeng@huawei.com> # message auto-generated for no-merge-commit merge: !5414 merge md into master 部分算子资料修改 Created-by: FelixTang7 Commit-by: FelixTang7 Merged-by: cann-robot Description: ## 描述 部分数学类算子资料有问题,需要进行修改 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3040 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5414 | 2 months ago |
| Sort示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4864 merge codex/replay-pr-4756-raii-sort into master Sort示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/sort/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4864 | 2 months ago |
| perf(sort): optimize non-last-axis small sorts Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !5080 merge fix_sort_perf into master perf(sort): optimize non-last-axis small sorts Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 优化 Ascend 950 上 Sort 算子的非末轴小轴场景。现有 no-transpose two-stage 路径主要按相邻 inner 位置分批,在 innerSize 较小、outerSize 较大或 batch 分布不均时,可能出现活跃核不足、每核批次偏多及 UB 索引占用偏大的问题;部分低收益 shape 的 gather/scatter 开销也可能高于前后 transpose。 主要改动: - 新增 Sort 专用非末轴 two-stage 调度 schId 11,将 strided non-last-axis 策略与末轴 Sort、物理连续的 innerSize == 1 场景及 KthValue 原有路由隔离。 - host tiling 支持按完整 outer slice 分组 batch,并为非分组场景采用“优先更多活跃核、其次更少每核批次、最后更少空闲槽位”的选批策略。 - schId 11 在 UB 中使用 uint32 轴内索引,仅在 GM 写回时转换为输出索引类型,以降低 UB 占用;FP32 Sort32 场景增加更宽 inner chunk 候选。 - 新增 SortGroupedOuterSmallAxisTwoStage:block 对齐时通过三维 NDDMA 将 GM [outer, axis, inner] 聚集到密集 UB,否则使用 SIMT gather;排序后通过 SIMT scatter 恢复原始布局。非分组 strided batch 使用二维 NDDMA 加载。 - 为 merge 型非末轴路径增加 bank rotation padding,避免相邻 UB 行反复落在相同 bank group。 - aclnnSort 完善 no-transpose 收益判断:超小 inner row 且 outerSize 较大、整数大轴以及估算输出不小于 1 GiB 时继续走成熟的 transpose 路径。 - 保持既有接口和 dtype 范围不变,并补充 KthValue 回归用例,确保共享 tiling 代码的调整不改变其既有 two-stage 路由。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2882 ## 测试 - Sort 331个ST用例通过,KthValue 108个ST用例通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5080 | 2 months ago |
| sort/sort_with_index/top_k_v2/kth_value err msg整改 Co-authored-by: wuxiyuan<wuxiyuan@huawei.com> Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !3943 merge master into master sort/sort_with_index/top_k_v2/kth_value err msg整改 Created-by: wuxiyuan Commit-by: wuxiyuan;ConanHuang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将 sort、sort_with_index、top_k_v2、kth_value 四个算子中的通用 OP_LOGE 调用替换为结构化错误日志宏,使错误信息包含参数名、实际值、期望值等结构化字段,便于问题定位。 涉及算子 - sort - sort_with_index - top_k_v2 - kth_value 涉及文件 - math/kth_value/op_host/arch35/kth_value_tiling_arch35.cpp - math/kth_value/op_host/kth_value_infershape.cpp - math/sort/op_graph/sort_graph_infer.cpp - math/sort/op_host/arch35/sort_tiling.cpp - math/sort/op_host/arch35/sort_tiling_arch35.cpp - math/sort/op_host/arch35/sort_tiling_common.cpp - math/sort_with_index/op_host/arch35/sort_with_index_tiling.cpp - math/sort_with_index/op_host/sort_with_index_infershape.cpp - math/top_k_v2/op_graph/top_k_v2_graph_infer.cpp - math/top_k_v2/op_host/arch35/sort_with_index_tiling.h - math/top_k_v2/op_host/arch35/top_k_v2_tiling_arch35.cpp - math/top_k_v2/op_host/top_k_v2_infershape.cpp ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2191 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已完成自验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Err Msg整改 See merge request: cann/ops-math!3943 | 3 months ago |
| sort, sort_with_index, top_k_v2算子新增ascend350平台支持 Co-authored-by: jerry_gd<jerry.luo@huawei.com> # message auto-generated for no-merge-commit merge: !5410 merge dvlite into master sort, sort_with_index, top_k_v2算子新增ascend350平台支持 Created-by: jerry_gd Commit-by: jerry_gd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> sort, sort_with_index, top_k_v2算子新增ascend350平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3092 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5410 | 1 month ago |
| fix(sort,kth_value,median,nan_median): 按跨核同步路径配置 Kernel Task Type Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !5388 merge fix_tiling_0 into master fix(sort,kth_value,median,nan_median): 按跨核同步路径配置 Kernel Task Type Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Sort、KthValue、Median、NanMedian 的 Ascend 950(arch35)Kernel 入口此前将所有 Tiling 路径默认声明为 KERNEL_TYPE_MIX_AIV_1_0。实际仅包含 SyncAll 的跨核同步路径需要 Mix AIV 任务类型,其余单核、核内归并及 small-axis 等路径均为纯 AIV 计算。 本次改动: - 将四个 Kernel 入口的默认任务类型调整为 KERNEL_TYPE_AIV_ONLY; - 为 Sort 的 radix-more-core、merge-more-core 路径,以及 KthValue/Median/NanMedian 的 radix-more-core、merge-more-core、radix-select 路径,按 Tiling Key 显式保留 KERNEL_TYPE_MIX_AIV_1_0; - 使用具名预处理数值宏声明相关 Tiling Key,以满足 KERNEL_TASK_TYPE 将 Key 拼接到编译特性标识符中的要求。 该修改使任务类型与各调度路径的跨核同步需求一致,不改变算子接口、Host Tiling 选择或 Kernel 计算逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3054 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 四个算子ST全量用例通过 - 二级冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5388 | 2 months ago |
| feat(median): add Median/NanMedian and align NaN/signed-zero ordering Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !5104 merge median into master feat(median): add Median/NanMedian and align NaN/signed-zero ordering Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 Ascend 950 Median/NanMedian 算子,并复用 KthValue 的多调度选择框架,避免为中位数复制完整排序实现。 主要改动: - 新增 Median/NanMedian 的 OpDef、L0 API、InferShape、arch35 Tiling、AICore kernel、simplified key、golden、UT 和 TTK 用例。 - 支持 float16、float32、bfloat16、int8/16/32/64、uint8/16/32/64;values 保持输入 dtype,indices 为 int64,约简维保留为 1。 - 在 KthValue tiling data 中增加 STATIC、PROPAGATE_NAN、IGNORE_NAN 三种模式: - Median 对浮点 NaN 采用传播语义; - NanMedian 按非 NaN 数量动态计算 lower-median rank; - 整数输入沿用静态 k 快路径,不增加 NaN 扫描。 - 抽取统一 KthValue kernel dispatch,使 insertion、two-stage、merge、radix-select 和非末轴 small-axis 等 schedule 可由三个算子共享。 - 为多核动态 rank 路径补充对齐的 per-core count workspace,并保持原算法 workspace 布局。 - 完善 Sort/KthValue 公共逻辑中的 canonical NaN key、重复值与 signed-zero 稳定源顺序;同步补充 Sort、KthValue、TopKV2 golden 和回归用例。 详细设计、语义和约束见关联 Issue。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2968 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - Median/NanMedian/KthValue/Sort 累计677个ST用例通过 - 二级冒烟通过 - aclnnMedianDim,aclnnNanMedianDim 的门槛用例均通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5104 | 2 months ago |
| sort, sort_with_index, top_k_v2算子新增ascend350平台支持 Co-authored-by: jerry_gd<jerry.luo@huawei.com> # message auto-generated for no-merge-commit merge: !5410 merge dvlite into master sort, sort_with_index, top_k_v2算子新增ascend350平台支持 Created-by: jerry_gd Commit-by: jerry_gd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> sort, sort_with_index, top_k_v2算子新增ascend350平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3092 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5410 | 1 month ago |
| md大模型检测低错修改 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5183 merge master into master md大模型检测低错修改 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> md大模型检测低错修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [# 2466](https://gitcode.com/cann/ops-math/issues/2446) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5183 | 2 months ago |