| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !3724 merge dev into master add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增 TopK、CalcBucketsLimitAndOffset、CompareAndBitPack 三个 AICPU 算子的完整实现,共涉及 28 个文件变更。 ### 1. TopK(math/topk/) 从已有 aclnn 接口扩展为完整 AICPU 算子实现: - 新增 op_graph/topk_proto.h:算子协议定义 - 新增 op_host/topk_infershape.cpp:host 侧 shape 推导 - 新增 op_kernel_aicpu/topk_aicpu.cpp、topk_aicpu.h、topk_aicpu_def.cpp:AICPU kernel 实现及注册 - 新增 op_kernel_aicpu/CMakeLists.txt、op_graph/CMakeLists.txt:构建配置 - 新增 examples/test_geir_topk.cpp:使用示例 - 新增 tests/ut/op_kernel_aicpu/test_topk.cpp:单元测试 - 修改 CMakeLists.txt:添加 UT 测试配置 - 修改 README.md:补充完整算子文档(产品支持情况、接口说明等) ### 2. CalcBucketsLimitAndOffset(conversion/calc_buckets_limit_and_offset/) 全新 AICPU 算子,用于计算 buckets 的 limit 和 offset 值: - 新增 CMakeLists.txt、op_graph/calc_buckets_limit_and_offset_proto.h - 新增 op_kernel_aicpu/calc_buckets_limit_and_offset_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_calc_buckets_limit_and_offset.cpp - 新增 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp - 新增 README.md:算子文档 ### 3. CompareAndBitPack(math/compare_and_bit_pack/) 全新 AICPU 算子,将输入与阈值进行比较并将比较结果的比特位打包为 uint8 输出: - 新增 CMakeLists.txt、op_graph/compare_and_bit_pack_proto.h - 新增 op_kernel_aicpu/compare_and_bit_pack_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_compare_and_bit_pack.cpp - 新增 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp - 新增 README.md:算子文档 ### 4. 文档更新 - 修改 docs/zh/op_list.md:在算子列表中添加 compare_and_bit_pack 等算子条目 ## 关联的Issue #2187 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证三个算子(TopK、CalcBucketsLimitAndOffset、CompareAndBitPack)的 CMakeLists.txt 配置正确,能正常编译构建 2. **单元测试(UT)** - 运行 tests/ut/op_kernel_aicpu/test_topk.cpp,验证 TopK 算子在不同数据类型(float16、float32、int32)和 shape 下的计算正确性 - 运行 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子的功能正确性 - 运行 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子在不同数据类型下的比较和比特打包功能正确性 3. **Example 验证** - 编译并运行 examples/test_geir_topk.cpp,验证 TopK 算子端到端调用流程 - 编译并运行 examples/test_geir_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子端到端调用流程 - 编译并运行 examples/test_geir_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子端到端调用流程 4. **算子加载测试** - 验证三个算子的 AICPU kernel 注册成功,接口可正常调用 ## 文档更新 - 新增 math/topk/README.md:TopK 算子完整文档(产品支持情况、接口说明、约束限制等) - 新增 conversion/calc_buckets_limit_and_offset/README.md:CalcBucketsLimitAndOffset 算子文档 - 新增 math/compare_and_bit_pack/README.md:CompareAndBitPack 算子文档 - 修改 docs/zh/op_list.md:算子列表新增条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3724 | 2 个月前 | |
add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !3724 merge dev into master add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增 TopK、CalcBucketsLimitAndOffset、CompareAndBitPack 三个 AICPU 算子的完整实现,共涉及 28 个文件变更。 ### 1. TopK(math/topk/) 从已有 aclnn 接口扩展为完整 AICPU 算子实现: - 新增 op_graph/topk_proto.h:算子协议定义 - 新增 op_host/topk_infershape.cpp:host 侧 shape 推导 - 新增 op_kernel_aicpu/topk_aicpu.cpp、topk_aicpu.h、topk_aicpu_def.cpp:AICPU kernel 实现及注册 - 新增 op_kernel_aicpu/CMakeLists.txt、op_graph/CMakeLists.txt:构建配置 - 新增 examples/test_geir_topk.cpp:使用示例 - 新增 tests/ut/op_kernel_aicpu/test_topk.cpp:单元测试 - 修改 CMakeLists.txt:添加 UT 测试配置 - 修改 README.md:补充完整算子文档(产品支持情况、接口说明等) ### 2. CalcBucketsLimitAndOffset(conversion/calc_buckets_limit_and_offset/) 全新 AICPU 算子,用于计算 buckets 的 limit 和 offset 值: - 新增 CMakeLists.txt、op_graph/calc_buckets_limit_and_offset_proto.h - 新增 op_kernel_aicpu/calc_buckets_limit_and_offset_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_calc_buckets_limit_and_offset.cpp - 新增 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp - 新增 README.md:算子文档 ### 3. CompareAndBitPack(math/compare_and_bit_pack/) 全新 AICPU 算子,将输入与阈值进行比较并将比较结果的比特位打包为 uint8 输出: - 新增 CMakeLists.txt、op_graph/compare_and_bit_pack_proto.h - 新增 op_kernel_aicpu/compare_and_bit_pack_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_compare_and_bit_pack.cpp - 新增 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp - 新增 README.md:算子文档 ### 4. 文档更新 - 修改 docs/zh/op_list.md:在算子列表中添加 compare_and_bit_pack 等算子条目 ## 关联的Issue #2187 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证三个算子(TopK、CalcBucketsLimitAndOffset、CompareAndBitPack)的 CMakeLists.txt 配置正确,能正常编译构建 2. **单元测试(UT)** - 运行 tests/ut/op_kernel_aicpu/test_topk.cpp,验证 TopK 算子在不同数据类型(float16、float32、int32)和 shape 下的计算正确性 - 运行 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子的功能正确性 - 运行 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子在不同数据类型下的比较和比特打包功能正确性 3. **Example 验证** - 编译并运行 examples/test_geir_topk.cpp,验证 TopK 算子端到端调用流程 - 编译并运行 examples/test_geir_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子端到端调用流程 - 编译并运行 examples/test_geir_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子端到端调用流程 4. **算子加载测试** - 验证三个算子的 AICPU kernel 注册成功,接口可正常调用 ## 文档更新 - 新增 math/topk/README.md:TopK 算子完整文档(产品支持情况、接口说明、约束限制等) - 新增 conversion/calc_buckets_limit_and_offset/README.md:CalcBucketsLimitAndOffset 算子文档 - 新增 math/compare_and_bit_pack/README.md:CompareAndBitPack 算子文档 - 修改 docs/zh/op_list.md:算子列表新增条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3724 | 2 个月前 | |
add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !3724 merge dev into master add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增 TopK、CalcBucketsLimitAndOffset、CompareAndBitPack 三个 AICPU 算子的完整实现,共涉及 28 个文件变更。 ### 1. TopK(math/topk/) 从已有 aclnn 接口扩展为完整 AICPU 算子实现: - 新增 op_graph/topk_proto.h:算子协议定义 - 新增 op_host/topk_infershape.cpp:host 侧 shape 推导 - 新增 op_kernel_aicpu/topk_aicpu.cpp、topk_aicpu.h、topk_aicpu_def.cpp:AICPU kernel 实现及注册 - 新增 op_kernel_aicpu/CMakeLists.txt、op_graph/CMakeLists.txt:构建配置 - 新增 examples/test_geir_topk.cpp:使用示例 - 新增 tests/ut/op_kernel_aicpu/test_topk.cpp:单元测试 - 修改 CMakeLists.txt:添加 UT 测试配置 - 修改 README.md:补充完整算子文档(产品支持情况、接口说明等) ### 2. CalcBucketsLimitAndOffset(conversion/calc_buckets_limit_and_offset/) 全新 AICPU 算子,用于计算 buckets 的 limit 和 offset 值: - 新增 CMakeLists.txt、op_graph/calc_buckets_limit_and_offset_proto.h - 新增 op_kernel_aicpu/calc_buckets_limit_and_offset_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_calc_buckets_limit_and_offset.cpp - 新增 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp - 新增 README.md:算子文档 ### 3. CompareAndBitPack(math/compare_and_bit_pack/) 全新 AICPU 算子,将输入与阈值进行比较并将比较结果的比特位打包为 uint8 输出: - 新增 CMakeLists.txt、op_graph/compare_and_bit_pack_proto.h - 新增 op_kernel_aicpu/compare_and_bit_pack_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_compare_and_bit_pack.cpp - 新增 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp - 新增 README.md:算子文档 ### 4. 文档更新 - 修改 docs/zh/op_list.md:在算子列表中添加 compare_and_bit_pack 等算子条目 ## 关联的Issue #2187 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证三个算子(TopK、CalcBucketsLimitAndOffset、CompareAndBitPack)的 CMakeLists.txt 配置正确,能正常编译构建 2. **单元测试(UT)** - 运行 tests/ut/op_kernel_aicpu/test_topk.cpp,验证 TopK 算子在不同数据类型(float16、float32、int32)和 shape 下的计算正确性 - 运行 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子的功能正确性 - 运行 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子在不同数据类型下的比较和比特打包功能正确性 3. **Example 验证** - 编译并运行 examples/test_geir_topk.cpp,验证 TopK 算子端到端调用流程 - 编译并运行 examples/test_geir_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子端到端调用流程 - 编译并运行 examples/test_geir_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子端到端调用流程 4. **算子加载测试** - 验证三个算子的 AICPU kernel 注册成功,接口可正常调用 ## 文档更新 - 新增 math/topk/README.md:TopK 算子完整文档(产品支持情况、接口说明、约束限制等) - 新增 conversion/calc_buckets_limit_and_offset/README.md:CalcBucketsLimitAndOffset 算子文档 - 新增 math/compare_and_bit_pack/README.md:CompareAndBitPack 算子文档 - 修改 docs/zh/op_list.md:算子列表新增条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3724 | 2 个月前 | |
add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !3724 merge dev into master add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增 TopK、CalcBucketsLimitAndOffset、CompareAndBitPack 三个 AICPU 算子的完整实现,共涉及 28 个文件变更。 ### 1. TopK(math/topk/) 从已有 aclnn 接口扩展为完整 AICPU 算子实现: - 新增 op_graph/topk_proto.h:算子协议定义 - 新增 op_host/topk_infershape.cpp:host 侧 shape 推导 - 新增 op_kernel_aicpu/topk_aicpu.cpp、topk_aicpu.h、topk_aicpu_def.cpp:AICPU kernel 实现及注册 - 新增 op_kernel_aicpu/CMakeLists.txt、op_graph/CMakeLists.txt:构建配置 - 新增 examples/test_geir_topk.cpp:使用示例 - 新增 tests/ut/op_kernel_aicpu/test_topk.cpp:单元测试 - 修改 CMakeLists.txt:添加 UT 测试配置 - 修改 README.md:补充完整算子文档(产品支持情况、接口说明等) ### 2. CalcBucketsLimitAndOffset(conversion/calc_buckets_limit_and_offset/) 全新 AICPU 算子,用于计算 buckets 的 limit 和 offset 值: - 新增 CMakeLists.txt、op_graph/calc_buckets_limit_and_offset_proto.h - 新增 op_kernel_aicpu/calc_buckets_limit_and_offset_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_calc_buckets_limit_and_offset.cpp - 新增 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp - 新增 README.md:算子文档 ### 3. CompareAndBitPack(math/compare_and_bit_pack/) 全新 AICPU 算子,将输入与阈值进行比较并将比较结果的比特位打包为 uint8 输出: - 新增 CMakeLists.txt、op_graph/compare_and_bit_pack_proto.h - 新增 op_kernel_aicpu/compare_and_bit_pack_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_compare_and_bit_pack.cpp - 新增 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp - 新增 README.md:算子文档 ### 4. 文档更新 - 修改 docs/zh/op_list.md:在算子列表中添加 compare_and_bit_pack 等算子条目 ## 关联的Issue #2187 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证三个算子(TopK、CalcBucketsLimitAndOffset、CompareAndBitPack)的 CMakeLists.txt 配置正确,能正常编译构建 2. **单元测试(UT)** - 运行 tests/ut/op_kernel_aicpu/test_topk.cpp,验证 TopK 算子在不同数据类型(float16、float32、int32)和 shape 下的计算正确性 - 运行 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子的功能正确性 - 运行 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子在不同数据类型下的比较和比特打包功能正确性 3. **Example 验证** - 编译并运行 examples/test_geir_topk.cpp,验证 TopK 算子端到端调用流程 - 编译并运行 examples/test_geir_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子端到端调用流程 - 编译并运行 examples/test_geir_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子端到端调用流程 4. **算子加载测试** - 验证三个算子的 AICPU kernel 注册成功,接口可正常调用 ## 文档更新 - 新增 math/topk/README.md:TopK 算子完整文档(产品支持情况、接口说明、约束限制等) - 新增 conversion/calc_buckets_limit_and_offset/README.md:CalcBucketsLimitAndOffset 算子文档 - 新增 math/compare_and_bit_pack/README.md:CompareAndBitPack 算子文档 - 修改 docs/zh/op_list.md:算子列表新增条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3724 | 2 个月前 | |
add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !3724 merge dev into master add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增 TopK、CalcBucketsLimitAndOffset、CompareAndBitPack 三个 AICPU 算子的完整实现,共涉及 28 个文件变更。 ### 1. TopK(math/topk/) 从已有 aclnn 接口扩展为完整 AICPU 算子实现: - 新增 op_graph/topk_proto.h:算子协议定义 - 新增 op_host/topk_infershape.cpp:host 侧 shape 推导 - 新增 op_kernel_aicpu/topk_aicpu.cpp、topk_aicpu.h、topk_aicpu_def.cpp:AICPU kernel 实现及注册 - 新增 op_kernel_aicpu/CMakeLists.txt、op_graph/CMakeLists.txt:构建配置 - 新增 examples/test_geir_topk.cpp:使用示例 - 新增 tests/ut/op_kernel_aicpu/test_topk.cpp:单元测试 - 修改 CMakeLists.txt:添加 UT 测试配置 - 修改 README.md:补充完整算子文档(产品支持情况、接口说明等) ### 2. CalcBucketsLimitAndOffset(conversion/calc_buckets_limit_and_offset/) 全新 AICPU 算子,用于计算 buckets 的 limit 和 offset 值: - 新增 CMakeLists.txt、op_graph/calc_buckets_limit_and_offset_proto.h - 新增 op_kernel_aicpu/calc_buckets_limit_and_offset_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_calc_buckets_limit_and_offset.cpp - 新增 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp - 新增 README.md:算子文档 ### 3. CompareAndBitPack(math/compare_and_bit_pack/) 全新 AICPU 算子,将输入与阈值进行比较并将比较结果的比特位打包为 uint8 输出: - 新增 CMakeLists.txt、op_graph/compare_and_bit_pack_proto.h - 新增 op_kernel_aicpu/compare_and_bit_pack_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_compare_and_bit_pack.cpp - 新增 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp - 新增 README.md:算子文档 ### 4. 文档更新 - 修改 docs/zh/op_list.md:在算子列表中添加 compare_and_bit_pack 等算子条目 ## 关联的Issue #2187 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证三个算子(TopK、CalcBucketsLimitAndOffset、CompareAndBitPack)的 CMakeLists.txt 配置正确,能正常编译构建 2. **单元测试(UT)** - 运行 tests/ut/op_kernel_aicpu/test_topk.cpp,验证 TopK 算子在不同数据类型(float16、float32、int32)和 shape 下的计算正确性 - 运行 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子的功能正确性 - 运行 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子在不同数据类型下的比较和比特打包功能正确性 3. **Example 验证** - 编译并运行 examples/test_geir_topk.cpp,验证 TopK 算子端到端调用流程 - 编译并运行 examples/test_geir_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子端到端调用流程 - 编译并运行 examples/test_geir_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子端到端调用流程 4. **算子加载测试** - 验证三个算子的 AICPU kernel 注册成功,接口可正常调用 ## 文档更新 - 新增 math/topk/README.md:TopK 算子完整文档(产品支持情况、接口说明、约束限制等) - 新增 conversion/calc_buckets_limit_and_offset/README.md:CalcBucketsLimitAndOffset 算子文档 - 新增 math/compare_and_bit_pack/README.md:CompareAndBitPack 算子文档 - 修改 docs/zh/op_list.md:算子列表新增条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3724 | 2 个月前 | |
add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !3724 merge dev into master add aicpu:topk&calc_buckets_limit_and_offset&compare_and_bit_pack Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增 TopK、CalcBucketsLimitAndOffset、CompareAndBitPack 三个 AICPU 算子的完整实现,共涉及 28 个文件变更。 ### 1. TopK(math/topk/) 从已有 aclnn 接口扩展为完整 AICPU 算子实现: - 新增 op_graph/topk_proto.h:算子协议定义 - 新增 op_host/topk_infershape.cpp:host 侧 shape 推导 - 新增 op_kernel_aicpu/topk_aicpu.cpp、topk_aicpu.h、topk_aicpu_def.cpp:AICPU kernel 实现及注册 - 新增 op_kernel_aicpu/CMakeLists.txt、op_graph/CMakeLists.txt:构建配置 - 新增 examples/test_geir_topk.cpp:使用示例 - 新增 tests/ut/op_kernel_aicpu/test_topk.cpp:单元测试 - 修改 CMakeLists.txt:添加 UT 测试配置 - 修改 README.md:补充完整算子文档(产品支持情况、接口说明等) ### 2. CalcBucketsLimitAndOffset(conversion/calc_buckets_limit_and_offset/) 全新 AICPU 算子,用于计算 buckets 的 limit 和 offset 值: - 新增 CMakeLists.txt、op_graph/calc_buckets_limit_and_offset_proto.h - 新增 op_kernel_aicpu/calc_buckets_limit_and_offset_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_calc_buckets_limit_and_offset.cpp - 新增 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp - 新增 README.md:算子文档 ### 3. CompareAndBitPack(math/compare_and_bit_pack/) 全新 AICPU 算子,将输入与阈值进行比较并将比较结果的比特位打包为 uint8 输出: - 新增 CMakeLists.txt、op_graph/compare_and_bit_pack_proto.h - 新增 op_kernel_aicpu/compare_and_bit_pack_aicpu.cpp、.h、_def.cpp - 新增 examples/test_geir_compare_and_bit_pack.cpp - 新增 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp - 新增 README.md:算子文档 ### 4. 文档更新 - 修改 docs/zh/op_list.md:在算子列表中添加 compare_and_bit_pack 等算子条目 ## 关联的Issue #2187 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证三个算子(TopK、CalcBucketsLimitAndOffset、CompareAndBitPack)的 CMakeLists.txt 配置正确,能正常编译构建 2. **单元测试(UT)** - 运行 tests/ut/op_kernel_aicpu/test_topk.cpp,验证 TopK 算子在不同数据类型(float16、float32、int32)和 shape 下的计算正确性 - 运行 tests/ut/op_kernel_aicpu/test_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子的功能正确性 - 运行 tests/ut/op_kernel_aicpu/test_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子在不同数据类型下的比较和比特打包功能正确性 3. **Example 验证** - 编译并运行 examples/test_geir_topk.cpp,验证 TopK 算子端到端调用流程 - 编译并运行 examples/test_geir_calc_buckets_limit_and_offset.cpp,验证 CalcBucketsLimitAndOffset 算子端到端调用流程 - 编译并运行 examples/test_geir_compare_and_bit_pack.cpp,验证 CompareAndBitPack 算子端到端调用流程 4. **算子加载测试** - 验证三个算子的 AICPU kernel 注册成功,接口可正常调用 ## 文档更新 - 新增 math/topk/README.md:TopK 算子完整文档(产品支持情况、接口说明、约束限制等) - 新增 conversion/calc_buckets_limit_and_offset/README.md:CalcBucketsLimitAndOffset 算子文档 - 新增 math/compare_and_bit_pack/README.md:CompareAndBitPack 算子文档 - 修改 docs/zh/op_list.md:算子列表新增条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3724 | 2 个月前 |
CompareAndBitpack
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
- 算子功能:将输入张量x中的每个元素与阈值threshold进行比较,将比较结果(大于为1,否则为0)打包为uint8类型的位域输出。每8个连续输入元素的比较结果打包为一个uint8值。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待比较的输入张量,维度至少为1维。 | FLOAT、FLOAT16、DOUBLE、INT8、INT16、INT32、INT64、BOOL | ND |
| threshold | 输入 | 标量阈值,用于与x中的元素进行比较。 | FLOAT、FLOAT16、DOUBLE、INT8、INT16、INT32、INT64、BOOL | ND |
| y | 输出 | 打包后的位域输出张量,最内维大小为输入最内维的1/8。 | UINT8 | ND |
约束说明
- threshold必须为标量(scalar)
- x必须至少为一维张量(vector或更高维度),不支持标量输入
- x的最内维(最后一个维度)大小必须能被8整除
- x和threshold的数据类型必须一致
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式接口 | test_geir_compare_and_bit_pack | 通过算子IR接口方式调用CompareAndBitpack算子。 |