| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10320 merge refactor/arch35-pooling-kernel-dup into master refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.AdaptiveAvgPool2D 模板逻辑收编:将 IS_FIRST、rowCount==2/3 的手工展开实现统一为 IS_FIRST / ROW_NUM 编译期模板,合并行累加、额外列累加及 Kw2 等重复逻辑。 2.AvgPoolV2Grad 向量计算收编:将 NCHW int64 索引路径的主块与尾块计算统一为 MultiLineVF2BlockInt64,并将 NHWC 的 w 整块与尾块计算统一为 MergeWBlock。 3.PoolGrad 公共能力收编:抽取 NCHW 反向公共字段,以及 NHWC merge-HWC、merge-HWC-int64 公共计算逻辑,供 arch35 Kernel 复用。 4.AdaptivePool3D 参数解析收编:统一 Avg/Max parallel pool 的公共参数解析与块切分参数,新增 arch35 专用公共结构,保持原有参数含义和切分行为不变。 5.AdaptiveAvgPool3DGrad Kernel 收编:抽取 NCDHW big/small Kernel 的公共字段及参数解析逻辑,减少不同 Kernel 实现之间的重复代码。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10320 | 14 天前 | |
修改部分池化算子aclnn md文件的950确定性描述 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !9888 merge fixPoolingmd into master 修改部分池化算子aclnn md文件的950确定性描述 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改部分池化算子aclnn md文件的950确定性描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5535 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 修改部分池化算子aclnn md文件的950确定性描述 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9888 | 24 天前 | |
feat:nn add aclnn testcase and golden again. Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !9634 merge master into master feat:nn add aclnn testcase and golden again. Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充了一批算子的st用例 和 golden。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5587 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> st用例均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9634 | 21 天前 | |
refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10320 merge refactor/arch35-pooling-kernel-dup into master refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.AdaptiveAvgPool2D 模板逻辑收编:将 IS_FIRST、rowCount==2/3 的手工展开实现统一为 IS_FIRST / ROW_NUM 编译期模板,合并行累加、额外列累加及 Kw2 等重复逻辑。 2.AvgPoolV2Grad 向量计算收编:将 NCHW int64 索引路径的主块与尾块计算统一为 MultiLineVF2BlockInt64,并将 NHWC 的 w 整块与尾块计算统一为 MergeWBlock。 3.PoolGrad 公共能力收编:抽取 NCHW 反向公共字段,以及 NHWC merge-HWC、merge-HWC-int64 公共计算逻辑,供 arch35 Kernel 复用。 4.AdaptivePool3D 参数解析收编:统一 Avg/Max parallel pool 的公共参数解析与块切分参数,新增 arch35 专用公共结构,保持原有参数含义和切分行为不变。 5.AdaptiveAvgPool3DGrad Kernel 收编:抽取 NCDHW big/small Kernel 的公共字段及参数解析逻辑,减少不同 Kernel 实现之间的重复代码。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10320 | 14 天前 | |
fix(adaptive_max_pool2d): simt tiling报错文案中文顿号改为英文逗号 Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !10738 merge dev_issue into master fix(adaptive_max_pool2d): simt tiling报错文案中文顿号改为英文逗号 Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 simt tiling报错文案中文顿号改为英文逗号 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5988 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10738 | 10 天前 | |
refactor(pooling): share ascend950 host and kernel helpers Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10034 merge refactor/pooling-p2-host-tiling-common-20260908 into master refactor(pooling): share ascend950 host and kernel helpers Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 1. **Host/Tiling 公共逻辑收编**:统一 AvgPoolGrad/AvgPoolV2Grad 的公共结构、Padding 计算、Shape/Dtype 解析及维度常量。 2. **AdaptivePool3D 参数结构收编**:抽取 Avg/Max AdaptivePool3D 共用的 ComputeInfo 字段,保持原有内存布局和序列化行为不变。 3. **Big Kernel 公共能力收编**:复用 Pool3D 公共的 Cast、数据读写、索引计算、ReduceMaxWithIndex 及 Sum 计算逻辑。 4. **数据搬运逻辑收编**:统一 AvgPool/MaxPoolV3 的多行 CopyIn、UB Strided Copy 等重复搬运实现,保持偏移和 DataCopy 参数不变。 5. **Small Kernel 与 3D Grad 基类收编**:抽取公共 IO 初始化、队列、Buffer、Tiling 解析及成员字段,减少多个 Kernel 类重复代码。 6. **严格限定等价代码整改**:仅合并完全一致逻辑,不修改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10034 | 19 天前 | |
修改部分池化算子aclnn md文件的950确定性描述 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !9888 merge fixPoolingmd into master 修改部分池化算子aclnn md文件的950确定性描述 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改部分池化算子aclnn md文件的950确定性描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5535 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 修改部分池化算子aclnn md文件的950确定性描述 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9888 | 24 天前 | |
refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10320 merge refactor/arch35-pooling-kernel-dup into master refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.AdaptiveAvgPool2D 模板逻辑收编:将 IS_FIRST、rowCount==2/3 的手工展开实现统一为 IS_FIRST / ROW_NUM 编译期模板,合并行累加、额外列累加及 Kw2 等重复逻辑。 2.AvgPoolV2Grad 向量计算收编:将 NCHW int64 索引路径的主块与尾块计算统一为 MultiLineVF2BlockInt64,并将 NHWC 的 w 整块与尾块计算统一为 MergeWBlock。 3.PoolGrad 公共能力收编:抽取 NCHW 反向公共字段,以及 NHWC merge-HWC、merge-HWC-int64 公共计算逻辑,供 arch35 Kernel 复用。 4.AdaptivePool3D 参数解析收编:统一 Avg/Max parallel pool 的公共参数解析与块切分参数,新增 arch35 专用公共结构,保持原有参数含义和切分行为不变。 5.AdaptiveAvgPool3DGrad Kernel 收编:抽取 NCDHW big/small Kernel 的公共字段及参数解析逻辑,减少不同 Kernel 实现之间的重复代码。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10320 | 14 天前 | |
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 | 11 天前 | |
[CANNBot]新增AvgPool1D算子 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !8290 merge add_avg_pool1d into master [CANNBot]新增AvgPool1D算子 Created-by: wkkk0528 Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 AvgPool1D算子支持Ascend950 AvgPool1D是一维平均池化算子,采用AscendC SIMT实现,支持Grid-Stride多核并行+单线程内顺序确定性累加,不使用原子操作。支持不对称padding、ceil_mode输出长度修正和count_include_pad分母选择。 ## 关联的issue https://gitcode.com/cann/ops-nn/issues/4821 ## 测试 - 编译验证通过(ascend950 --pkg) - TTK Kernel通路测试通过(315用例100%通过) - 三方比对测试通过(NPU vs CPU vs GPU) - 确定性验证通过(单线程内顺序累加,无atomicAdd) ## 文档更新 - 新增README.md - 新增op_graph原型定义 - 更新op_list.md ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent 生成声明 代码来源: - [ ] 纯人工手写 - [ ] AI辅助编写 - [x] AI完全生成 人工审查:已完成 测试验证:已通过 合规检查:已完成 See merge request: cann/ops-nn!8290 | 1 个月前 | |
feat(aicpu): enable constant folding for migrated ops Co-authored-by: hid29204727<wangboyu20@huawei.com> # message auto-generated for no-merge-commit merge: !9280 merge codex/aicpu-const-folding into master feat(aicpu): enable constant folding for migrated ops Created-by: hid29204727 Commit-by: hid29204727 Merged-by: cann-robot Description: ## 描述 补充 ops-nn 仓 AICPU host 常量折叠注册通路,并为当前已标记 OPEN_OPS_FLAG 的 18 个迁移算子统一开启常量折叠支持。 主要改动: - 新增仓级 OPS_NN_REGISTER_CPU_KERNELV2 注册包装宏,host 构建优先注册 V2,device/custom/UT 保持 V1 回退。 - 为 add_modules_sources 和 add_all_modules_sources 增加 HOSTCPU 参数及 host OBJECT 收集逻辑。 - 为 18 个 OPEN_OPS_FLAG 算子补充 HOSTCPU TRUE、注册头文件和 V2 注册。 - host OBJECT 汇入 libopconstant_folding_nn.so。 ## 关联的Issue 无。 ## 测试 已完成以下静态验证: - git diff --check 通过。 - 18 个 OPEN_OPS_FLAG 算子均具备 HOSTCPU TRUE。 - 18 个算子均使用 OPS_NN_REGISTER_CPU_KERNELV2,无直接 V1 注册残留。 - 注册头文件、host 编译宏和仓级 so 收集通路检查通过。 当前 Windows 环境缺少 CANN、NPU、CMake 和远端构建桥,未执行 bash build.sh --pkg -j16;完整打包构建及常量折叠功能验证待 CANN Linux 环境/CI 完成。 ## 文档更新 无仓内文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9280 | 10 天前 | |
本 PR 为 6 个算子新增 ascend350 平台的适配支持(EmbeddingBag、EmbeddingDenseGrad、EmbeddingDenseGradV2、AvgPool3D、AvgPool3DGrad、MaxPoolWithArgmax),和 1 个 算子 fusion pass 通路(max_pool_fusion_pass.cpp)的 ascend350 适配。 Co-authored-by: duxinlei<duxinlei@h-partners.com> Co-authored-by: u010470851<shangguanqinnan@huawei.com> # message auto-generated for no-merge-commit merge: !10135 merge ascend3500909 into master ascend350 算子适配350平台 Created-by: duxinlei Commit-by: duxinlei;u010470851 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 给 6 个算子新增 ascend350 平台的适配支持(EmbeddingBag、EmbeddingDenseGrad、EmbeddingDenseGradV2、AvgPool3D、AvgPool3DGrad、MaxPoolWithArgmax),给 1 个 算子 fusion pass 通路(max_pool_fusion_pass.cpp)新增 ascend350 适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5820](https://gitcode.com/cann/ops-nn/issues/5820) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> david冒烟 david通路测试 dvlite通路测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10135 | 17 天前 | |
fix(avg_pool3_d_grad): l0op接口divisorOverride改为int64_t并对超int32范围值做截断 Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !10528 merge dev_int32_avg into master fix(avg_pool3_d_grad): l0op接口divisorOverride改为int64_t并对超int32范围值做截断 Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 l0op接口divisorOverride改为int64_t并对超int32范围值做截断 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5913 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10528 | 11 天前 | |
refactor(pooling): share ascend950 host and kernel helpers Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10034 merge refactor/pooling-p2-host-tiling-common-20260908 into master refactor(pooling): share ascend950 host and kernel helpers Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 1. **Host/Tiling 公共逻辑收编**:统一 AvgPoolGrad/AvgPoolV2Grad 的公共结构、Padding 计算、Shape/Dtype 解析及维度常量。 2. **AdaptivePool3D 参数结构收编**:抽取 Avg/Max AdaptivePool3D 共用的 ComputeInfo 字段,保持原有内存布局和序列化行为不变。 3. **Big Kernel 公共能力收编**:复用 Pool3D 公共的 Cast、数据读写、索引计算、ReduceMaxWithIndex 及 Sum 计算逻辑。 4. **数据搬运逻辑收编**:统一 AvgPool/MaxPoolV3 的多行 CopyIn、UB Strided Copy 等重复搬运实现,保持偏移和 DataCopy 参数不变。 5. **Small Kernel 与 3D Grad 基类收编**:抽取公共 IO 初始化、队列、Buffer、Tiling 解析及成员字段,减少多个 Kernel 类重复代码。 6. **严格限定等价代码整改**:仅合并完全一致逻辑,不修改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10034 | 19 天前 | |
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 | 11 天前 | |
修改VC7组cleancode数据 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !10682 merge fixCCV7 into master 修改VC7组cleancode数据 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 按 VC7 cleancode 规则整改 pooling 模块 2 处 C++ 语言规则扫描告警,均为等价重构,不改变任何计算逻辑与行为: 1. avg_pool_v2_grad_infershape.cpp:CheckNonSpatialDimIsOne 的 context 入参补 const 修饰(函数内仅读取上下文,const 正确性); 2. pool3d_grad_ncdhw_small_kernel_tiling.cpp:TrySplitAlignedAxis 二分搜索上界计算 axisX / 2 中的魔法数字 2 替换为文件内既有具名常量 DOUBLE(static constexpr int64_t DOUBLE = 2),与同文件其他位置的用法保持一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3521 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 受影响算子 ophost UT 全量通过:avg_pool_v2_grad、max_pool3d_grad、adaptive_avg_pool3d_grad 共 351/351 例(覆盖两处改动文件的 infershape / tiling 用例) 改动仅为 const 修饰与具名常量替换,取值与计算逻辑不变;CI 编译流水线已触发 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:cleancode 告警整改(等价重构,无功能变更) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10682 | 10 天前 | |
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 | 2 个月前 | |
feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9685 merge tf-plugin-part2 into master feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 为 TensorFlow(TF)算子插件迁移的第二批(分支 tf-plugin-part2),新增 21 个 *_tf_plugin.cpp 插件注册文件,覆盖 common、conv、matmul、pooling、optim、norm、index、vfusion 模块。每个文件通过 REGISTER_CUSTOM_OP 将 TF 框架算子注册为自定义算子: - .FrameworkType(TENSORFLOW):声明算子来源于 TF 框架; - .OriginOpType(...):映射原始 TF 算子类型(含 Resource* 变体,如 ApplyAddSign / ResourceApplyAddSign); - 参数解析:多数算子通过 AutoMappingByOpFn 自动映射属性;Conv2D 额外将 filter format 固定为 HWCN,并根据 explicit_paddings 与输入 format(NCHW/NHWC)生成 pads 属性;Conv2DBackpropInput / Conv2DBackpropFilter / Conv3DBackpropFilter / Conv3DBackpropInput / AvgPool3D 等设置 NDHWC/NCDHW/DHWCN 等 format 与 pads 默认值;BatchMatMulV2 将 adj_x / adj_y 映射为 adj_x1 / adj_x2,并对 BatchMatMulV3 提供 ParseOpToGraphFn 将算子展开为 Data -> BatchMatMulV3 -> Cast 子图;InstanceNormGrad 提供 FusionParseParamsFn 融合参数解析接口; - .ImplyType(ImplyType::TVM):所有注册算子采用 TVM 实现。 ### 新增算子清单(21 个文件) | 文件 | 注册算子(OriginOpType) | |------|-------------------------| | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign(ApplyAddSign / ResourceApplyAddSign) | | common/src/framework/basic_lstm_cell_tf_plugin.cpp | BasicLSTMCell | | common/src/framework/basic_lstm_cell_grad_tf_plugin.cpp | BasicLSTMCellCStateGrad / BasicLSTMCellWeightGrad / BasicLSTMCellInputGrad | | common/src/framework/dynamic_lstm_tf_plugin.cpp | DynamicLSTM | | conv/conv2d_v2/framework/conv2d_tf_plugin.cpp | Conv2D | | conv/conv3d_v2/framework/conv3d_tf_plugin.cpp | Conv3D | | conv/conv3d_backprop_filter_v2/framework/conv2d_backprop_filter_tf_plugin.cpp | Conv2DBackpropFilter | | conv/conv3d_backprop_filter_v2/framework/conv3d_backprop_filter_tf_plugin.cpp | Conv3DBackpropFilter(Conv3DBackpropFilterV2) | | conv/conv3d_backprop_input_v2/framework/conv2d_backprop_input_tf_plugin.cpp | Conv2DBackpropInput | | conv/conv3d_backprop_input_v2/framework/conv3d_backprop_input_tf_plugin.cpp | Conv3DBackpropInput(Conv3DBackpropInputV2) | | index/non_zero_with_value_shape_v2/framework/non_zero_with_value_shape_v2_tf_plugin.cpp | NonZeroWithValueShapeV2 | | matmul/mat_mul_v3/framework/matmul_tf_plugin.cpp | MatMulV2(MatMul) | | matmul/batch_mat_mul_v3/framework/batch_matmul_tf_plugin.cpp | BatchMatMulV2(BatchMatMul / BatchMatMulV2 / BatchMatMulV3) | | norm/instance_norm_grad/framework/instance_norm_grad_tf_plugin.cpp | InstanceNormGrad | | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA(ApplyAdagradDA / ResourceApplyAdagradDA) | | optim/inplace_apply_adagrad_v2/framework/apply_adagradv2_tf_plugin.cpp | ApplyAdagradV2(ApplyAdagradV2 / ResourceApplyAdagradV2) | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign(ApplyPowerSign / ResourceApplyPowerSign) | | pooling/avg_pool3_d/framework/avg_pool3d_tf_plugin.cpp | AvgPool3D | | pooling/dilation2_d/framework/dilation2d_tf_plugin.cpp | Dilation2D | | pooling/max_pool_3d_grad_grad/framework/max_pool3d_grad_grad_tf_plugin.cpp | MaxPool3DGradGrad | | vfusion/normalize_bbox/framework/normalize_bbox_tf_plugin.cpp | NormalizeBBox | ### 改动原因 TF 算子插件迁移系列工作的第二批:将 TF 算子按模块拆分为独立的 */framework/*_tf_plugin.cpp 注册文件,统一注册方式与代码组织。 ## 关联的Issue - #5464 ## 测试 本次变更仅新增插件注册文件,未包含测试用例变更。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9685 | 25 天前 | |
fix(global_lp_pool):初始化workspace size, 修复arch35异常(#5504) Co-authored-by: 2637309376@qq.com<lixin849@huawei.com> # message auto-generated for no-merge-commit merge: !9774 merge fix-global-lp-pool-workspace into master fix(global_lp_pool):初始化workspace size, 修复arch35异常(#5504) Created-by: weixin_68109557 Commit-by: 2637309376@qq.com Merged-by: cann-robot Description: ## 描述 Bug修复:global_lp_pool arch35 workspace size 初始化。 ## 关联的Issue 关联 Issue:#5504 ## 测试 CI 流水线已全部通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9774 | 24 天前 | |
本 PR 为 6 个算子新增 ascend350 平台的适配支持(EmbeddingBag、EmbeddingDenseGrad、EmbeddingDenseGradV2、AvgPool3D、AvgPool3DGrad、MaxPoolWithArgmax),和 1 个 算子 fusion pass 通路(max_pool_fusion_pass.cpp)的 ascend350 适配。 Co-authored-by: duxinlei<duxinlei@h-partners.com> Co-authored-by: u010470851<shangguanqinnan@huawei.com> # message auto-generated for no-merge-commit merge: !10135 merge ascend3500909 into master ascend350 算子适配350平台 Created-by: duxinlei Commit-by: duxinlei;u010470851 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 给 6 个算子新增 ascend350 平台的适配支持(EmbeddingBag、EmbeddingDenseGrad、EmbeddingDenseGradV2、AvgPool3D、AvgPool3DGrad、MaxPoolWithArgmax),给 1 个 算子 fusion pass 通路(max_pool_fusion_pass.cpp)新增 ascend350 适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5820](https://gitcode.com/cann/ops-nn/issues/5820) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> david冒烟 david通路测试 dvlite通路测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10135 | 17 天前 | |
refactor(pooling): share ascend950 host and kernel helpers Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10034 merge refactor/pooling-p2-host-tiling-common-20260908 into master refactor(pooling): share ascend950 host and kernel helpers Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 1. **Host/Tiling 公共逻辑收编**:统一 AvgPoolGrad/AvgPoolV2Grad 的公共结构、Padding 计算、Shape/Dtype 解析及维度常量。 2. **AdaptivePool3D 参数结构收编**:抽取 Avg/Max AdaptivePool3D 共用的 ComputeInfo 字段,保持原有内存布局和序列化行为不变。 3. **Big Kernel 公共能力收编**:复用 Pool3D 公共的 Cast、数据读写、索引计算、ReduceMaxWithIndex 及 Sum 计算逻辑。 4. **数据搬运逻辑收编**:统一 AvgPool/MaxPoolV3 的多行 CopyIn、UB Strided Copy 等重复搬运实现,保持偏移和 DataCopy 参数不变。 5. **Small Kernel 与 3D Grad 基类收编**:抽取公共 IO 初始化、队列、Buffer、Tiling 解析及成员字段,减少多个 Kernel 类重复代码。 6. **严格限定等价代码整改**:仅合并完全一致逻辑,不修改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10034 | 19 天前 | |
refactor(pooling): share ascend950 host and kernel helpers Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10034 merge refactor/pooling-p2-host-tiling-common-20260908 into master refactor(pooling): share ascend950 host and kernel helpers Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 1. **Host/Tiling 公共逻辑收编**:统一 AvgPoolGrad/AvgPoolV2Grad 的公共结构、Padding 计算、Shape/Dtype 解析及维度常量。 2. **AdaptivePool3D 参数结构收编**:抽取 Avg/Max AdaptivePool3D 共用的 ComputeInfo 字段,保持原有内存布局和序列化行为不变。 3. **Big Kernel 公共能力收编**:复用 Pool3D 公共的 Cast、数据读写、索引计算、ReduceMaxWithIndex 及 Sum 计算逻辑。 4. **数据搬运逻辑收编**:统一 AvgPool/MaxPoolV3 的多行 CopyIn、UB Strided Copy 等重复搬运实现,保持偏移和 DataCopy 参数不变。 5. **Small Kernel 与 3D Grad 基类收编**:抽取公共 IO 初始化、队列、Buffer、Tiling 解析及成员字段,减少多个 Kernel 类重复代码。 6. **严格限定等价代码整改**:仅合并完全一致逻辑,不修改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10034 | 19 天前 | |
MaxPool3dWithArgmaxV2算子含SyncAll模板tiling设置SetScheduleMode(1) Co-authored-by: Super User<root@liteserver-hps-gui7-0-00001.novalocal> # message auto-generated for no-merge-commit merge: !10283 merge master into master MaxPool3dWithArgmaxV2算子含SyncAll模板tiling设置SetScheduleMode(1) Created-by: wsunmoon Commit-by: Super User Merged-by: cann-robot Description: ## 描述 大kernel模板 Tiling侧添加context->SetScheduleMode(1) ## 关联的Issue 关联Issue [#5805](https://gitcode.com/cann/ops-nn/issues/5805) ## 测试 冒烟,UT, ST ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10283 | 16 天前 | |
feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9685 merge tf-plugin-part2 into master feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 为 TensorFlow(TF)算子插件迁移的第二批(分支 tf-plugin-part2),新增 21 个 *_tf_plugin.cpp 插件注册文件,覆盖 common、conv、matmul、pooling、optim、norm、index、vfusion 模块。每个文件通过 REGISTER_CUSTOM_OP 将 TF 框架算子注册为自定义算子: - .FrameworkType(TENSORFLOW):声明算子来源于 TF 框架; - .OriginOpType(...):映射原始 TF 算子类型(含 Resource* 变体,如 ApplyAddSign / ResourceApplyAddSign); - 参数解析:多数算子通过 AutoMappingByOpFn 自动映射属性;Conv2D 额外将 filter format 固定为 HWCN,并根据 explicit_paddings 与输入 format(NCHW/NHWC)生成 pads 属性;Conv2DBackpropInput / Conv2DBackpropFilter / Conv3DBackpropFilter / Conv3DBackpropInput / AvgPool3D 等设置 NDHWC/NCDHW/DHWCN 等 format 与 pads 默认值;BatchMatMulV2 将 adj_x / adj_y 映射为 adj_x1 / adj_x2,并对 BatchMatMulV3 提供 ParseOpToGraphFn 将算子展开为 Data -> BatchMatMulV3 -> Cast 子图;InstanceNormGrad 提供 FusionParseParamsFn 融合参数解析接口; - .ImplyType(ImplyType::TVM):所有注册算子采用 TVM 实现。 ### 新增算子清单(21 个文件) | 文件 | 注册算子(OriginOpType) | |------|-------------------------| | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign(ApplyAddSign / ResourceApplyAddSign) | | common/src/framework/basic_lstm_cell_tf_plugin.cpp | BasicLSTMCell | | common/src/framework/basic_lstm_cell_grad_tf_plugin.cpp | BasicLSTMCellCStateGrad / BasicLSTMCellWeightGrad / BasicLSTMCellInputGrad | | common/src/framework/dynamic_lstm_tf_plugin.cpp | DynamicLSTM | | conv/conv2d_v2/framework/conv2d_tf_plugin.cpp | Conv2D | | conv/conv3d_v2/framework/conv3d_tf_plugin.cpp | Conv3D | | conv/conv3d_backprop_filter_v2/framework/conv2d_backprop_filter_tf_plugin.cpp | Conv2DBackpropFilter | | conv/conv3d_backprop_filter_v2/framework/conv3d_backprop_filter_tf_plugin.cpp | Conv3DBackpropFilter(Conv3DBackpropFilterV2) | | conv/conv3d_backprop_input_v2/framework/conv2d_backprop_input_tf_plugin.cpp | Conv2DBackpropInput | | conv/conv3d_backprop_input_v2/framework/conv3d_backprop_input_tf_plugin.cpp | Conv3DBackpropInput(Conv3DBackpropInputV2) | | index/non_zero_with_value_shape_v2/framework/non_zero_with_value_shape_v2_tf_plugin.cpp | NonZeroWithValueShapeV2 | | matmul/mat_mul_v3/framework/matmul_tf_plugin.cpp | MatMulV2(MatMul) | | matmul/batch_mat_mul_v3/framework/batch_matmul_tf_plugin.cpp | BatchMatMulV2(BatchMatMul / BatchMatMulV2 / BatchMatMulV3) | | norm/instance_norm_grad/framework/instance_norm_grad_tf_plugin.cpp | InstanceNormGrad | | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA(ApplyAdagradDA / ResourceApplyAdagradDA) | | optim/inplace_apply_adagrad_v2/framework/apply_adagradv2_tf_plugin.cpp | ApplyAdagradV2(ApplyAdagradV2 / ResourceApplyAdagradV2) | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign(ApplyPowerSign / ResourceApplyPowerSign) | | pooling/avg_pool3_d/framework/avg_pool3d_tf_plugin.cpp | AvgPool3D | | pooling/dilation2_d/framework/dilation2d_tf_plugin.cpp | Dilation2D | | pooling/max_pool_3d_grad_grad/framework/max_pool3d_grad_grad_tf_plugin.cpp | MaxPool3DGradGrad | | vfusion/normalize_bbox/framework/normalize_bbox_tf_plugin.cpp | NormalizeBBox | ### 改动原因 TF 算子插件迁移系列工作的第二批:将 TF 算子按模块拆分为独立的 */framework/*_tf_plugin.cpp 注册文件,统一注册方式与代码组织。 ## 关联的Issue - #5464 ## 测试 本次变更仅新增插件注册文件,未包含测试用例变更。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9685 | 25 天前 | |
[CANNBot]MaxPoolExt2算子支持Ascend950 Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !8297 merge add_max_pool_ext2 into master [CANNBot]MaxPoolExt2算子支持Ascend950 Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 MaxPoolExt2算子支持Ascend950 - 算子功能:最大池化算子,兼容TensorFlow tf.nn.max_pool2d - 实现策略:simt实现max_pool_ext2 - 支持dtype:float16/float32/int8/int16/int32/int64/uint8/uint16 - 支持padding:SAME/VALID - 支持data_format:NHWC(默认)/NCHW ## 关联的issue https://gitcode.com/cann/ops-nn/issues/5365 ## 测试 - 编译验证:ops-nn仓库编译通过(kernel binary + host库) - TTK上板测试: - 黑盒:100%(217/218) - 白盒:100%(464/464) - 冒烟:1982、1971均通过 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent 生成声明 代码来源: - [ ] 纯人工手写 - [ ] AI 辅助编写 - [x] AI 完全生成 人工审查:已完成 测试验证:已通过 合规检查:已完成 See merge request: cann/ops-nn!8297 | 28 天前 | |
refactor(pooling): share ascend950 host and kernel helpers Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10034 merge refactor/pooling-p2-host-tiling-common-20260908 into master refactor(pooling): share ascend950 host and kernel helpers Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 1. **Host/Tiling 公共逻辑收编**:统一 AvgPoolGrad/AvgPoolV2Grad 的公共结构、Padding 计算、Shape/Dtype 解析及维度常量。 2. **AdaptivePool3D 参数结构收编**:抽取 Avg/Max AdaptivePool3D 共用的 ComputeInfo 字段,保持原有内存布局和序列化行为不变。 3. **Big Kernel 公共能力收编**:复用 Pool3D 公共的 Cast、数据读写、索引计算、ReduceMaxWithIndex 及 Sum 计算逻辑。 4. **数据搬运逻辑收编**:统一 AvgPool/MaxPoolV3 的多行 CopyIn、UB Strided Copy 等重复搬运实现,保持偏移和 DataCopy 参数不变。 5. **Small Kernel 与 3D Grad 基类收编**:抽取公共 IO 初始化、队列、Buffer、Tiling 解析及成员字段,减少多个 Kernel 类重复代码。 6. **严格限定等价代码整改**:仅合并完全一致逻辑,不修改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10034 | 19 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 26 天前 | |
fix: 日志规范性整改 Co-authored-by: duxinlei<duxinlei@h-partners.com> # message auto-generated for no-merge-commit merge: !9059 merge 0824LogModify into master fix: 日志规范性整改 Created-by: duxinlei Commit-by: duxinlei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 给activation/pooling/index下部分算子做日志规范性整改,修改pr拼写错误、内容错误、关键信息泄露问题; 仅对loge内容做修改,其余部分为pre-commmit格式修改; ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #5185 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> david冒烟 obp冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9059 | 28 天前 | |
fix: 日志规范性整改 Co-authored-by: duxinlei<duxinlei@h-partners.com> # message auto-generated for no-merge-commit merge: !9059 merge 0824LogModify into master fix: 日志规范性整改 Created-by: duxinlei Commit-by: duxinlei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 给activation/pooling/index下部分算子做日志规范性整改,修改pr拼写错误、内容错误、关键信息泄露问题; 仅对loge内容做修改,其余部分为pre-commmit格式修改; ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #5185 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> david冒烟 obp冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9059 | 28 天前 | |
feat: 新增16个算子的TensorFlow插件注册 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9643 merge tf_plugin into master feat: 新增16个算子的TensorFlow插件注册 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本次变更为 16 个算子新增 TensorFlow 框架插件注册( *_tf_plugin.cpp),使这些算子在 TensorFlow 图解析时可通过 REGISTER_CUSTOM_OP 自动映射到昇腾算子(AutoMappingByOpFn,ImplyType::TVM),注册模式与仓库内已有 *_tf_plugin.cpp 文件保持一致。 新增注册的算子(16 个): | 算子 | 注册文件 | |------|----------| | PReluGrad | activation/p_relu_grad_update/framework/prelu_grad_tf_plugin.cpp | | Centralization | common/src/framework/centralization_tf_plugin.cpp | | DynamicAUGRUGrad | common/src/framework/dynamic_augru_grad_tf_plugin.cpp | | DynamicAUGRU | common/src/framework/dynamic_augru_tf_plugin.cpp | | DynamicGRUV2Grad | common/src/framework/dynamic_gruv2_grad_tf_plugin.cpp | | DynamicGRUV2 | common/src/framework/dynamic_gruv2_tf_plugin.cpp | | DynamicRNNGrad | common/src/framework/dynamic_rnn_grad_tf_plugin.cpp | | LRNGrad | common/src/framework/lrn_grad_tf_plugin.cpp | | LRN | common/src/framework/lrn_tf_plugin.cpp | | LRUCacheV2 | common/src/framework/lru_cache_v2_tf_plugin.cpp | | MaxPoolGradGrad | common/src/framework/max_pool_grad_grad_tf_plugin.cpp | | BNInferGrad | norm/bn_infer_grad/framework/bn_infer_grad_tf_plugin.cpp | | MaxPoolGradGradWithArgmax | pooling/max_pool_grad_grad_with_argmax/framework/max_pool_grad_grad_with_argmax_tf_plugin.cpp | | MaxPoolV2 | pooling/max_pool_v2/framework/max_pool_v2_tf_plugin.cpp | | MaxPool | pooling/max_pool_v3/framework/max_pool_v3_tf_plugin.cpp | | Dequantize | quant/dequantize/framework/dequantize_tf_plugin.cpp | ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-nn/issues/5447 ## 测试 本次改动仅为算子注册文件(编译期注册),未包含测试用例。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9643 | 26 天前 | |
fix: 0904日志整改 Co-authored-by: duxinlei<duxinlei@h-partners.com> # message auto-generated for no-merge-commit merge: !10129 merge 0907logModify into master fix: 0904日志整改 Created-by: duxinlei Commit-by: duxinlei Merged-by: cann-robot Description: ## 描述 fix: 0904+0908日志整改+eof日志整改+maxpoolmd的autopad参数错误+maxpoolV3 readme修改 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5607](https://gitcode.com/cann/ops-nn/issues/5607) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 冒烟正常 出包正常 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10129 | 14 天前 | |
refactor(pooling): 重命名MaxPoolGradFusionPass并统一MaxPoolV3Grad的NaN处理策略 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !9988 merge refactor/max-pool-grad-fusion-pass-rename-and-nan-policy into master refactor(pooling): 重命名MaxPoolGradFusionPass并统一MaxPoolV3Grad的NaN处理策略 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: 本 MR 包含两部分内容:融合规则重命名与配套资料、MaxPoolV3Grad 与 MaxPoolGrad 的 NaN 处理策略统一。两部分修改文件零重叠。 ## 一、重命名 MaxPoolGradFusionPass 并补充融合规则资料 将 MaxPoolV3GradFusionPass 统一重命名为 MaxPoolGradFusionPass。原名按被改写后的 **目的算子**命名,但该规则实际匹配的**源算子**是 MaxPoolGrad (kSourceOpTypes = {"MaxPoolGrad"}),与前向 MaxPool --> MaxPoolV3 的 MaxPoolFusionPass 命名方式保持一致。 纯 1:1 重命名,无逻辑变更: | 项 | 原 | 新 | | --- | --- | --- | | 实现文件 | max_pool_v3_grad_fusion_pass.cpp | max_pool_grad_fusion_pass.cpp | | 头文件 | max_pool_v3_grad_fusion_pass.h | max_pool_grad_fusion_pass.h | | 头文件宏 | OPS_MAX_POOL_V3_GRAD_FUSION_PASS_H | OPS_MAX_POOL_GRAD_FUSION_PASS_H | | 类名 | MaxPoolV3GradFusionPass | MaxPoolGradFusionPass | | 注册名 | MaxPoolV3GradFusionPass | MaxPoolGradFusionPass | | UT 文件 | test_max_pool_v3_grad_fusion_pass.cpp | test_max_pool_grad_fusion_pass.cpp | | UT 套件 | MaxPoolV3GradFusionPassTest | MaxPoolGradFusionPassTest | 新增 pooling/max_pool_v3_grad/docs/MaxPoolGradFusionPass.md 及配图,说明 MaxPoolGrad --> MaxPoolV3Grad 的融合规则、匹配条件与约束。op_graph 与 UT 的 CMakeLists 均以 glob 收集源文件,重命名不影响构建。 ## 二、统一 NaN 处理策略 MaxPoolV3Grad 此前通过模板参数选用 MAX_SELECT_NAN_IGNORE,与 MaxPoolGrad 的 MAX_SELECT_NAN_PROPAGATE 语义不一致。本次删除整套策略开关,两个算子统一采用 MaxPoolGrad 的 NaN 传播语义。 删除 MaxSelectPolicy 枚举及 MaxPoolGradSIMT 的 Policy 模板参数, CycleUpdate、MaxPoolNchw、MaxPoolNhwc 及各 asc_vf_call 同步去除该参数, 调用方 max_pool_grad.cpp 与 max_pool_v3_grad.cpp 不再传递策略。 关于最大值初值:原 PROPAGATE 分支用 NumericLimits<T>::NegativeInfinity(),该接口 仅支持 half/float/bfloat16。MaxPoolGrad 只有 3 种浮点 dtype 故可用,而 MaxPoolV3Grad 支持 9 种 dtype(含 int8/int16/int32/int64/uint8/uint16),直接复用会触发 static_assert 编译失败;NumericLimits<T>::Lowest() 同样不覆盖 int64,且对浮点 会在窗口同时含 -inf 与 Lowest() 时选错 argmax。因此改为复用本文件原 IGNORE 分支 已有的 maxIdx < 0 空累加器哨兵,无需任何初值常量: if ((*maxIdx < 0) || (val > *maxVal) || isnan(val)) 初值 maxVal = 0、maxIdx = -1 两行均取自原 IGNORE 分支,未引入新符号。 行为说明:NaN 恒胜出,窗口内按行优先扫描的最后一个 NaN 接收梯度;非 NaN 等值 first-wins。与原 MaxPoolGrad PROPAGATE 分支逐例等价(30 万组含 -inf/+inf/NaN/Lowest 的随机窗口 argmax 完全一致)。 同步更新 README 特殊值处理与确定性说明;golden 改为直接复现 kernel 的选择规则, 替换原先屏蔽 NaN 的编码实现。 ## 测试 本地验证通过,算子门槛用例全部验证通过,无功能影响,线上David冒烟和OBP冒烟均通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 新增MaxPoolGradFusionPass.md文档,更新README.md部分描述 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9988 | 20 天前 | |
本 PR 为 6 个算子新增 ascend350 平台的适配支持(EmbeddingBag、EmbeddingDenseGrad、EmbeddingDenseGradV2、AvgPool3D、AvgPool3DGrad、MaxPoolWithArgmax),和 1 个 算子 fusion pass 通路(max_pool_fusion_pass.cpp)的 ascend350 适配。 Co-authored-by: duxinlei<duxinlei@h-partners.com> Co-authored-by: u010470851<shangguanqinnan@huawei.com> # message auto-generated for no-merge-commit merge: !10135 merge ascend3500909 into master ascend350 算子适配350平台 Created-by: duxinlei Commit-by: duxinlei;u010470851 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 给 6 个算子新增 ascend350 平台的适配支持(EmbeddingBag、EmbeddingDenseGrad、EmbeddingDenseGradV2、AvgPool3D、AvgPool3DGrad、MaxPoolWithArgmax),给 1 个 算子 fusion pass 通路(max_pool_fusion_pass.cpp)新增 ascend350 适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5820](https://gitcode.com/cann/ops-nn/issues/5820) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> david冒烟 david通路测试 dvlite通路测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10135 | 17 天前 | |
refactor(pooling): share ascend950 host and kernel helpers Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10034 merge refactor/pooling-p2-host-tiling-common-20260908 into master refactor(pooling): share ascend950 host and kernel helpers Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 1. **Host/Tiling 公共逻辑收编**:统一 AvgPoolGrad/AvgPoolV2Grad 的公共结构、Padding 计算、Shape/Dtype 解析及维度常量。 2. **AdaptivePool3D 参数结构收编**:抽取 Avg/Max AdaptivePool3D 共用的 ComputeInfo 字段,保持原有内存布局和序列化行为不变。 3. **Big Kernel 公共能力收编**:复用 Pool3D 公共的 Cast、数据读写、索引计算、ReduceMaxWithIndex 及 Sum 计算逻辑。 4. **数据搬运逻辑收编**:统一 AvgPool/MaxPoolV3 的多行 CopyIn、UB Strided Copy 等重复搬运实现,保持偏移和 DataCopy 参数不变。 5. **Small Kernel 与 3D Grad 基类收编**:抽取公共 IO 初始化、队列、Buffer、Tiling 解析及成员字段,减少多个 Kernel 类重复代码。 6. **严格限定等价代码整改**:仅合并完全一致逻辑,不修改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10034 | 19 天前 | |
fix: 0907cleancode看板清空 Co-authored-by: duxinlei<duxinlei@h-partners.com> # message auto-generated for no-merge-commit merge: !9937 merge 0907cleancode into master fix: 0907cleancode看板清空 Created-by: duxinlei Commit-by: duxinlei Merged-by: cann-robot Description: ## 描述 fix: 0907cleancode看板清空 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #5607 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9937 | 11 天前 | |
修改VC7组cleancode数据 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !10682 merge fixCCV7 into master 修改VC7组cleancode数据 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 按 VC7 cleancode 规则整改 pooling 模块 2 处 C++ 语言规则扫描告警,均为等价重构,不改变任何计算逻辑与行为: 1. avg_pool_v2_grad_infershape.cpp:CheckNonSpatialDimIsOne 的 context 入参补 const 修饰(函数内仅读取上下文,const 正确性); 2. pool3d_grad_ncdhw_small_kernel_tiling.cpp:TrySplitAlignedAxis 二分搜索上界计算 axisX / 2 中的魔法数字 2 替换为文件内既有具名常量 DOUBLE(static constexpr int64_t DOUBLE = 2),与同文件其他位置的用法保持一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3521 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 受影响算子 ophost UT 全量通过:avg_pool_v2_grad、max_pool3d_grad、adaptive_avg_pool3d_grad 共 351/351 例(覆盖两处改动文件的 infershape / tiling 用例) 改动仅为 const 修饰与具名常量替换,取值与计算逻辑不变;CI 编译流水线已触发 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:cleancode 告警整改(等价重构,无功能变更) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10682 | 10 天前 | |
fix(pooling): 补齐窗口重叠scatter累加的LocalMemBar,修复MaxPoolGradWithArgmax梯度丢失 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !10557 merge fixMaxPoolGrad into master fix(pooling): 补齐窗口重叠scatter累加的LocalMemBar,修复MaxPoolGradWithArgmax梯度丢失 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> **问题现象**:MaxPoolGradWithArgmax(V1/V3) 在 Ascend950 上出现精度问题:kernel>stride(如 NCHW、fp32、k=2/s=1、int64 argmax)等窗口重叠场景梯度偶发丢失(y 偏小,时序相关、难复现);dilation>1 时为确定性丢梯度。 **根因**:scatter 方案(gather→add→scatter)的批处理只保证同一向量调用内各 lane 的窗口互不重叠;k>s 时相邻 GradientAcc 调用的窗口必然共享输入元素,argmax 同指共享区最大值时写读同址。该路径未插入 VEC_STORE→VEC_LOAD 内存屏障(裸指针 + RegTensor 索引,编译器无法自动分析依赖),gather 可能取到 scatter 尚未落地的旧值,丢失一个累加项。V2 max_pool_grad 的 singleLine/multipleLineHw 路径在 isOverlap 时已插入 LocalMemBar<VEC_STORE, VEC_LOAD>,avg_pool_v2_grad、max_pool3d_grad 等同类累加循环亦均有;V3 NCHW/NHWC 的 Do* 路径与 V2 multipleLineProcessVF2 缺失。另外 CalcProBatchSize 按 kernel 而非窗口实际跨度 (kernel-1)*dilation+1 计算批间隔,dilation>1 时同一 scatter 调用内窗口仍会重叠,DataCopyScatter 同址覆盖。 **修复方法**: 1. DoSingleNCNchw/DoMulNCNchw/DoSingleCNhwc/DoMulCNhwc 增加 IS_OVERLAP 模板参数(默认 false,不影响 avg_pool 等已自带屏障的调用方),为 true 时在 GradientAcc 前插入 Reg::LocalMemBar<VEC_STORE, VEC_LOAD>; 2. V3 NCHW(singleLineProcessVF/VF1/VF2/VF2Int64 模板化)、V2 backward、V3 NHWC(CRTP ConCProcVF)按运行时 isOverlap_ 分发 true/false 实例,isOverlap_ 判定含 dilation:(k-1)*d+1 > s; 3. V2 multipleLineProcessVF2 内 8 处漏传 IS_OVERLAP 的 DoMulNCNchw 调用补齐; 4. CalcProBatchSize 改按窗口实际跨度 (kernel-1)*dilation+1 取 CeilDiv(span, stride),保证同批窗口互不重叠;d=1 时与原逻辑完全等价。 受影响算子:max_pool_grad_with_argmax_v3、max_pool_grad(NCHW/NHWC 共享路径,仅 k>s 重叠场景生效,k==s 行为不变)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5910 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ophost UT:max_pool_grad_with_argmax_v3 全部 39 例(tiling/infershape)通过 宿主侧编译检查:21 个 tiling cpp(真实 CANN 头)+ 全部被改 kernel 头(stub + 显式实例化,覆盖新旧 IS_OVERLAP 全部模板实例)编译通过 clang-format / 120 列 / codespell / OAT 合规检查通过 d=1 时 CalcProBatchSize 与 isOverlap_ 判定与原逻辑数学等价,既有 k==s 用例 tiling 行为不变 真机 ST 待验证(本环境无 A5 硬件):原始失败用例(NCHW fp32 k=2/s=1 int64 argmax);确定性复现(输入奇数列放大值,k=2/s=1 下检查奇数列 y 恒为两个 grad 之和);dilation>1 用例(如 k=3/s=2/d=2) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10557 | 11 天前 | |
[CANNBot]PSROIPoolingGradV2D算子支持Ascend950 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !9515 merge add_psroi_pooling_grad_v2 into master [CANNBot]PSROIPoolingGradV2D算子支持Ascend950 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 新增 PSROIPoolingGradV2D 的 Ascend950 实现,支持 FLOAT32,x/y 支持 ND、NCHW,rois 为 ND。包含原型、形状与类型推导、Tiling、Kernel、Golden 及图模式示例。 构建统一使用算子目录 CMake 入口;移除多余 InferShapeRange,规范错误日志,Tiling 按 arch35 目录隔离。同步更新 README 和算子列表。 ## 关联的 Issue 关联 #5348。 ## 测试 - PR 涉及的 18 个文件通过 pre-commit 适用检查(含 clang-format、Ruff、OAT)。 - Ascend950 Host UT:5/5 通过。 - Graph InferDataType 编译通过。 ## 类型标签 - [x] 新特性 - [x] 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9515 | 10 天前 | |
[CANNBot]PSROIPoolingGradV2D算子支持Ascend950 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !9515 merge add_psroi_pooling_grad_v2 into master [CANNBot]PSROIPoolingGradV2D算子支持Ascend950 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 新增 PSROIPoolingGradV2D 的 Ascend950 实现,支持 FLOAT32,x/y 支持 ND、NCHW,rois 为 ND。包含原型、形状与类型推导、Tiling、Kernel、Golden 及图模式示例。 构建统一使用算子目录 CMake 入口;移除多余 InferShapeRange,规范错误日志,Tiling 按 arch35 目录隔离。同步更新 README 和算子列表。 ## 关联的 Issue 关联 #5348。 ## 测试 - PR 涉及的 18 个文件通过 pre-commit 适用检查(含 clang-format、Ruff、OAT)。 - Ascend950 Host UT:5/5 通过。 - Graph InferDataType 编译通过。 ## 类型标签 - [x] 新特性 - [x] 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9515 | 10 天前 | |
从ops-cv迁移ROIPooling到ops-nn Co-authored-by: m0_46386992<wanghongbin19@huawei.com> # message auto-generated for no-merge-commit merge: !9609 merge add_roi_pooling into master 从ops-cv迁移ROIPooling到ops-nn Created-by: m0_46386992 Commit-by: m0_46386992 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 迁移ops-cv仓的ROIPooling到ops-nn下面,避免9.1.0升级兼容性问题,关联代码: https://gitcode.com/cann/ops-nn/pull/9609/ ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5431 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 黑盒、白盒、网络用例精度pass - 二级冒烟通过 - 本地编译PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 更新了README.md文件 - 更新了op_list.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9609 | 26 天前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !318 merge license2 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!318 | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 14 天前 | ||
| 24 天前 | ||
| 21 天前 | ||
| 14 天前 | ||
| 10 天前 | ||
| 19 天前 | ||
| 24 天前 | ||
| 14 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 17 天前 | ||
| 11 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 2 个月前 | ||
| 25 天前 | ||
| 24 天前 | ||
| 17 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 16 天前 | ||
| 25 天前 | ||
| 28 天前 | ||
| 19 天前 | ||
| 26 天前 | ||
| 28 天前 | ||
| 28 天前 | ||
| 26 天前 | ||
| 14 天前 | ||
| 20 天前 | ||
| 17 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 26 天前 | ||
| 9 个月前 |