| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8571 merge doc into master docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新16个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4785 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8571 | 2 个月前 | |
refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !8840 merge move-opapi into master refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 7 个算子的 op_api 实现从 op_host/op_api/ 子目录移动至算子根目录 op_api/,并将算子根目录 CMakeLists.txt 由递归式 file(GLOB) + add_subdirectory 统一为 add_modules_sources 构建方式,同时同步更新所有相关头文件引用路径。 涉及的算子: - index/apply_top_k_top_p_with_sorted - index/embedding_bag - index/linear_index - index/linear_index_v2 - loss/fused_cross_entropy_loss_with_max_sum - quant/fake_quant_affine_cachemask - rnn/single_layer_lstm_grad ### 改动原因 ops-nn 仓库中部分算子的 op_api 代码位于 op_host/op_api/ 层级之下,与其他算子的组织方式不一致,且构建配置分散在 op_host/CMakeLists.txt 中。本改动将 op_api 目录统一上移至算子根目录,并统一算子构建配置。 ### 改动方法 1. 将 7 个算子的 op_host/op_api/ 目录整体移动至算子根目录 op_api/(纯移动,内容不变); 2. 删除 7 个 op_host/CMakeLists.txt,算子根目录 CMakeLists.txt 统一改为调用 add_modules_sources(HOSTNAME ${OPHOST_NAME} MODE PRIVATE DIR ${CMAKE_CURRENT_SOURCE_DIR} OPTYPE <op_name> ACLNNTYPE aclnn_exclude); 3. 同步更新头文件引用路径:index/index_put_v2/op_api/aclnn_index_put_impl.cpp(linear_index_v2.h)、index/scatter_elements_v2/op_api/aclnn_scatter.cpp(linear_index.h)及 6 个 UT 测试文件; 4. 更新 classify_rule.yaml 中 linear_index_v2 的 op_api 路径(op_host/op_api/ → op_api/); 5. 格式修正:3 个文件补充末尾换行符,embedding_bag.cpp 注释格式调整。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/4875 ## 测试 - 变更均为目录结构移动与构建配置统一,无算法逻辑改动;UT 测试文件仅同步头文件引用路径。 - 依赖 CI 构建验证(未在 PR 中提供其他测试信息)。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构(op_api 目录结构整理与构建配置统一) ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8840 | 2 个月前 | |
fix(geir-test): 修复 geir 测试日志级别与描述不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9003 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 geir 测试日志级别与描述不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 14 个算子 geir 测试文件中日志级别与描述不一致的问题:3 类失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将这 3 类失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试文件统一使用 printf("%s - LEVEL - [XIR]: message") 格式输出日志。在以下 3 类失败分支中,消息内容明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed、Session add ir compute graph failed、Output verification FAILED,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed ### 改动方法 仅将上述 3 类失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 ### 涉及文件(每个 3 处,共 42 处,14 文件 +42 -42) - activation/log_softmax_v2 - activation/confusion_softmax_grad - index/broadcast_gradient_args - norm/add_layer_norm_quant - norm/add_rms_norm_dynamic_quant_v2 - norm/batch_norm - norm/group_norm_v2 - norm/instance_norm - norm/layer_norm - norm/layer_norm_v3 - norm/sync_batch_norm_backward_elemt - norm/sync_batch_norm_backward_reduce - norm/sync_batch_norm_gather_stats - norm/sync_bn_training_update ## 关联的Issue - #4973 ## 测试 - 仅日志级别字符串修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:仅 - INFO - → - ERROR -,消息文本与参数不变。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9003 | 1 个月前 | |
fix: update bucketize example and avg pool doc Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !7852 merge nnbugfix into master fix: update bucketize example and avg pool doc Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 本次修改包含两处迁仓检视整改: 1. 将 AvgPool1DAvgMatrix 的 proto 输入 format 说明补全为实现实际支持的 NCHW/NHWC/NC1HWC0,避免资料约束描述不完整。 2. 删除 Bucketize GEIR 示例中未使用的 kExpectedBucket 常量,清理冗余代码。 ## 关联的Issue 关联 Issue:https://gitcode.com/cann/ops-nn/issues/4264 ## 测试 - 执行 pre-commit run --files index/bucketize/examples/test_geir_bucketize.cpp pooling/avg_pool1d_avg_matrix/op_graph/avg_pool1d_avg_matrix_proto.h,结果通过。 - 修改 format 表达后,执行 pre-commit run --files pooling/avg_pool1d_avg_matrix/op_graph/avg_pool1d_avg_matrix_proto.h,结果通过。 - 执行 bash build.sh --pkg --ops=bucketize --vendor_name=bucketize -j8,自定义包构建通过。 - 执行 ./build_out/cann-ops-nn-bucketize_linux-aarch64.run --force,自定义包安装通过。 - 设置 ASCEND_CUSTOM_OPP_PATH=/home/developer/Ascend/cann-9.2.0/opp/vendors/bucketize_nn 后,执行 bash build.sh --run_example bucketize graph cust --vendor_name=bucketize,结果通过。 - 日志中确认自定义 AICPU 路径:出现 CUSTAICPUKernel、libnn_aicpu_kernels.so 和 InitAicpuTask node[bucketize]。 ## 文档更新 更新 pooling/avg_pool1d_avg_matrix/op_graph/avg_pool1d_avg_matrix_proto.h 中的 format 说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7852 | 2 个月前 | |
bucketizev2融合规则校验 Co-authored-by: jinpenghe<hejinpeng5@huawei.com> # message auto-generated for no-merge-commit merge: !8819 merge pcie into master bucketizev2融合规则校验 Created-by: jinpenghe Commit-by: jinpenghe Merged-by: cann-robot Description: ## 描述 1、BucketizeFussionPass增加属性校验,当获取属性失败时,走回bucketize 2、boudaries为空tensor场景,走全功能simt模板 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4953 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试   <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8819 | 1 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
style: 补充 pre-commit 检查整改(EOF/clang-format 格式修复) | 1 个月前 | |
fix(celu,data_format_dim_map): def-driven dtype separation Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !8852 merge fix/data-format-dim-map-def-driven-dtype-infer-remote-verified into master fix(celu,data_format_dim_map): def-driven dtype separation Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 celu,data_format_dim_map 算子共性问题修改 ## 关联的issue []https://gitcode.com/cann/ops-nn/issues/4870 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8852 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !8840 merge move-opapi into master refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 7 个算子的 op_api 实现从 op_host/op_api/ 子目录移动至算子根目录 op_api/,并将算子根目录 CMakeLists.txt 由递归式 file(GLOB) + add_subdirectory 统一为 add_modules_sources 构建方式,同时同步更新所有相关头文件引用路径。 涉及的算子: - index/apply_top_k_top_p_with_sorted - index/embedding_bag - index/linear_index - index/linear_index_v2 - loss/fused_cross_entropy_loss_with_max_sum - quant/fake_quant_affine_cachemask - rnn/single_layer_lstm_grad ### 改动原因 ops-nn 仓库中部分算子的 op_api 代码位于 op_host/op_api/ 层级之下,与其他算子的组织方式不一致,且构建配置分散在 op_host/CMakeLists.txt 中。本改动将 op_api 目录统一上移至算子根目录,并统一算子构建配置。 ### 改动方法 1. 将 7 个算子的 op_host/op_api/ 目录整体移动至算子根目录 op_api/(纯移动,内容不变); 2. 删除 7 个 op_host/CMakeLists.txt,算子根目录 CMakeLists.txt 统一改为调用 add_modules_sources(HOSTNAME ${OPHOST_NAME} MODE PRIVATE DIR ${CMAKE_CURRENT_SOURCE_DIR} OPTYPE <op_name> ACLNNTYPE aclnn_exclude); 3. 同步更新头文件引用路径:index/index_put_v2/op_api/aclnn_index_put_impl.cpp(linear_index_v2.h)、index/scatter_elements_v2/op_api/aclnn_scatter.cpp(linear_index.h)及 6 个 UT 测试文件; 4. 更新 classify_rule.yaml 中 linear_index_v2 的 op_api 路径(op_host/op_api/ → op_api/); 5. 格式修正:3 个文件补充末尾换行符,embedding_bag.cpp 注释格式调整。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/4875 ## 测试 - 变更均为目录结构移动与构建配置统一,无算法逻辑改动;UT 测试文件仅同步头文件引用路径。 - 依赖 CI 构建验证(未在 PR 中提供其他测试信息)。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构(op_api 目录结构整理与构建配置统一) ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8840 | 2 个月前 | |
feat: 新增AscendQuantV2/AscendAntiQuantV2/DynamicQuant/EmbeddingDenseGrad算子host fallback支持 Co-authored-by: yangjinhan<yangjinhan@huawei.com> # message auto-generated for no-merge-commit merge: !8392 merge main into master feat: 新增AscendQuantV2/AscendAntiQuantV2/DynamicQuant/EmbeddingDenseGrad算子host fallback支持 Created-by: Ruyue1550 Commit-by: yangjinhan Merged-by: cann-robot Description: ## 描述 从 canndev 仓库迁移 fallback 实现至 ops-nn,为 4 个算子新增 host fallback 执行能力(均通过 CANN_OPS_OPB_SYN_EXEC_ACLNN 调用 aclnn API,并以 IMPL_OP(...).OpExecuteFunc(...) 注册执行函数): - **AscendQuantV2**(quant/ascend_quant_v2/op_graph/ascend_quant_v2_fallback.cpp):调用 aclnnAscendQuant,入参 x/scale/offset,属性 sqrt_mode/round_mode/dst_dtype。 - **AscendAntiQuantV2**(quant/ascend_anti_quant_v2/op_graph/ascend_anti_quant_v2_fallback.cpp):调用 aclnnAscendAntiQuant,入参 x/scale/offset,属性 dst_dtype/sqrt_mode。 - **DynamicQuant**(quant/dynamic_quant/op_graph/dynamic_quant_fallback.cpp):调用 aclnnDynamicQuantV2,入参 x/smooth_scales/group_index。 - **EmbeddingDenseGrad**(index/embedding_dense_grad/op_graph/embedding_dense_grad_fallback.cpp):调用 aclnnEmbeddingDenseBackward,入参 grad/indices 等。 主要改动: - 各算子 op_graph 目录新增 *_fallback.cpp,统一使用 op_fallback.h 头文件与 OP_CHECK_IF 错误处理宏。 - 版权声明更新为 CANN Open Software License Agreement Version 2.0。 - 现有 CMake 自动收集 *_fallback.cpp,无需修改构建配置。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/4868 ## 测试 已完成以下静态检查: - 确认不存在 fallback_common.h、fallback_opapi.h、op_log.h 和旧版 OP_CHECK 残留。 - 确认 4 个算子的执行函数、CANN_OPS_OPB_SYN_EXEC_ACLNN 调用和 IMPL_OP 注册均存在。 - git diff --check 检查通过。 本地环境缺少完整的 CANN 构建工具链,编译和运行验证待 CI 完成。 ## 文档更新 无,本 PR 仅新增算子 fallback 实现文件。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写此PR描述 See merge request: cann/ops-nn!8392 | 2 个月前 | |
embeddingdensegrad 通过使用inplacezerolike解oom问题 Co-authored-by: duxinlei<duxinlei@h-partners.com> # message auto-generated for no-merge-commit merge: !8635 merge embeddingdensegrad2 into master embeddingdensegrad 通过使用inplacezerolike解oom问题 Created-by: duxinlei Commit-by: duxinlei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> embeddingdensegrad 通过使用inplacezerolike解oom问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #4932 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 进行了st测试 david冒烟 oom测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8635 | 1 个月前 | |
nn仓打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8207 merge master into master nn仓打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8207 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
nn仓打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8207 merge master into master nn仓打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8207 | 2 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
AscendC接口整改 Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !8597 merge master into master AscendC接口整改 Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与对外接口文档保持一致,修改本组负责算子对应接口。修改后各算子二进制和修改前一致 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8597 | 1 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
修改aclnnIndexPutImpl非连续场景索引广播逻辑 Co-authored-by: zyf0712<zhangyufei63@huawei.com> # message auto-generated for no-merge-commit merge: !8518 merge NonConBroadcast into master 修改aclnnIndexPutImpl非连续场景索引广播逻辑 Created-by: zyf0712 Commit-by: zyf0712 Merged-by: cann-robot Description: ## 描述 修改aclnnIndexPutImpl算子非连续场景下索引广播逻辑 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5029 ## 测试 本地ST、冒烟均通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8518 | 1 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
AscendC接口整改 Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !8597 merge master into master AscendC接口整改 Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与对外接口文档保持一致,修改本组负责算子对应接口。修改后各算子二进制和修改前一致 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8597 | 1 个月前 | |
Migrate index AICPU shape operators Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7519 merge migrate-index-to-addr-aicpu into master Migrate index AICPU shape operators Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将三个 AICPU shape 类算子从源仓迁移至 ops-nn 仓库,统一算子仓管理,共新增 43 个文件,并同步更新算子清单 docs/zh/op_list.md: 1. **IndexToAddr**:根据块索引、原始矩阵 shape、块 shape 和基地址信息,生成块内每一行对应的地址表。输入 base_addr(shape=[2])与块索引 x(shape=[2]),输出地址表 shape 为 [block_size[0], 4],每行 [rank_id, base_addr[0]+bias_addr, base_addr[1]+bias_addr, row_size*dtype_size],支持 INT64/UINT64。 2. **NonZeroWithValueShape**:根据 NonZeroWithValue 的 count 输入更新 value/index 输出 shape,分别置为 [count[0]] 与 [2, count[0]]。 3. **NonZeroWithValueShapeV2**:V2 版本,在 V1 基础上新增 GetInputTypeAndCheck 显式校验 index/count 必须为 INT32,输出语义与 V1 一致。 每个算子按 ops-nn 标准目录结构组织,包含 op_graph(IR 原型)、op_host(infershape)、op_kernel_aicpu(kernel 实现与 REGISTER_CPU_KERNEL 注册)、examples(图模式调用样例)、tests/ut(单元测试)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4163 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 对三个算子(IndexToAddr / NonZeroWithValueShape / NonZeroWithValueShapeV2)分别执行各级 CMakeLists.txt 配置与编译,验证新增 CMake 配置变更正确,算子可正常构建。 2. **算子加载/注册验证** - 验证 REGISTER_CPU_KERNEL 注册成功,三个算子可被框架正确识别与加载。 3. **InferShape 验证** - 验证 op_host/*_infershape.cpp 输出 shape 推导:IndexToAddr 输出 [block_size[0], 4];NonZeroWithValueShape[V2] 输出 out_value=[count]、out_index=[2, count]。 4. **单元测试** - 运行 tests/ut/op_kernel_aicpu/test_*.cpp,覆盖 INT64/UINT64(IndexToAddr)、INT32 校验(NonZeroWithValueShapeV2)等数据类型分支与参数校验逻辑。 5. **图模式接口调用验证** - 运行 examples/test_geir_*.cpp,通过算子 IR 构图方式调用三个算子,验证端到端功能与输出正确性。 6. **参数校验测试** - 覆盖 Check() 中的边界场景:base_addr/x 数据类型一致且 shape=[2]、ori_shape/block_size 为 2 元素、block_size[0]*4 <= output.NumElements()、storage mode 仅支持 Matrix、V2 版本 index/count 必须为 DT_INT32、count 至少 1 个元素等。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中三个算子条目正确显示,分类为 index,类型为 AI CPU,且 README 链接可达。 ## 文档更新 - 新增 index/index_to_addr/README.md、index/non_zero_with_value_shape/README.md、index/non_zero_with_value_shape_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2 三个算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7519 | 2 个月前 | |
feat(index): support native InplaceAdd on Ascend 950 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !8556 merge feature/inplace-add-ascend950 into master feat(index): support native InplaceAdd on Ascend 950 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 - 新增 TensorFlow/GE 图语义的 InplaceAdd(x, indices, v) -> y 算子,并为 Ascend 950PR/950DT 提供原生 AI Core 实现。算子按 indices 更新 x 的第 0 维切片,输出 y 与 x 同 Shape、同 dtype 并共享存储。 - x、v、y 支持 1~8 维以及 FLOAT16、FLOAT、BFLOAT16、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、COMPLEX32、COMPLEX64 共 13 种 dtype;indices 为一维 INT32。 - 索引按 x.shape[0] 做数学模归一,支持负索引和超范围正索引。归一化后的重复索引仅保证安全执行,其数值结果不作定义。 - 新增图 IR、InferShape、TensorFlow parser、Host tiling、arch35 kernel、预编译 binary 配置、GE 图调用样例、Host UT、TTK ST 及确定性输入/Golden 资产。本算子不新增 aclnn 接口;现有同名 aclnnInplaceAdd 为逐元素/Broadcast Add,语义不同。 - Kernel 采用两相实现:先按扁平区间通过双缓冲 DataCopy 完成 y = x,经 SyncAll() 跨核同步后,再按 K * rowSize 扁平切分执行 SIMT 索引累加。Host tiling 设置 batch schedule,保证参与同步的核同时驻留。 - Ascend 950 上关闭旧的 AInplaceAddFusionPass 改写,保留原始 InplaceAdd 节点并调度本次新增的原生实现;旧平台继续使用 TensorMove + ScatterAdd 兼容路径。 ## 关联的Issue #4938 ## 测试 - Ascend 950 package 构建、部署和部署产物哈希核验通过。 - TTK kernel 泛化回归 1000/1000 PASS,全部命中部署 release binary,精度及 memory OOB 检查通过;13 种 dtype、rank 1~8、空 Tensor、负索引、正向回绕及整数/浮点边界均有覆盖。 - 重复索引安全用例 13/13 PASS;TTK ST 冒烟 23/23 PASS。 - Host InferShape/Tiling UT 51/51 PASS。 - AInplaceAddFusionPass 定向 UT 11/11 PASS:Ascend 950 返回 GRAPH_NOT_CHANGED 并保留 InplaceAdd;旧平台 FLOAT/FLOAT16/BF16/INT32 等兼容融合用例继续通过。 - 使用同一 FLOAT GE 图、同一 CANN/vendor 环境完成严格 A/B:修改前 match_times=1, effect_times=1,图被改写为 TensorMove + ScatterAdd 并运行失败;修改后 match_times=1, effect_times=0,图运行成功。 - 修改后 profiling 仅包含 InplaceAdd / MIX_AIV,未出现 TensorMove 或 ScatterAdd,确认执行原生 Ascend C 路径。 - 本地 pre-push 快速门禁通过:JIT build、ophost UT、opgraph UT、opkernel UT、Ascend 950 package 全部 PASS。 - pre-commit(clang-format、codespell、OAT)和改动 Markdown 链接检查通过。 ## 文档更新 - 新增 index/inplace_add/README.md,说明功能、规格、索引取模语义、空 Tensor、重复索引约束、产品差异和 GE 图调用方式。 - 更新 docs/zh/op_list.md 登记 InplaceAdd。 - README 明确 Ascend 950 使用原生 AI Core 实现且不执行旧融合改写;旧平台保留兼容融合及对应 dtype 范围。 - GE 图样例使用 FLOAT,能够直接检测 Ascend 950 是否错误进入旧融合路径。 ## 类型标签 - [x] Bug修复 - [x] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8556 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
refactor: 统一 arch32 → arch22 命名(index/pooling/conv) Co-authored-by: chen-xing-yu<chenxingyu18@huawei.com> # message auto-generated for no-merge-commit merge: !8210 merge refactor/arch32_to_arch22 into master refactor: 统一 arch32 → arch22 命名(index/pooling/conv) Created-by: chenxingyu18 Commit-by: chen-xing-yu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将 index/、pooling/、conv/ 下所有 arch32 目录与引用统一改为 arch22,与全仓主流命名约定对齐(arch22 用于 ascend910b/910_93,arch35 用于 ascend950)。 - 目录重命名 arch32 → arch22(op_host/op_tiling、op_kernel、tests/ut 等) - 文件内容:include 路径、CMakeLists 的 SUPPORT_TILING_DIR、注释中的 arch32 → arch22 - arch35 目录与引用未受影响 - 顺带修复两个被禁用(main() 提前 return 0)的 eager example:index_add、scatter_nd_update ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> #4493 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 基于 ascend910b(CANN 9.1.0 / 910B3)完成统一打包构建 + eager 验证,涉及算子 index_fill、scatter_nd_update、masked_scatter、adaptive_max_pool3d(_grad)、max_pool3d_grad_with_argmax、avg_pool3_d、inplace_index_add_with_sorted、conv3d_backprop_filter_v2、conv3d_backprop_input_v2、conv3d_transpose_v2 均验证通过;并用改名测试(移除 vendor kernel 后 example 失败)确认跑的是改名后的实现而非 stock CANN。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:命名统一(arch32 → arch22) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8210 | 2 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
index_add aclnn A5+deterministic into index_put Co-authored-by: humingliao<liaohuming@huawei.com> # message auto-generated for no-merge-commit merge: !8916 merge master into master index_add aclnn A5+deterministic into index_put Created-by: liaohuming Commit-by: humingliao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index_add为了解决A5确定性问题,在pta中将其改到了index_put中,导致某些场景走不进做过性能优化的inplace_index_add_with_sorted,现在将pta的修改下沉到aclnn中,保持原走进inplace_index_add_with_sorted的路径。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4990 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8916 | 1 个月前 | |
fix(update Ascend950 golden specs):HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子golden优化 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !8577 merge master into master fix(update Ascend950 golden specs):HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子golden优化 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子按照新的golden要求,优化golden代码 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub:golden验证OK,已完成相应算子的泛化用例验证。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8577 | 2 个月前 | |
docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8571 merge doc into master docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新16个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4785 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8571 | 2 个月前 | |
refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !8840 merge move-opapi into master refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 7 个算子的 op_api 实现从 op_host/op_api/ 子目录移动至算子根目录 op_api/,并将算子根目录 CMakeLists.txt 由递归式 file(GLOB) + add_subdirectory 统一为 add_modules_sources 构建方式,同时同步更新所有相关头文件引用路径。 涉及的算子: - index/apply_top_k_top_p_with_sorted - index/embedding_bag - index/linear_index - index/linear_index_v2 - loss/fused_cross_entropy_loss_with_max_sum - quant/fake_quant_affine_cachemask - rnn/single_layer_lstm_grad ### 改动原因 ops-nn 仓库中部分算子的 op_api 代码位于 op_host/op_api/ 层级之下,与其他算子的组织方式不一致,且构建配置分散在 op_host/CMakeLists.txt 中。本改动将 op_api 目录统一上移至算子根目录,并统一算子构建配置。 ### 改动方法 1. 将 7 个算子的 op_host/op_api/ 目录整体移动至算子根目录 op_api/(纯移动,内容不变); 2. 删除 7 个 op_host/CMakeLists.txt,算子根目录 CMakeLists.txt 统一改为调用 add_modules_sources(HOSTNAME ${OPHOST_NAME} MODE PRIVATE DIR ${CMAKE_CURRENT_SOURCE_DIR} OPTYPE <op_name> ACLNNTYPE aclnn_exclude); 3. 同步更新头文件引用路径:index/index_put_v2/op_api/aclnn_index_put_impl.cpp(linear_index_v2.h)、index/scatter_elements_v2/op_api/aclnn_scatter.cpp(linear_index.h)及 6 个 UT 测试文件; 4. 更新 classify_rule.yaml 中 linear_index_v2 的 op_api 路径(op_host/op_api/ → op_api/); 5. 格式修正:3 个文件补充末尾换行符,embedding_bag.cpp 注释格式调整。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/4875 ## 测试 - 变更均为目录结构移动与构建配置统一,无算法逻辑改动;UT 测试文件仅同步头文件引用路径。 - 依赖 CI 构建验证(未在 PR 中提供其他测试信息)。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构(op_api 目录结构整理与构建配置统一) ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8840 | 2 个月前 | |
refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !8840 merge move-opapi into master refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 7 个算子的 op_api 实现从 op_host/op_api/ 子目录移动至算子根目录 op_api/,并将算子根目录 CMakeLists.txt 由递归式 file(GLOB) + add_subdirectory 统一为 add_modules_sources 构建方式,同时同步更新所有相关头文件引用路径。 涉及的算子: - index/apply_top_k_top_p_with_sorted - index/embedding_bag - index/linear_index - index/linear_index_v2 - loss/fused_cross_entropy_loss_with_max_sum - quant/fake_quant_affine_cachemask - rnn/single_layer_lstm_grad ### 改动原因 ops-nn 仓库中部分算子的 op_api 代码位于 op_host/op_api/ 层级之下,与其他算子的组织方式不一致,且构建配置分散在 op_host/CMakeLists.txt 中。本改动将 op_api 目录统一上移至算子根目录,并统一算子构建配置。 ### 改动方法 1. 将 7 个算子的 op_host/op_api/ 目录整体移动至算子根目录 op_api/(纯移动,内容不变); 2. 删除 7 个 op_host/CMakeLists.txt,算子根目录 CMakeLists.txt 统一改为调用 add_modules_sources(HOSTNAME ${OPHOST_NAME} MODE PRIVATE DIR ${CMAKE_CURRENT_SOURCE_DIR} OPTYPE <op_name> ACLNNTYPE aclnn_exclude); 3. 同步更新头文件引用路径:index/index_put_v2/op_api/aclnn_index_put_impl.cpp(linear_index_v2.h)、index/scatter_elements_v2/op_api/aclnn_scatter.cpp(linear_index.h)及 6 个 UT 测试文件; 4. 更新 classify_rule.yaml 中 linear_index_v2 的 op_api 路径(op_host/op_api/ → op_api/); 5. 格式修正:3 个文件补充末尾换行符,embedding_bag.cpp 注释格式调整。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/4875 ## 测试 - 变更均为目录结构移动与构建配置统一,无算法逻辑改动;UT 测试文件仅同步头文件引用路径。 - 依赖 CI 构建验证(未在 PR 中提供其他测试信息)。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构(op_api 目录结构整理与构建配置统一) ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8840 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8369 merge master into master 打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 nn仓打标签 ## 关联的Issue 关联Issue [#4600](https://gitcode.com/cann/ops-nn/issues/4600) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8369 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
AscendC接口整改 Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !8597 merge master into master AscendC接口整改 Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与对外接口文档保持一致,修改本组负责算子对应接口。修改后各算子二进制和修改前一致 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8597 | 1 个月前 | |
InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8723 merge fix/op-binary-json-missing into master InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;MultilabelMarginLoss A5 独立 tiling 与归约精度;InstanceNormGrad UB 记账与缓冲下发;8 算子 golden 适配三方对比 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4818 ## 测试 ut/st ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8723 | 2 个月前 | |
Migrate index AICPU shape operators Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7519 merge migrate-index-to-addr-aicpu into master Migrate index AICPU shape operators Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将三个 AICPU shape 类算子从源仓迁移至 ops-nn 仓库,统一算子仓管理,共新增 43 个文件,并同步更新算子清单 docs/zh/op_list.md: 1. **IndexToAddr**:根据块索引、原始矩阵 shape、块 shape 和基地址信息,生成块内每一行对应的地址表。输入 base_addr(shape=[2])与块索引 x(shape=[2]),输出地址表 shape 为 [block_size[0], 4],每行 [rank_id, base_addr[0]+bias_addr, base_addr[1]+bias_addr, row_size*dtype_size],支持 INT64/UINT64。 2. **NonZeroWithValueShape**:根据 NonZeroWithValue 的 count 输入更新 value/index 输出 shape,分别置为 [count[0]] 与 [2, count[0]]。 3. **NonZeroWithValueShapeV2**:V2 版本,在 V1 基础上新增 GetInputTypeAndCheck 显式校验 index/count 必须为 INT32,输出语义与 V1 一致。 每个算子按 ops-nn 标准目录结构组织,包含 op_graph(IR 原型)、op_host(infershape)、op_kernel_aicpu(kernel 实现与 REGISTER_CPU_KERNEL 注册)、examples(图模式调用样例)、tests/ut(单元测试)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4163 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 对三个算子(IndexToAddr / NonZeroWithValueShape / NonZeroWithValueShapeV2)分别执行各级 CMakeLists.txt 配置与编译,验证新增 CMake 配置变更正确,算子可正常构建。 2. **算子加载/注册验证** - 验证 REGISTER_CPU_KERNEL 注册成功,三个算子可被框架正确识别与加载。 3. **InferShape 验证** - 验证 op_host/*_infershape.cpp 输出 shape 推导:IndexToAddr 输出 [block_size[0], 4];NonZeroWithValueShape[V2] 输出 out_value=[count]、out_index=[2, count]。 4. **单元测试** - 运行 tests/ut/op_kernel_aicpu/test_*.cpp,覆盖 INT64/UINT64(IndexToAddr)、INT32 校验(NonZeroWithValueShapeV2)等数据类型分支与参数校验逻辑。 5. **图模式接口调用验证** - 运行 examples/test_geir_*.cpp,通过算子 IR 构图方式调用三个算子,验证端到端功能与输出正确性。 6. **参数校验测试** - 覆盖 Check() 中的边界场景:base_addr/x 数据类型一致且 shape=[2]、ori_shape/block_size 为 2 元素、block_size[0]*4 <= output.NumElements()、storage mode 仅支持 Matrix、V2 版本 index/count 必须为 DT_INT32、count 至少 1 个元素等。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中三个算子条目正确显示,分类为 index,类型为 AI CPU,且 README 链接可达。 ## 文档更新 - 新增 index/index_to_addr/README.md、index/non_zero_with_value_shape/README.md、index/non_zero_with_value_shape_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2 三个算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7519 | 2 个月前 | |
Migrate index AICPU shape operators Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7519 merge migrate-index-to-addr-aicpu into master Migrate index AICPU shape operators Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将三个 AICPU shape 类算子从源仓迁移至 ops-nn 仓库,统一算子仓管理,共新增 43 个文件,并同步更新算子清单 docs/zh/op_list.md: 1. **IndexToAddr**:根据块索引、原始矩阵 shape、块 shape 和基地址信息,生成块内每一行对应的地址表。输入 base_addr(shape=[2])与块索引 x(shape=[2]),输出地址表 shape 为 [block_size[0], 4],每行 [rank_id, base_addr[0]+bias_addr, base_addr[1]+bias_addr, row_size*dtype_size],支持 INT64/UINT64。 2. **NonZeroWithValueShape**:根据 NonZeroWithValue 的 count 输入更新 value/index 输出 shape,分别置为 [count[0]] 与 [2, count[0]]。 3. **NonZeroWithValueShapeV2**:V2 版本,在 V1 基础上新增 GetInputTypeAndCheck 显式校验 index/count 必须为 INT32,输出语义与 V1 一致。 每个算子按 ops-nn 标准目录结构组织,包含 op_graph(IR 原型)、op_host(infershape)、op_kernel_aicpu(kernel 实现与 REGISTER_CPU_KERNEL 注册)、examples(图模式调用样例)、tests/ut(单元测试)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4163 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 对三个算子(IndexToAddr / NonZeroWithValueShape / NonZeroWithValueShapeV2)分别执行各级 CMakeLists.txt 配置与编译,验证新增 CMake 配置变更正确,算子可正常构建。 2. **算子加载/注册验证** - 验证 REGISTER_CPU_KERNEL 注册成功,三个算子可被框架正确识别与加载。 3. **InferShape 验证** - 验证 op_host/*_infershape.cpp 输出 shape 推导:IndexToAddr 输出 [block_size[0], 4];NonZeroWithValueShape[V2] 输出 out_value=[count]、out_index=[2, count]。 4. **单元测试** - 运行 tests/ut/op_kernel_aicpu/test_*.cpp,覆盖 INT64/UINT64(IndexToAddr)、INT32 校验(NonZeroWithValueShapeV2)等数据类型分支与参数校验逻辑。 5. **图模式接口调用验证** - 运行 examples/test_geir_*.cpp,通过算子 IR 构图方式调用三个算子,验证端到端功能与输出正确性。 6. **参数校验测试** - 覆盖 Check() 中的边界场景:base_addr/x 数据类型一致且 shape=[2]、ori_shape/block_size 为 2 元素、block_size[0]*4 <= output.NumElements()、storage mode 仅支持 Matrix、V2 版本 index/count 必须为 DT_INT32、count 至少 1 个元素等。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中三个算子条目正确显示,分类为 index,类型为 AI CPU,且 README 链接可达。 ## 文档更新 - 新增 index/index_to_addr/README.md、index/non_zero_with_value_shape/README.md、index/non_zero_with_value_shape_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2 三个算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7519 | 2 个月前 | |
Add fallback registration for quant_update_scatter/scatter_nd_update/masked_softmax_with_rel_pos_bia Co-authored-by: lijingxuan<lijingxuan13@huawei.com> # message auto-generated for no-merge-commit merge: !8765 merge Add_new_operators into master Add fallback registration for quant_update_scatter/scatter_nd_update/masked_softmax_with_rel_pos_bia Created-by: 2401_87820340 Commit-by: lijingxuan Merged-by: cann-robot Description: ## 描述 本 PR 为以下三个算子新增图模式 fallback 注册: - quant_update_scatter - scatter_nd_update - masked_softmax_with_rel_pos_bias 将 canndev 中对应的 fallback 实现迁移至 ops-nn。执行函数通过 CANN_OPS_OPB_SYN_EXEC_ACLNN 调用对应 ACLNN API,并显式传入 hostApiCtx。 本次迁移保留了原有 ACLNN API、输入及属性索引、参数顺序和错误处理逻辑,不修改算子公共接口及计算语义。 ## 关联的Issue 无关联 Issue。 ## 测试 已完成以下检查: - 对三个新增 CPP 文件执行 clang-format 18.1.8,检查通过。 - 对三个新增 CPP 文件执行完整 pre-commit,所有检查通过。 - 执行 git diff --check,检查通过。 - 检查三个文件均使用 CANN_OPS_OPB_SYN_EXEC_ACLNN,不存在旧的 EXEC_OPAPI_CMD。 - GitCode 远端 Git Hooks 检查通过。 Linux/CANN 编译、opgraph UT 和软件包构建由 PR 流水线继续验证。 ## 文档更新 本 PR 不包含文档更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8765 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
ASC接口兼容性整改:迁移repeat_interleave_grad内核接口名称 Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !8850 merge asc-interface-migration into master ASC接口兼容性整改:迁移repeat_interleave_grad内核接口名称 Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ASC接口兼容性整改:迁移repeat_interleave_grad内核接口名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8850 | 2 个月前 | |
fix: 修复5个UT文件License头不合规问题 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 2 个月前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 2 个月前 | |
docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8571 merge doc into master docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新16个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4785 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8571 | 2 个月前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 2 个月前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
ScatterNdAdd perf Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8891 merge scatter_update into master ScatterNdAdd perf Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 1、优化ScatterNdAdd在索引无重复场景下simd模板的性能,预期对应场景性能提升3倍以上 2、修复simd模板非排序分支精度问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 批量验证OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8891 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8571 merge doc into master docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新16个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4785 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8571 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8571 merge doc into master docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新16个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4785 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8571 | 2 个月前 | |
fix(review): 集中清理 foreach/scatter/lamb A5 检视问题 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !7966 merge fix/op-review-issues into master fix(review): 集中清理 foreach/scatter/lamb A5 检视问题 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7966 | 2 个月前 | |
新增支持fallback内容编译 Co-authored-by: zhaoyingchao<zhaoyingchao1@hisilicon.com> # message auto-generated for no-merge-commit merge: !7481 merge support-fallback-compile into master 新增支持fallback内容编译 Created-by: zhaoyingchao2 Commit-by: zhaoyingchao Merged-by: cann-robot Description: ## 描述 同步参考 cann/ops-math PR 3394 的构建逻辑,支持 op_graph 目录下的 *_fallback.cpp 参与 graph plugin 编译。 本次修改: - 在 add_graph_plugin_sources() 中,将 ${SOURCE_DIR}/*_fallback.cpp 加入 GRAPH_PLUGIN_SRCS。 - 在安装依赖与非安装依赖两种构建路径下都收集 fallback 源文件。 - 将 OPBASE_TAG_ID 更新为包含 op_fallback 接口支持的提交 b92c2c8f3d999f315b0251cfb25edb111bb898d5。 参考 PR:https://gitcode.com/cann/ops-math/pull/3394 ## 关联的Issue 关联Issue #4077 https://gitcode.com/cann/ops-nn/issues/4077 ## 测试 - 已执行 git diff --check,通过。 - 已确认 opbase 新提交存在,且当前 ops-nn 使用的 opbase tag 是新 tag 的祖先。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7481 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
贡献sort lib全局排序公共库 Co-authored-by: lixin433<lixin433@huawei.com> # message auto-generated for no-merge-commit merge: !8888 merge master-sort into master 贡献sort lib全局排序公共库 Created-by: lixin433 Commit-by: lixin433 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 贡献sort lib全局排序公共库,供索引类算子全局排序方案使用 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue [#4913](https://gitcode.com/cann/ops-nn/issues/4913) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 冒烟通过,ut通过,本地测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8888 | 2 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
feat(index): add SparseFillEmptyRows AICPU op Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !7571 merge sparse_fill_empty_rows into master feat(index): add SparseFillEmptyRows AICPU op Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 将 canndev 中的 SparseFillEmptyRows 作为 AICPU 算子迁移到 ops-nn/index/sparse_fill_empty_rows。 主要改动: - 新增 SparseFillEmptyRows AICPU kernel 实现,保持 canndev 核心语义:统计每行元素数,对空行补 [row, 0, ...] = default_value,生成 empty_row_indicator 和 reverse_index_map。 - 新增 AICPU OpDef、op_graph proto、GEIR graph example 和 AICPU UT。 - 新增算子 README,说明输入输出、空行补齐规则、dtype 支持和约束。 - 更新 docs/zh/op_list.md,将 sparse_fill_empty_rows 加入 index 分类。 本轮未新增 aclnn/op_api;canndev 中未检索到 aclnnSparseFillEmptyRows 或对应两段式接口实现。 ## 关联的Issue 无。 ## 测试 已执行: bash pre-commit run --files docs/zh/op_list.md index/sparse_fill_empty_rows/CMakeLists.txt index/sparse_fill_empty_rows/README.md index/sparse_fill_empty_rows/examples/test_geir_sparse_fill_empty_rows.cpp index/sparse_fill_empty_rows/op_graph/CMakeLists.txt index/sparse_fill_empty_rows/op_graph/sparse_fill_empty_rows_proto.h index/sparse_fill_empty_rows/op_kernel_aicpu/CMakeLists.txt index/sparse_fill_empty_rows/op_kernel_aicpu/sparse_fill_empty_rows_aicpu.cpp index/sparse_fill_empty_rows/op_kernel_aicpu/sparse_fill_empty_rows_aicpu.h index/sparse_fill_empty_rows/op_kernel_aicpu/sparse_fill_empty_rows_aicpu_def.cpp index/sparse_fill_empty_rows/tests/CMakeLists.txt index/sparse_fill_empty_rows/tests/ut/CMakeLists.txt index/sparse_fill_empty_rows/tests/ut/op_kernel_aicpu/test_sparse_fill_empty_rows.cpp 结果:通过。 已执行 AICPU UT: bash bash build.sh --opkernel_aicpu_test --ops=sparse_fill_empty_rows -j8 结果:33 个 TEST_SPARSE_FILL_EMPTY_ROWS_UT 用例通过。 已执行自定义包和 GEIR example 验证: bash bash build.sh --pkg --ops=sparse_fill_empty_rows --vendor_name=sfer -j8 ./build_out/cann-ops-nn-sfer_linux-aarch64.run export ASCEND_CUSTOM_OPP_PATH=/home/developer/Ascend/cann-9.0.0/opp/vendors/sfer_nn export LD_LIBRARY_PATH=/home/developer/Ascend/cann-9.0.0/opp/vendors/sfer_nn/op_api/lib:${LD_LIBRARY_PATH} export ASCEND_GLOBAL_LOG_LEVEL=0 bash build.sh --run_example sparse_fill_empty_rows graph 结果:通过。日志确认走到自定义 AICPU kernel:RunCpuKernel[SparseFillEmptyRows] 出现在 aicpu_custom_scheduler 路径下。 ## 文档更新 - 新增 index/sparse_fill_empty_rows/README.md。 - 更新 docs/zh/op_list.md。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7571 | 2 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
feat: 迁移 canndev 的 AI CPU 算子 SparseSegmentMeanGrad 到 ops-nn/index Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !7745 merge sparse_segment_mean_grad_0720 into master feat: 迁移 canndev 的 AI CPU 算子 SparseSegmentMeanGrad 到 ops-nn/index Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 将 canndev 的 AI CPU 算子 **SparseSegmentMeanGrad** 迁移至本仓 index 分类目录,共新增 14 个文件,并同步更新算子清单 docs/zh/op_list.md。 **算子功能**:计算 SparseSegmentMean 的反向梯度。正向按 segment_ids 对被 indices 选中的行求均值,反向时把每个分段的梯度按该分段被引用的次数取平均后,散射回 indices 指定的输出行;未被引用的输出行置 0。 **目录结构**: | 目录 | 文件 | 内容 | | --- | --- | --- | | op_graph/ | sparse_segment_mean_grad_proto.h | IR 原型,REG_OP 注释块沿用 canndev op_proto/inc/math_ops.h 原文 | | op_host/ | sparse_segment_mean_grad_infershape.cpp | RT2 InferShape + InferDataType,output_dim0 声明为 InputsDataDependency | | op_kernel_aicpu/ | *_aicpu.{h,cpp}、*_aicpu_def.cpp | kernel 实现与 REGISTER_CPU_KERNEL 注册、opdef 元数据 | | examples/ | test_geir_sparse_segment_mean_grad.cpp | 图模式(GE IR)调用样例 | | tests/ut/op_kernel_aicpu/ | test_sparse_segment_mean_grad.cpp | 21 条 AI CPU kernel 单元测试 | | tests/ut/op_host/ | test_sparse_segment_mean_grad_infershape.cpp | 10 条 infershape / InferDataType 单元测试 | **CMake 接线取最小集**:仅算子根 CMakeLists.txt(直接调 add_modules_sources,DIR 指向算子根目录)、op_kernel_aicpu/CMakeLists.txt 与 tests/、tests/ut/ 两级 CMakeLists.txt,共 4 个;op_graph/ 与 op_host/ 下不再放 CMakeLists.txt——add_modules_sources() 内部会调用 add_graph_plugin_sources() 覆盖 op_graph,并自动补 /op_host 收集 *_infershape*.cpp,与 cmake/func.cmake 中「add_modules_sources 在算子根路径 CMakeLists 中,且 CMakeLists 旧实现已删除」的演进方向及本仓 index/sparse_segment_sum_grad 的写法一致(已用「清空 build/build_out 全量重打包 + 比对 es_SparseSegmentMeanGrad.h / opsproto 符号 / aicpu kernel 符号 / aicpu_kernel.ini 字段」实测确认产物不变)。 本算子为 AI CPU-only,未引入 tiling、archXX/、op_kernel/ 等 AI Core 结构,classify_rule.yaml 与 scripts/kernel/binary_config/ascendc_config.json 无需登记(与 index/index_to_addr 一致)。 **infershape 与 canndev RT2 的语义对齐**(代码检视后修正,不是等价改写): 1. x 保留 WithRankAtLeast(1) 语义,标量 x 返回 GRAPH_FAILED。缺此校验时 gert::Shape::SetDim(0, v) 的 dim_num_ = (dim_num_ < idx) ? idx : dim_num_ 在 idx=0, dim_num_=0 时不会把 rank 提到 1,会静默推出 rank 0 的输出 shape 并返回 GRAPH_SUCCESS; 2. indices 与 segment_ids 的长度比较保留 Merge 语义(CheckUnknownDimAndValidate):仅当两边都是已知维且不相等时才判失败,任一边为 -1(未知维)或 -2(未知 rank)均放行,避免动态 shape 下误拒合法图。 **kernel 侧的防御性增强**(不改变合法输入下的行为,与源实现功能等价): 1. output_dim0 显式校验 DT_INT32(源侧直接 reinterpret_cast<int32_t*>); 2. NumElements() / GetDimSize(0) 除法前紧邻 dim0 == 0 守卫(G.EXP.22-CPP,源侧无守卫); 3. indices / segment_ids 数据类型白名单前置到入口校验(源侧靠嵌套 else 兜底)。 已逐函数比对 canndev 源与迁移后代码的索引计算公式、循环结构与分支流程,重构仅提取 TryGetRowSize / BuildSegmentScale / AccumulateGrad 三个 helper,不改变语义。 **算子信息库回源核对**:生成的 aicpu_kernel.ini 与 canndev 源逐字段比对一致,其中 opInfo.opsFlag=OPS_FLAG_OPEN(本仓公共默认配置为 CLOSE,已按源显式覆盖)、opInfo.subTypeOfInferShape=1、opInfo.formatAgnostic=False、opInfo.computeCost=100、opInfo.flagAsync/flagPartial=False、输入输出 dtype 列表全部一致。 **刻意不迁移的源文件**: - fusion_pass/graph_fusion/ai_core/sparse_segment_mean_grad_fusion_pass.{h,cc}:该融合规则(SparseSegmentMeanGrad → Sort + SortedSparseSegmentMeanGrad)已随 index/sorted_sparse_segment_mean_grad 迁入本仓,不重复迁移; - canndev 源侧 RT1 VERIFY_FUNC_REG:RT2 生态无 Verify 适配接口,相关输入校验由 AI CPU kernel 运行期守卫兜底,并已写入 README 约束说明; - canndev 源侧文件驱动式 UT 与 *_gen_data.py 数据脚本:按本仓内联数据风格重写。 ## 关联的Issue 关联Issue #4198 ## 测试 验证环境:Atlas A2 训练系列产品(910B3),CANN 9.1.0,aarch64。 根据代码变更,测试场景如下: 1. **编译构建测试**(CMakeLists.txt × 5、*_aicpu_def.cpp) - 执行各级 CMake 配置与编译,验证新增 CMake 接线正确、算子可正常构建; - bash build.sh --pkg --soc=ascend910b --vendor_name=custom --ops=sparse_segment_mean_grad → **Build package success**,产出 cann-ops-nn-custom_linux-aarch64.run。 2. **算子加载/注册验证**(*_aicpu.cpp、*_aicpu_def.cpp) - libnn_aicpu_kernels.so 中可搜到 sparse_segment_mean_grad_aicpu.cpp 与 SparseSegmentMeanGrad,确认 REGISTER_CPU_KERNEL 注册成功且 kernel 已真正编入生产 .so; - libcust_opsproto_rt2.0.so 中可搜到 InferShapeForSparseSegmentMeanGrad 与 InferDataTypeForSparseSegmentMeanGrad; - 安装 bash build_out/cann-ops-nn-custom_linux-aarch64.run --quiet --force → **SUCCESS**,vendors/config.ini 更新为 load_priority=custom_nn,custom_math;安装后 cust_aicpu_kernel.json 中 SparseSegmentMeanGrad 条目字段与预期一致。 - 说明:范围包只含 AI CPU 算子时不产出 libcust_opmaster_rt2.0.so,安装脚本会无条件校验该文件,故需 --force 跳过;AI CPU 算子不依赖 AI Core tiling,RT2 infershape 位于 libcust_opsproto_rt2.0.so 内。 3. **infershape 单元测试**(tests/ut/op_host/test_sparse_segment_mean_grad_infershape.cpp) - bash build.sh -u --ophost --ops=sparse_segment_mean_grad → **10/10 PASSED**; - 覆盖 2D/3D 输出推导、x 为 -2(unknown rank)、标量 x 拦截、indices 为 -1(未知维)与 -2(未知 rank)时放行、两边已知维不等时拦截、indices 非 1D 拦截、output_dim0 非标量拦截、输出 dtype 跟随 x; - **反向对照**:把 infershape 回退到修改前的实现后重跑同一组用例,InferShapeScalarXFailed / InferShapeIndicesUnknownDimSuccess / InferShapeIndicesUnknownRankSuccess **3 条确实失败**,确认这三条是有效回归用例而非恒真断言。 - 说明:InferShapeContextFaker 的 GetInputTensor() 返回的并非 InputShapes() 传入的 Tensor(实测 GetInputShape() 读到传入对象、GetInputTensor() 读到 faker 自建的空 tensor,GetSize()==0),故 UT 中 GetConstInt(output_dim0) 必然失败、首维回退 -1,用例据此断言 -1,覆盖「output_dim0 非编译期常量时首维回退」这条真实分支;output_dim0 为真常量时 y.dim(0)==output_dim0 的路径由下面第 6 项图模式 example 在真实硬件上端到端覆盖。 4. **AI CPU kernel 单元测试**(tests/ut/op_kernel_aicpu/test_sparse_segment_mean_grad.cpp) - UT 中构造 NodeDef 使用匿名 namespace 内的 helper 函数 CreateNodeDef(),未使用 CREATE_NODEDEF 宏(该宏体为「局部变量声明 + builder 链」两条语句,违反 G.PRE.03,且 nodeDef 需跨出宏作用域供 RUN_KERNEL 使用,无法用 do-while(0) 修复); - bash build.sh -u --opkernel_aicpu --ops=sparse_segment_mean_grad --soc=ascend910b → **21/21 PASSED**; - 成功路径覆盖 FLOAT / DOUBLE / FLOAT16 三种数据类型,以及 indices × segment_ids 的四种 INT32/INT64 组合,并逐元素校验输出数值,含累加路径(同一输出行被写入多次)与未引用行置 0 的校验。 4. **参数校验测试**(*_aicpu.cpp 的 CheckDataPara / CheckRankPara / CheckShapePara) - 覆盖 Compute 入口的每一条 return 分支:空 Tensor、输入数据指针为空、x/y 数据类型不一致、output_dim0 数据类型非 INT32、x/y rank 小于 1、output_dim0 非标量、indices 与 segment_ids 元素数不一致、x/y 行长不一致、y.dim(0) 与 output_dim0 不匹配、indices/segment_ids 数据类型不支持、segment id 越界、index 越界、负索引、x 数据类型不支持。 5. **InferShape / InferDataType 验证**(op_host/sparse_segment_mean_grad_infershape.cpp) - 输出 shape 推导为 output_dim0 拼接 x 除首维外的各维;output_dim0 非编译期常量时首维回退为 -1;x 为 -2(unknown rank)时输出保持 -2;indices / segment_ids 必须为 1 维且元素数一致、output_dim0 必须为标量,否则拦截;输出数据类型跟随 x。 - 图模式样例在真实硬件上端到端验证了上述推导(输出 dtype 打印为 DT_DOUBLE,shape 为 [3, 3])。 6. **图模式接口调用验证**(examples/test_geir_sparse_segment_mean_grad.cpp、op_graph/sparse_segment_mean_grad_proto.h) - bash build.sh --run_example sparse_segment_mean_grad graph → 执行成功,输出与期望完全一致。 - 输入 x = [[1,2,3],[4,5,6]]、indices = {0,2,1}、segment_ids = {0,0,1}、output_dim0 = 3(segment 0 被引用 2 次,scale 0.5;segment 1 被引用 1 次,scale 1.0): sparse_segment_mean_grad output dtype = DT_DOUBLE sparse_segment_mean_grad output[0] = 0.5 sparse_segment_mean_grad output[1] = 1 sparse_segment_mean_grad output[2] = 1.5 sparse_segment_mean_grad output[3] = 4 sparse_segment_mean_grad output[4] = 5 sparse_segment_mean_grad output[5] = 6 sparse_segment_mean_grad output[6] = 0.5 sparse_segment_mean_grad output[7] = 1 sparse_segment_mean_grad output[8] = 1.5 SparseSegmentMeanGrad GEIR example success 7. **运行期日志核对** - 样例执行后在 log/ 下可搜到: [RunCpuKernel] op type [SparseSegmentMeanGrad] run cpu kernel. [RunCpuKernelCommon] op type [SparseSegmentMeanGrad] run cpu kernel finished, run time [20.720000] us. AICPU(1055,aicpu_custom_scheduler) ... FillCustOpInfos: Read cust json file, op_name: SparseSegmentMeanGrad GetCustAicpuFuncHandle: Get func from bin handle by op type: SparseSegmentMeanGrad, func name: RunCpuKernel - 可确认实际执行的是自定义包中的 AI CPU kernel,而非内置实现。 8. **算子清单登记验证** - 确认 docs/zh/op_list.md 中 sparse_segment_mean_grad 条目显示正确,分类为 index,硬件单元为 AI CPU,README 链接可达。 9. **本地代码质量自检** - pre-commit run --files <本次全部文件> 全绿(trailing-whitespace / end-of-file-fixer / clang-format / codespell / OAT 许可证头); - 所有函数有效代码行(NBNC)均不超过 50 行(最长 43 行);kernel、infershape、UT、样例四类文件均无裸槽位索引与硬编码派生尺寸,无被注释掉的代码段。 ## 文档更新 - 新增 index/sparse_segment_mean_grad/README.md:产品支持情况、功能说明与计算公式、参数说明、约束说明、调用说明。 - 更新 docs/zh/op_list.md:登记 sparse_segment_mean_grad 条目,硬件单元为 AI CPU,op_kernel / op_host / op_graph 列标记为支持,op_api 列为不支持(本算子无 aclnn 接口,故未涉及 docs/zh/op_api_list.md 与 docs/aclnn*.md)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7745 | 2 个月前 | |
docs(index): fix SparseSegmentSum README Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !8950 merge fix/sparse-segment-sum-readme into master docs(index): fix SparseSegmentSum README Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 修正 SparseSegmentSum 算子 README 中的产品支持范围和数据类型名称,使文档与实际支持能力及算子文档规范保持一致: 1. 将 Atlas A3、Atlas A2、Atlas 推理系列和 Atlas 训练系列产品的支持状态由“不支持”更正为“支持”。 2. 移除参数数据类型名称中的 DT_ 前缀,统一使用 INT8、INT32、FLOAT16 等标准文档格式。 ## 关联的Issue 关联Issue #4935 ## 测试 本次为纯文档变更,建议执行以下静态检查: 1. 检查产品支持表在 Markdown 渲染后列对齐、支持标记及产品名称显示正常。 2. 核对 x、indices、segment_ids 和 y 的数据类型名称均已移除 DT_ 前缀。 3. 对照算子实现或产品支持清单,确认更新后的支持范围准确。 4. 运行仓库已有的 Markdown 或文档格式检查(如有)。 > 未执行算子功能测试;本次修改不涉及算子实现代码。 ## 文档更新 更新 index/sparse_segment_sum/README.md: - 修正 4 类 Atlas 产品的支持状态。 - 规范 4 个输入/输出参数的数据类型名称。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8950 | 2 个月前 | |
修改SparseSegmentSumGrad、Dilation2D infershape并增加对应UT Co-authored-by: wang-shilong32<wangshilong23@huawei.com> # message auto-generated for no-merge-commit merge: !8931 merge fix_dilation_sparse_infer into master 修改SparseSegmentSumGrad、Dilation2D infershape并增加对应UT Created-by: wang-shilong32 Commit-by: wang-shilong32 Merged-by: cann-robot Description: ## 描述 修改SparseSegmentSumGrad、Dilation2D infershape -1/-2场景 并增加对应UT <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4950 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地验证对应UT用例,出包验证,冒烟测试。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8931 | 1 个月前 | |
修改blockIdx.x Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !9004 merge master into master 修改blockIdx.x Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 修改block.x 为GetBlockIdx() ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9004 | 1 个月前 | |
feat(index): add SparseToDense AICPU kernel Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !7709 merge sparse_to_dense_aicpu into master feat(index): add SparseToDense AICPU kernel Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 ### 信息描述 本 PR 将 canndev 中 SparseToDense 的 AICPU 能力迁移到 ops-nn/index/sparse_to_dense,目标是在目标仓现有 Ascend950 AI Core 实现基础上补齐 AI CPU 执行路径,形成 AI Core/AI CPU 共存能力。 迁移范围限定为 AICPU kernel、AICPU OpDef、UT、GEIR graph example 以及 README/op_list 能力描述更新。本次不迁移 canndev infershape,不新增 aclnn/op_api,不修改现有 op_host、AI Core kernel、tiling 主路径,也不迁移 TF/ONNX plugin。 AICPU dtype 注册按 kernel 实际支持范围收敛,避免把未覆盖 dtype 暴露到 AICPU OpDef。GEIR 示例使用 DT_DOUBLE 输入,便于验证运行时进入自定义 AICPU 路径,而不是命中已有 AI Core 实现。 主要改动: - 新增 index/sparse_to_dense/op_kernel_aicpu,包含 AICPU kernel、头文件、CMake 和 sparse_to_dense_aicpu_def.cpp。 - AICPU kernel 支持 int32/int64 indices 和 output_shape,values/default_value/y dtype 按 AICPU kernel 实际支持范围注册。 - 新增 AICPU UT,覆盖正常路径、scalar values 广播、非法 shape/dtype、乱序/重复/越界索引等场景。 - 新增 GEIR graph example,验证图模式调用与输出结果。 - 更新 docs/zh/op_list.md 的硬件单元为 AI Core/AI CPU,修正 README 描述和调用样例链接。 ## 关联的Issue 暂无。 ## 测试 - 通过:bash build.sh -u --opkernel_aicpu --ops=sparse_to_dense -j8 - 通过:bash build.sh --pkg --ops=sparse_to_dense --vendor_name=custom -j8 - 通过:./build_out/cann-ops-nn-custom_linux-aarch64.run - 通过:设置 ASCEND_CUSTOM_OPP_PATH=/home/developer/Ascend/cann-9.0.0/opp/vendors/custom_nn 后运行 bash build.sh --run_example sparse_to_dense graph cust --vendor_name=custom - 日志确认自定义 AICPU 路径:aicpu_custom_scheduler 下 RunCpuKernel[SparseToDense] success,并出现 kernel_lib_name is [CUSTAICPUKernel]、kernel_so_name is libnn_aicpu_kernels.so、Load cust aicpu kernel:SparseToDense - 通过:pre-commit run --files docs/zh/op_list.md index/sparse_to_dense/README.md index/sparse_to_dense/op_kernel_aicpu/CMakeLists.txt index/sparse_to_dense/op_kernel_aicpu/sparse_to_dense_aicpu.h index/sparse_to_dense/op_kernel_aicpu/sparse_to_dense_aicpu.cpp index/sparse_to_dense/op_kernel_aicpu/sparse_to_dense_aicpu_def.cpp index/sparse_to_dense/tests/ut/op_kernel_aicpu/test_sparse_to_dense.cpp index/sparse_to_dense/examples/test_geir_sparse_to_dense.cpp ## 文档更新 更新 docs/zh/op_list.md 和 index/sparse_to_dense/README.md。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7709 | 2 个月前 | |
对齐 ScatterElements 常量折叠标志并补齐 TensorScatterUpdate 的 RT2 InferShape Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !8707 merge tensor_scatter_update_infershape into master 对齐 ScatterElements 常量折叠标志并补齐 TensorScatterUpdate 的 RT2 InferShape Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 对 ops-nn 四个 AICPU 算子(GatherV2 / ScatterElements / SparseSegmentMeanGrad / TensorScatterUpdate)与 canndev 做一致性核对后,修复发现的两处缺口。其余算子核对一致,未改动。 **一、 fix: align ScatterElements opsFlag with canndev** canndev 的 aicpu_kernel.ini 中 ScatterElements 无 opInfo.opsFlag 字段,而本仓 ApplyNnAicpuDefaultCfg() 默认写 OPS_FLAG_CLOSE,该算子未覆盖,导致两仓常量折叠行为不一致。 按 GE 语义(ops_json_file.cc:275 + constant_folding_pass.cc:129,后者为全仓唯一消费点),折叠 pass 仅在 ops_flag == "0" 时 return UNSUPPORTED,故「字段缺失」与 OPS_FLAG_OPEN 等价,本仓当前的 CLOSE 比源侧更严。 改为显式覆盖成 OPS_FLAG_OPEN,写法与同仓 GatherV2 / SparseSegmentMeanGrad / TensorScatterUpdate 一致。未采用「删除字段」是因为 ApplyNnAicpuDefaultCfg 必然写入一次 opsFlag,无法表达「缺失」,而空值会被 aicpu_parser_ini_to_json.py 的 VALID_OPS_FLAGS 校验拒绝。 **二、feat: add RT2 infershape for TensorScatterUpdate** index/tensor_scatter_update/ 无 op_host/,即无 RT2 InferShape;canndev 亦无 IMPL_OP_INFERSHAPE(TensorScatterUpdate),仅有 RT1(matrix_calculation_ops.cc:579)。故将该 RT1 适配为 RT2 落入本仓。 源侧 RT1 逐条对账: | 源侧 RT1 | RT2 落点 | | --- | --- | | td.SetShape(x.GetShape()) | Ops::Base::InferShape4Elewise(只读 input0/output0,unknown rank 原样透传,与源侧「直接拷 shape、无任何 rank/dim 校验」逐字等价) | | td.SetDataType(x.GetDataType()) | 拆出独立的 InferDataType 注册 | | td.SetShapeRange(...) | **有意不迁**(见下) | | IMPLEMT_VERIFIER | 不迁,RT2 生态无 Verify 适配接口,相应校验由 kernel 运行期守卫兜底 | | 源侧对 x 无 rank 守卫 | 不加,迁移目标是等价而非收紧源侧;UT InferShapeScalarXSuccess 钉住该行为 | **有意偏离**:源侧 SetShapeRange(x 的 range) 不迁。RT2 的 shape range 是独立注册点 .InferShapeRange,本仓仅 unique_dim / sparse_slice 这类输出 shape 推不出来的算子才注册;本算子 y 与 x 同形,range 由 GE 按 shape 传播即可。 ## 关联的Issue 关联Issue #4809 ## 测试 验证环境:ascend910b / CANN 9.2.0 / aarch64(另有本地 CANN 8.5.0 / x86_64 交叉验证)。 **1. InferShape 单元测试** 新增 5 条用例:静态 shape、x unknown rank(-2) 透传、局部动态(-1 保持)、rank 0 x 成功返回 rank 0 y、y dtype 跟随 x。 - 本地 rm -rf build 全新配置(排除增量缓存导致的「只编译不执行」):5/5 PASSED - 远端四算子联跑(tensor_scatter_update + gather_v2 + scatter_elements + sparse_segment_mean_grad):16/16 PASSED **2. 反向对照(证明用例非恒真断言)** 新增实现无「修复前」可回退,改用注入回归:将 shape 源由 input0(x) 换成 input2(updates)、dtype 源由 input0(x) 换成 input1(indices)。 预期 4 条转红,InferShapeScalarXSuccess 应保持绿(该用例中 updates 亦为 rank 0,注入不改变结果)。实测恰好 4 FAILED / 1 PASSED,条数与原因均与预测吻合;恢复后 5/5 复绿。 **3. AICPU kernel UT 回归** tensor_scatter_update + scatter_elements:15/15 PASSED。 **4. opsFlag 全链路验证(含对照组)** 完整生产链路走通:_aicpu_def.cpp → opbuild → libaicpu_ops.so → aicpu_kernel.ini → aicpu_opdef_kernel.json → cust_aicpu_kernel.json。 同批构建产出的对照组,证明链路会区分而非恒定输出 OPEN: | 算子 | 期望 | 实际 | | --- | --- | --- | | ScatterElements(本次改动) | OPEN | OPS_FLAG_OPEN | | GatherV2(未改,本就 OPEN) | OPEN | OPS_FLAG_OPEN | | ScatterNdMax(未改,用默认值) | CLOSE | OPS_FLAG_CLOSE | **5. 打包、安装与 GE 注册确认** - 打包产物 libcust_opsproto_rt2.0.so 内含 InferDataTypeForTensorScatterUpdate 符号,确认 RT2 已进包 - 安装后图模式 example 在 910B3 上执行成功,GE 日志确认注册: RegisterOpImplToRegistry: Op type[TensorScatterUpdate] register OP_IMPL : [InferShape][InferDataType] MergeTypesToImpl: op type TensorScatterUpdate infer_shape func registered first. MergeTypesToImpl: op type TensorScatterUpdate infer_datatype func registered first. **6. 冲突排查** - 全仓 IMPL_OP_INFERSHAPE(TensorScatterUpdate) 仅命中本次新增这一处 - CANN 内置 libopmaster_ct.so 中本算子命中 0,无内置 RT2 冲突(libopsproto.so 命中 1,为 RT1,预期内) **已知现状(非本 PR 引入)**:test_geir_* 走 ge::Session + graphRunMode=1 的 RT1 执行通路,日志显示该节点 Call InferShapeFuncV1(全图 V1=4 / V2=0),服务该节点的仍是 CANN 内置 libopsproto.so 中的 RT1,本次新增的 RT2 已注册但当前不被调用。待内置 RT1 移除或走 RT2 执行通路后生效。 ## 文档更新 无。本 PR 不涉及对外接口变更,未改动 README 或 docs。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:配置对齐(ScatterElements 常量折叠标志与 canndev 对齐) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8707 | 1 个月前 | |
nn仓打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8207 merge master into master nn仓打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8207 | 2 个月前 | |
nn仓打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8207 merge master into master nn仓打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8207 | 2 个月前 | |
nn仓打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8207 merge master into master nn仓打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8207 | 2 个月前 | |
refactor(unique): move aclnnUnique APIs to owning operator directory Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !8848 merge codex/move-aclnn-unique into master refactor(unique): move aclnnUnique APIs to owning operator directory Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 aclnnUnique 和 aclnnUnique2 当前位于 scatter_elements/op_api 目录,与接口实际归属不一致。本次调整: - 将 aclnnUnique、aclnnUnique2 及共享实现 unique_common 迁移到 unique_consecutive/op_api。 - 将原有 aclnnUniqueConsecutive 及 UniqueConsecutive L0 接口从 unique_consecutive/op_host/op_api 迁移到根级 op_api,统一符合仓库当前目录规范。 - 950 核心路径由 Sort + UniqueConsecutive 实现;UniqueWithCountsAndSorting 保留为不支持 AI Core 路径时的回退实现。 - 同步迁移接口文档、示例、ST 和 UT。 - 将构建入口调整到算子根 CMakeLists.txt,更新依赖、文档索引和 classify_rule.yaml,并移除 scatter_elements 中不再使用的 Unique 依赖。 ## 关联的Issue [#4918](https://gitcode.com/cann/ops-nn/issues/4918) ## 测试 - git diff --check 通过。 - 目录、引用和依赖结构检查通过,旧路径无残留。 - 未运行单元测试。 ## 文档更新 - 迁移 aclnnUnique.md、aclnnUnique2.md。 - 更新 aclnn API 菜单及接口列表链接。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:目录结构调整 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8848 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
算子插件迁移 Co-authored-by: welt_lester<songlizhe1@h-partners.com> Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !8474 merge master into master 算子插件迁移 Created-by: welt_lester Commit-by: x00842564;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4279,将adaptive_avg_pool2d、adaptive_max_pool2d、ascend_anti_quant、ascend_dequant、ascend_quant、batch_mat_mul_v3、batch_norm、celu_v2、instance_norm_v3、ascend_quant、log_softmax_v2、mat_mul_v3、unique_with_counts_and_sorting这13个算子对应的插件从common\src\framework迁出到各自算子目录新建的\framework目录下。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的插件不应该放到公共目录 [#4279](https://gitcode.com/cann/ops-nn/issues/4279) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子插件归属迁移,落实 #4279 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8474 | 2 个月前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 2 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 2 个月前 | |
AscendC接口整改 Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !8597 merge master into master AscendC接口整改 Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与对外接口文档保持一致,修改本组负责算子对应接口。修改后各算子二进制和修改前一致 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8597 | 1 个月前 | |
TF plugin修改1 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7547 merge nn1 into master TF plugin修改1 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 TF plugin修改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4196 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7547 | 2 个月前 | |
License Change Split2 Co-authored-by: huohuo_wy<wangyan389@huawei.com> # message auto-generated for no-merge-commit merge: !371 merge spilit2License3 into master License Change Split2 Created-by: huohuo_wangyan Commit-by: huohuo_wy Merged-by: cann-robot Description: ## 描述 批量整改文件copyright注释 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/177 ## 测试 COPYRIGHT注释头按新要求刷新 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!371 | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 10 个月前 |