| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
TF plugin 算子迁移 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7619 merge nn3 into master TF plugin 算子迁移 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!7619 | 3 个月前 | |
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 个月前 | |
fix(maxpool_grad): SIMT tiling 设置 BATCH_MODE 避免跨 block 同步死锁 Co-authored-by: liuchuangdev<liuchuang51@huawei.com> # message auto-generated for no-merge-commit merge: !7101 merge fix/maxpool-grad-simt-batch-mode into master fix(maxpool_grad): SIMT tiling 设置 BATCH_MODE 避免跨 block 同步死锁 Created-by: liuchuangdev Commit-by: liuchuangdev Merged-by: cann-robot Description: ## 描述 MaxPoolGrad 与 MaxPool3DGrad 的 SIMT tiling 未设置 BATCH_MODE(SetScheduleMode(1)),在两段式 kernel 执行 SyncAll() 时存在跨 block 死锁风险。 **修复方法**: 在两个 SIMT tiling 的 PostTiling() 中调用 SetScheduleMode(BATCH_MODE),强制 runtime 将所有 block 同时启动,保证 SyncAll() 不死锁。同时新增 static constexpr uint32_t BATCH_MODE = 1 命名常量替代魔法数,与 max_pool_with_argmax_v3_big_kernel_mul_core_tiling.cpp:38 风格保持一致。 **改动文件**(2 个,各 +2 行): 1. pooling/max_pool3d_grad/op_host/arch35/max_pool3d_grad_simt_tiling.cpp - 新增 BATCH_MODE 常量定义 - PostTiling() 增加 context_->SetScheduleMode(BATCH_MODE) 2. pooling/max_pool_grad/op_host/arch35/max_pool_grad_tiling_simt.cpp - 新增 BATCH_MODE 常量定义 - PostTiling() 增加 context_->SetScheduleMode(BATCH_MODE) 该改动不影响 tilingKey、不影响精度,仅改变 runtime 调度方式,与已修复的同类算子行为完全一致。 ## 关联的Issue [#3866](https://gitcode.com/cann/ops-nn/issues/3866) ## 测试 冒烟测试、基本用例回归 ## 文档更新 NA ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7101 | 3 个月前 | |
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 个月前 | |
新增算子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 个月前 | |
maxPoolGrad simd模板 Co-authored-by: liuchuangdev<liuchuang51@huawei.com> Co-authored-by: qq_52056150<wangshuo179@huawei.com> Co-authored-by: oah28<wujiahao37@huawei.com> # message auto-generated for no-merge-commit merge: !4252 merge max_pool_grad_merge into master maxPoolGrad simd模板 Created-by: liuchuangdev Commit-by: qq_52056150;oah28;liuchuangdev Merged-by: cann-robot Description: ## 描述 ## 一、功能概述 ### 1.1 背景 MaxPoolGrad算子是深度学习中常用的反向传播算子,用于计算池化操作的梯度。针对不同的kernel大小和输入shape,需要不同的计算策略以实现最优性能: - **小kernel场景**:需要高向量化利用率,批量处理减少循环开销 - **大kernel场景**:需要支持kernel分割,避免UB溢出 - **通用场景**:需要支持多种数据格式(NCHW/NHWC)和索引类型(int32/int64) 传统单模式实现难以兼顾所有场景的性能需求,因此设计了**SIMD多模式模板系统**。 ### 1.2 核心特性 本PR实现了完整的SIMD模板系统,包含以下核心特性: | 特性 | 描述 | 技术优势 | |------|------|---------| | **三种Kernel模式** | SmallKernel、BigKernel、SIMT | 自动适配不同场景,性能最优 | | **编译期模板选择** | ASCENDC_TPL机制 | 零运行时开销,编译期确定实现路径 | | **多数据格式支持** | NCHW/NHWC双格式 | 覆盖主流框架需求(PyTorch/TensorFlow) | | **多索引类型支持** | int32/int64双类型 | 兼容不同argmax精度需求 | | **边界检查控制** | IS_CHECK_RANGE开关 | 针对不同场景优化性能 | | **向量API优化** | MicroAPI批量处理 | 高向量化利用率,减少指令数 | ## 二、代码结构 ### 2.1 文件组织 pooling/max_pool_grad/ ├── op_kernel/ │ ├── max_pool_grad.cpp # 主Kernel模板入口 │ ├── arch35/ │ │ ├── max_pool_grad_struct.h # 模板参数定义(ASCENDC_TPL) │ │ ├── max_pool_grad_simt.h # SIMT模式实现 │ │ ├── max_pool_grad_nchw_small_kernel.h # SmallKernel模式实现 │ │ ├── max_pool_grad_nchw_big_kernel.h # BigKernel模式实现 │ │ ├── max_pool_grad_nchw_backward_base.h # Backward公共基类 │ │ └── max_pool_grad_simt.h # SIMT通用实现 │ └── pool_grad_common/ │ └── arch35/ │ ├── max_pool_grad_with_argmax_base_common.h # 公共函数(Gather/Scatter) │ └── max_pool_grad_nchw_scatter_common.h # Scatter处理实现 ├── op_host/ │ └── arch35/ │ ├── max_pool_grad_tiling.cpp # Tiling实现(选择Kernel模式) │ └── max_pool_grad_tiling_simt.cpp # SIMT专用Tiling ├── tests/ │ ├── ut/ │ │ └ op_host/ │ │ └── test_max_pool_grad_tiling.cpp # Tiling UT测试 │ └── st/ │ └── test_max_pool_grad_st.py # ST性能测试 └── docs/ ├── max_pool_grad_doc.md # 算子文档 └── max_pool_grad_simd_template_pr.md # 本PR文档 ### 2.2 关键类关系图 ┌────────────────────────────────────────────┐ │ max_pool_grad<模板参数> │ │ - KERNEL_MODE │ │ - FORMAT │ │ - INDICES_DTYPE │ │ - IS_CHECK_RANGE │ └────────────────────────────────────────────┘ ↓ if constexpr ┌───────────────┼───────────────┐ ↓ ↓ ↓ ┌─────────┐ ┌─────────┐ ┌─────────┐ │SmallKernel│ │BigKernel │ │ SIMT │ │ Mode │ │ Mode │ │ Mode │ └─────────┘ └─────────┘ └─────────┘ ↓ ↓ ↓ ┌─────────────────────────────────────────────┐ │ MaxPoolGradNCHWBackwardBase(公共基类) │ │ - BackwardCompute(Scatter处理) │ │ - CopyInGrad / CopyOut │ │ - ScalarCompute(Tiling计算) │ └─────────────────────────────────────────────┘ --- ## 关联的Issue [#2276](https://gitcode.com/cann/ops-nn/issues/2276) ## 测试 基本功能测试,通路测试,冒烟测试,改动算子门槛回归、门槛测试、性能测试 ## 文档更新 新增pooling/max_pool_grad/op_graph/max_pool_grad_proto.h包含接口brief ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4252 | 5 个月前 |