| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Feature: 为 index 和 pooling 类算子新增 Ascend350 平台支持 Co-authored-by: klein8793<zhangli24@huawei.com> # message auto-generated for no-merge-commit merge: !9754 merge dev_zl_2026_0902 into master Feature: 为 index 和 pooling 类算子新增 Ascend350 平台支持 Created-by: klein8793 Commit-by: klein8793 Merged-by: cann-robot Description: ## 描述 为 index 和 pooling 类算子新增 Ascend350 平台支持。具体变更包括: 1. **新增 Ascend350 平台配置文件**(42 个 JSON):为每个算子新增 op_host/config/ascend350/ 下的二进制配置 JSON 2. **注册 Ascend350 平台**:在各算子 _def.cpp 中添加 his->AICore().AddConfig(ascend350, aicoreConfig) 3. **更新编译配置**:修改各算子 CMakeLists.txt,添加 Ascend350 编译选项;更新 scendc_config.json 中对应算子的 compute_units 列表,将 [ascend950] 扩展为 [ascend950, ascend350] 4. **更新 Fusion Pass 平台判断**:在 bucketize_v2_fusion_pass、inplace_add_fusion_pass、gather_fusion_pass、tensor_scatter_add_fusion_pass、sorted_sparse_segment_mean_grad_fusion_pass 中将 Ascend350 加入平台白名单 涉及算子(35+): - index: bucketize_v2, concat_offset, gather_elements, gather_nd, gather_v2, index_fill, index_fill_d, index_put_v2, inplace_index_add, inplace_index_fill, linear_index_v2, masked_scatter, repeat_interleave, reverse_sequence, reverse_v2, scatter, scatter_add, scatter_add_with_sorted, scatter_elements, scatter_elements_v2, scatter_nd, scatter_nd_add, scatter_nd_max, scatter_nd_min, scatter_nd_update, scatter_sub, scatter_update, segment_sum, sorted_sparse_segment_mean_grad, sparse_segment_mean, sparse_to_dense, unsorted_segment_max, unsorted_segment_min - pooling: avg_pool, avg_pool_v2 - 公共库: scatter_nd_common, unsorted_segment_common, sort_lib ## 关联的Issue - #5651 ## 测试 obp冒烟、david冒烟已通过 ## 文档更新 NA ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9754 | 16 小时前 | |
迁移3个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10288 merge tf_plugin_migration_from_canndev into master 迁移3个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移3个TF plugin - depthwise_conv2d_backprop_filter_plugin.cc - depthwise_conv2d_backprop_input_plugin.cc - depthwise_conv2d_forward_native_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10288 | 3 天前 | |
feat(index): migrate kth_value, median and nan_median from ops-math Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !10222 merge master into master feat(index): migrate kth_value, median and nan_median from ops-math Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将 ops-math 的 kth_value、median、nan_median 迁入 index 对应目录,同时将 GatherV2 目录中的五个 ACLNN 接口归位,集中维护实现、接口、测试和文档。 - 承接三个算子的 Ascend950/arch35 Kernel、Host/Tiling、InferShape、L0 API、UT 和 ST 数据。主要算法、TilingKey、TilingData 保持原有设计;三个 golden.py 和三份 ST CSV 与源仓一致。 - 将依赖的 Sort 公共代码复制到 kth_value/op_host/arch35 与 op_kernel/arch35/common,调整命名和包含路径;适配目标仓 CMake、KERNEL_SRC、编译选项及公共头文件,UT 保持 arch35 隔离。分类归入 sort@ops-nn。 - 将 aclnnKthvalue、aclnnMedian、aclnnMedianDim、aclnnNanMedian、aclnnNanMedianDim 的实现、示例、文档和测试从 gather_v2 移到各自算子目录。删除三算子的 common 桩和弱符号判断,保留 IsRegbase 芯片路径选择。 - Median/NanMedian 的共用辅助函数由 median/op_api/median_common.cpp 单份定义,median_common.h 仅供内部 cpp 共享声明,通过 L0 函数指针避免 Median 反向依赖 NanMedian。这些辅助函数和常量原本属于 cpp 内部实现,未在原公共头文件中暴露;aclnn_median.h 不包含该内部头文件,安装规则也不将其作为公开 ACLNN 头文件导出。 - CMake 保留真实 ACLNN 调用依赖:KthValue 的旧芯片 Sort+Gather 路径仍依赖 GatherV2;Median/NanMedian 声明所需 KthValue、GatherV2、MedianDim、GatherElements 及共享实现依赖。GatherV2 移除已迁出调用方的 MedianDim 依赖。 接口兼容性:公共头文件统一为 index/median/op_api/aclnn_median.h,保留 aclnnMedian、aclnnMedianDim、aclnnNanMedian、aclnnNanMedianDim 的全部八个两阶段接口声明,函数签名及 extern "C" 保持不变。调用方仍包含 aclnnop/aclnn_median.h,无需修改原有 include;不新增 aclnn_nan_median.h。Median 与 NanMedian 的 cpp 按算子目录拆分,示例、测试及文档引用同步统一。 配套源仓清理 PR:https://gitcode.com/cann/ops-math/merge_requests/5550 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5783 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 5个aclnn接口各自500+ torch用例通过 - 3个算子总共500+ST用例通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增 kth_value、median、nan_median README,补充 op_list.md、op_api_list 及相关目录索引,修正 ACLNN 文档的源码链接与头文件引用。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:跨仓算子迁移及接口归位 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10222 | 6 天前 | |
fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9618 merge fix-onnx-0831 into master fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本 MR 含两部分: 1. 将 common/src/framework/ada_cast_onnx_plugin.cpp 的 ParseParamsFn 迁移到 ParseParamsByOperatorFn,从 op_src 的 attribute JSON 解析 pixel(INT),去掉 protobuf 依赖(onnx_common.h → plugin_util.h 等 proto-free 头),并补 common/tests/ut/framework/test_ada_cast_onnx_plugin.cpp 单测。 2. 补齐 ops-nn "framework UT 按算子 + op_host "中 common 集中 目录这一支的失效:改 common/.../framework 下 onnx 文件时 CI 静默跳过 (parse_changed_files.py 无 framework matcher、tests/ut/op_host 的 if(NOT ASCEND_OP_NAME) 在 --ops 下把 common framework UT 挡死)。 ## 实现说明 - scripts/util/parse_changed_files.py(改动1) 基类 match() 加 framework 短路 + OpHostUt._ut_match 正则提取算子名 ((?:^|/) 兼容相对路径),覆盖四种 onnx framework 路径:common 插件源、 common 插件 UT、算子级 UT、算子级插件源。非 framework 文件走原逻辑不变; 仅 op_host_ut 命中。顶部加 import re。 - tests/ut/op_host/CMakeLists.txt(改动2) 门槛 if(NOT ASCEND_OP_NAME) → 全量接入;--ops 仅命中 common 框架插件算子 才接入。结构上规避 ops-cv !1435 那种"非框架算子 PR 触发 framework cases_obj 零源"回归。framework static_lib 链接处本就有 $<TARGET_EXISTS:> 守卫, 非框架算子构建时链接为空,不影响他人。 - cmake/ut.cmake(改动3/5) 改动3:framework 分支按 test_<op>_onnx_plugin.cpp 文件名逐文件过滤。 改动5:add_opbase_ut_common(tiling/infershape/framework 三模块共享) 加 empty.cpp 兜底源——selective 下三个 opbase obj 目标都不存在时 add_library 无源会在 generate 阶段报错。 - scripts/util/dependency_parser.py(改动4) find_all_dependency 对不在依赖图的 framework-only 算子(ada_cast/hardmax/ size 无算子目录)由 raise RuntimeError 改为 warn+计入算子本身(无子依赖)。 否则 parse 与 build.sh --ops 依赖解析会崩、且 parse 输出 op 字段为空。 真实算子(在 all_ops)不受影响。 ## 关联的Issue Issue [#5115](https://gitcode.com/cann/ops-nn/issues/5115) ## 测试 容器(CANN 9.0.0,aarch64)端到端 CI -f 验证: - ada_cast(common 插件源)CI -f:Trigger Ut op_host_ut:ada_cast → OnnxAdaCastPluginTest 2 用例 PASSED,rc=0。 - elu(算子级插件源 activation/elu/framework/elu_onnx_plugin.cpp,扩展正则 新增覆盖)CI -f:Trigger Ut op_host_ut:elu → OnnxEluPluginTest 2 用例 PASSED,rc=0。 - relu(非框架算子、不涉及 onnx,回归)CI -f:门槛不命中 common framework, 无 No SOURCES 报错,7 用例 PASSED,rc=0(即不涉及 onnx 的 PR 不受影响)。 - ada_cast 迁移本身:protobuf-free 编译通过,硬标准 onnx_common.h/ge::onnx::/Message 零残留。 本地 git diff --check 通过;py_compile 通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9618 | 15 天前 | |
调整cube_utils的源码和ut的位置 Co-authored-by: jiang-mingming01<jiangmingming16@h-partners.com> # message auto-generated for no-merge-commit merge: !9060 merge br_mingmingj_mv_cube_utils_0824 into master 调整cube_utils的源码和ut的位置 Created-by: jiang-mingming01 Commit-by: jiang-mingming01 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> t调整cube_utils的源码和ut的位置 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT在在--opgraph -u或者ut_test_all的时候触发 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9060 | 23 天前 |