| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 9 天前 | |
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 个月前 | |
整改TopK算子重复定义问题 Co-authored-by: caoyan_huawei<caoyan11@huawei.com> # message auto-generated for no-merge-commit merge: !5211 merge cy_br_829_topk_proto into master 整改TopK算子重复定义问题 Created-by: caoyan_huawei Commit-by: caoyan_huawei Merged-by: cann-robot Description: ## 描述 本次pr主要解决nn仓和math重复注册TopK算子的问题,由于当前pr:https://gitcode.com/cann/ops-math/pull/3724中已经关联了aicpu实现,故将nn仓的原型注册删除,将topk_onnx_plugin.cpp文件迁移到math仓; ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2969 ## 测试 ST,UT,二级冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5211 | 29 天前 | |
修改Aicore下indicesOut的生成方式,在不需要indicesOut的AiCpu执行路径下不再生成,提升性能 Co-authored-by: LetsAiGo<xinhuaqing@huawei.com> # message auto-generated for no-merge-commit merge: !5435 merge master into master 修改Aicore下indicesOut的生成方式,在不需要indicesOut的AiCpu执行路径下不再生成,提升性能 Created-by: LetsAiGo Commit-by: LetsAiGo Merged-by: cann-robot Description: ## 描述 indicesOut 只在满足 Aicore 条件时使用,当前无论是否满足Aicore条件都会默认生成,导致在不使用时也生成,造成无效显存开销,降低性能 优化为:只在满足Aicore条件时生成 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3082 ## 测试 客户侧单元测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5435 | 22 天前 | |
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 个月前 | |
fix topk_infershape's issue Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !5020 merge dev_extra into master fix topk_infershape's issue Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 修复两个算子的 Host InferShape 约束校验缺陷: ### 1. TopK 算子( math/topk/op_host/topk_infershape.cpp)— 共三处改动 1. **InferShapeForTopKCommon 返回类型 bool → graphStatus**(对应 Issue #2826) - 原实现返回 bool,内部 return GRAPH_FAILED(0xffffffff)隐式转 true,外层回调再转回 graphStatus 得 1,既非 GRAPH_SUCCESS(0) 也非 GRAPH_FAILED(-1),破坏错误码契约。 - 改为 graphStatus 后直接透传,GRAPH_SUCCESS → 0,GRAPH_FAILED → -1。 2. **补 dim 下界校验**(对应 Issue #2825) - 原实现负归一化后只校验上界 >= dim_size,缺失下界检查。当 dim < -rank(如 rank=2 传 dim=-3)时,归一化后 sorted_axis 仍为负,绕过校验,循环 i == sorted_axis 永不命中,输出 shape 等于输入 shape(k 未生效),却返回 GRAPH_SUCCESS,非法图节点通过 Host shape 推导阶段。 - 校验条件改为 sorted_axis < 0 || sorted_axis >= dim_size,对齐文档约束 dim ∈ [-rank, rank)。 3. **补 k 范围校验**(对齐文档约束 k ∈ [0, size(dim)]) - 新增 k < 0 拒绝。 - 新增 k > size(dim) 拒绝;当 dim 维为动态 shape(值为 -1)时跳过,避免误拒动态 shape 场景。 - InferShape 原本对 k 完全未校验,靠 AICPU kernel 兜底;补齐后可在图编译期即拒绝非法 k。 ### 2. TopKPQDistance 算子(math/top_k_pq_distance/op_host/top_k_pq_distance_infershape.cpp)— 对应 Issue #2824 - 原实现只读取属性 k 并无条件将三个输出 shape 设为 {k},既不校验 k,也不读取/校验 group_size。导致 k<=0 产出零维或负维([-1])输出、group_size<=0 被放行,与 AICPU Kernel 入口的 k_ > 0 / group_size_ > 0 契约不一致,非法属性在图形状阶段被报告为成功,错误延迟到执行阶段。 - 补 ATTR_IDX_GROUP_SIZE 常量并读取 group_size 属性 + 空指针检查。 - 新增 k <= 0 拒绝,返回 GRAPH_FAILED,不再产出零维/负维输出。 - 新增 group_size <= 0 拒绝,返回 GRAPH_FAILED,对齐 Kernel 入口契约。 - 注:依赖运行时 actual_count 的整除与总量约束(actual_count % group_size == 0、k <= actual_count 总和)仍由 AICPU Kernel 兜底,编译态 infershape 拿不到 actual_count,不在此 PR 范围。 ## 关联的Issue - #2824 TopKPQDistance Host InferShape 未校验非正 k 和 group_size - #2825 TopK Host InferShape 接受小于 -rank 的非法 dim - #2826 TopK Host InferShape 将 GRAPH_FAILED 收窄为非标准状态码 1 ## 测试 1. **TopK 编译构建测试** - rm -rf build && bash build.sh -u --ophost --soc=ascend910b --ops=topk -j16 - 验证:exit code 0,[100%] Built target math_op_host_ut,[ PASSED ] 0 tests.(topk 无 infershape UT,0 用例属正常)。 2. **TopKPQDistance 编译构建测试** - rm -rf build && bash build.sh -u --ophost --soc=ascend910b --ops=top_k_pq_distance -j16 - 验证:exit code 0,[100%] Built target math_op_host_ut,[ PASSED ] 0 tests.(top_k_pq_distance 无 infershape UT,0 用例属正常)。 3. **约束校验路径走查**(代码逻辑分析) - TopK:dim=-3, rank=2 → 归一化得 -1 → < 0 命中 → GRAPH_FAILED(-1)。 - TopK:dim=2, rank=2 → 归一化后 2 → >= 2 命中 → GRAPH_FAILED(-1,不再被 bool 收窄为 1)。 - TopK:k=-1 → GRAPH_FAILED;k=10, size(dim)=5 → GRAPH_FAILED;k=10, size(dim)=-1(动态)→ 跳过上界检查,正常推导。 - TopKPQDistance:k=0 → GRAPH_FAILED(不再产出 [0]);k=-1 → GRAPH_FAILED(不再产出 [-1] 负维度)。 - TopKPQDistance:group_size=0/-1 → GRAPH_FAILED(不再放行)。 4. **正常路径回归** - TopK:dim=-1, rank=2, k=3, x=[4,5] → 输出 [4,3],GRAPH_SUCCESS;dim=1, rank=2, k=5, x=[4,5] → 输出 [4,5],GRAPH_SUCCESS。 - TopKPQDistance:k=3, group_size=2 → GRAPH_SUCCESS,三个输出均为 [3]。 ## 文档更新 本次未涉及文档变更。文档约束 dim ∈ [-rank, rank)、k ∈ [0, size(dim)] 原已存在于 math/topk/README.md;k 不能为 0、group_size 不能为 0、actual_count 必须能被 group_size 整除 原已存在于 math/top_k_pq_distance/README.md。本次改动使 InferShape 代码 enforcing 这些已有约束。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5020 | 1 个月前 | |
fix(aicpu): 整改代码质量告警 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5881 merge fix-aicpu-codecheck-warnings into master fix(aicpu): 整改代码质量告警 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 整改部分 AICPU 算子的代码质量告警: - 将可替代的 reinterpret_cast 调整为 static_cast。 - 为 lambda 显式列出捕获变量,避免默认引用捕获。 - 补充成员函数 const 限定、析构函数 override 以及头文件内函数的 inline 限定。 - 修正有符号整数左移、状态码隐式布尔转换及指针顶层 const 等告警。 - 同步头文件声明与实现签名,不改变算子功能语义。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3264 ## 测试 - cmake --build build --target aicpu_kernels -j8:通过,成功生成 libmath_aicpu_kernels.so。 - 对本次修改文件执行 pre-commit run --files ...:全部通过,包括 clang-format、codespell 和 OAT 检查。 - git diff --check:通过。 ## 文档更新 无文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AICPU 代码质量告警整改 See merge request: cann/ops-math!5881 | 10 天前 | |
剥离math下op_host/op_api到op_api Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4246 merge master into master 剥离math下op_host/op_api到op_api Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更主要对 math 目录下多个算子的目录结构进行扁平化整理:将原先嵌套在 op_host/op_api/ 中的 API 实现文件直接提升到 op_api/ 层级 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2392 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4246 | 2 个月前 | |
fix(build): 修复UT构建失败问题 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !5145 merge master into master fix(build): 修复UT构建失败问题 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5145 | 1 个月前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 9 天前 |
TopK
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:沿指定维度找出输入张量中最大或最小的k个元素及其索引。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量。 | FLOAT16、FLOAT、DOUBLE、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BFLOAT16 | ND |
| k | 输入 | 要取出的元素个数。 | INT32 | ND |
| sorted | 属性 | 是否对输出结果排序,默认为true。 | Bool | - |
| largest | 属性 | 是否取最大值,默认为true。若为false则取最小值。 | Bool | - |
| dim | 属性 | 指定沿哪个维度进行操作,默认为-1(最后一维)。 | Int | - |
| values | 输出 | 输出的top-k个元素值。 | FLOAT16、FLOAT、DOUBLE、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BFLOAT16 | ND |
| indices | 输出 | 输出的top-k个元素在输入张量中的索引。 | INT32 | ND |
约束说明
- dim必须在[-x维度数, x维度数)范围内
- k必须大于等于0且小于等于x在dim维度上的大小
- BFLOAT16类型仅在特定产品上支持
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式接口 | test_geir_topk | 通过算子IR接口方式调用TopK算子。 |