| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 4 天前 | |
修改部分池化算子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 | 9 天前 | |
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 | 6 天前 | |
提取池化tiling函数计算、kernel函数 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !10148 merge fixPoolingThr into master 提取池化tiling函数计算、kernel函数 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 **消除 pooling 模块重复代码(净 -425 行,消除约 700 行重复副本),严格限定等价重构,不改变任何 tiling key、切分策略、UB 公式与计算逻辑。** 1. **Kernel 公共生命周期上提(CRTP)**: MaxPoolGradWithArgmaxKernelNHWCBase 增加派生类模板参数,上提 Compute/ProcessPerLoop/Process 公共流程;merge_hwc / merge_hwc_int64 / merge_wc / bigc 四个派生类统一入口为 ConCProcVF 并删除各自重复实现,编译期静态派发,无虚函数开销。 2. **Host tiling 公共基类**:新增 PoolGradTilingCommonBase,承载 NCHW/NHWC tiling 公共成员与流程(IsMeetUBSize/DynamicAdjustmentWH/DoOpTiling/InitCommonBaseInfo/InitOverlapBatchInfo);新增 CalcAxisOuterTail/CalcProBatchSize 公共函数,消除 14 处轴尾块与 proBatch 重复计算。 3. **Pool3D Grad 切分搜索合并**:D/H/W 三轴二分切分三连抄合并为参数化的 TrySplitAlignedAxis,TrySplitNC 委托公共实现。 4. **AvgPoolV2Grad/AvgPoolGrad 收敛**:infershape 提取 CheckNonSpatialDimIsOne 校验辅助函数;NCHW/NHWC tiling 复用上述公共设施与 GetNchwDims/GetNhwcDims。 5. **AdaptiveAvgPool3dGrad big/small tiling 公共基类**:新增 AdaptiveAvgPool3dGradNCDHWTilingCommon,承载 13 个公共维度成员与 DoUBTiling/DoBlockTiling/SetCommonTilingData 等公共方法,big/small 仅保留各自切分搜索与 buffer 计算。 受影响算子(9 个):max_pool_grad_with_argmax(_v3)、max_pool_grad、max_pool3d_grad(_with_argmax)、max_pool_v3_grad、avg_pool_v2_grad、avg_pool_grad、adaptive_avg_pool3d_grad。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5586 ## 测试 - 受影响 9 个算子 ophost UT 全量通过:**525/525**(含 MaxPoolGradWithArgmax 全 tiling key 用例 11 例、AdaptiveAvgPool3dGradTiling、AvgPoolV2GradTiling 等) - kernel 二进制编译验证通过:max_pool_grad_with_argmax(6/6 json)、v3(6/6)、avg_pool_grad(3/3)、avg_pool_v2_grad(3/3),0 编译错误 - 仅合并完全一致逻辑,不改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现 ## 文档更新 不涉及 ## 类型标签 - 其他,请描述:代码去重重构(等价重构,无功能变更) ## AI/Agent生成声明 - AI辅助编写 See merge request: cann/ops-nn!10148 | 3 天前 | |
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 | 4 天前 | |
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 | 4 天前 | |
修改部分池化算子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 | 9 天前 | |
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 | 4 天前 | |
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 | 4 天前 | |
[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 | 27 天前 | |
Aicpu op : avg_pool1d_avg_matrix add infershape Co-authored-by: FengHaozhan<fenghaozhan@huawei.com> # message auto-generated for no-merge-commit merge: !9297 merge master into master Aicpu op : avg_pool1d_avg_matrix add infershape Created-by: FengHaozhan Commit-by: FengHaozhan Merged-by: cann-robot Description: ## 描述 为 AvgPool1DAvgMatrix 新增 RT2 编译期推导能力: - 在 op_host 注册 InferShape 与 InferShapeRange,支持 NCHW/NHWC 格式,并依据 ksize、strides、pads、ceil_mode 计算输出宽度。 - 支持静态宽度、动态宽度和 ShapeRange 推导;不支持的格式、零步长及非法 pads 返回失败。 - 在 op_graph 注册 InferDataType,使输出数据类型继承输入数据类型。 - 补充 op_host/op_graph 单测及对应 CMake 构建接线。 ## 关联的Issue 关联 Issue #5251 ## 测试 - 新增 op_host infershape UT:覆盖 NCHW floor mode、NHWC ceil mode、动态宽度、动态 ShapeRange,以及非法 format/stride/pads。 - 新增 op_graph 数据类型推导 UT:验证输出数据类型继承输入数据类型。 - 已补充 op_host/op_graph UT 的 CMake 接线;本次仅基于 PR 变更生成描述,未在当前环境执行构建或测试。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9297 | 16 天前 | |
补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !10136 merge fix/embedding-dense-backward-log-format into master 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5726 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10136 | 3 天前 | |
fix(avg_pool3_d_grad): ascend950 SIMT 除法启用 IEEE 精确模式 Co-authored-by: liuchuangdev<liuchuang51@huawei.com> # message auto-generated for no-merge-commit merge: !9997 merge fix/avg_pool3d_grad_simt_div_precision into master fix(avg_pool3_d_grad): ascend950 SIMT 除法启用 IEEE 精确模式 Created-by: liuchuangdev Commit-by: liuchuangdev Merged-by: cann-robot Description: ### 描述 1. **修复大 shape SIMT 路径 GM 越界 coredump(int64 索引)** - avg_pool3_d_grad_simt_tiling.cpp:int32/int64 索引模板的判据由 grads 元素数改为**输出 y(orig_input_shape)元素数**。原判据在“y > INT32_MAX 而 grads ≤ INT32_MAX”时误选 int32 索引模板,kernel 遍历 y 时 int32 索引回绕为负,yData[负偏移] 越界写导致 coredump。 - avg_pool3_d_grad.cpp:arch35 头文件守卫由 __CCE_AICORE__ == 310 && __NPU_ARCH__ == 3510 放宽为仅 __NPU_ARCH__ == 3510——CPU 仿真(--run-mode=cpu,仅注入 __NPU_ARCH__)下 arch35 模板可参与编译,解锁 op_kernel 级 UT;设备编译两宏同时成立,行为不变。 3. **aclnn:ascend950 跳过 deterministic reshape** - aclnn_avgpool3d_backward.cpp:TransGrad2CDHW 中 deterministic 分支(按 mergeNC 计算 usedCoreNum 的 reshape 路径)增加 IsRegbase() 判断,ascend950 等 regbase 平台跳过,避免确定性场景下不必要的 reshape/调度差异。 4. **golden 口径参数化** - golden.py / golden_cross_check.py:_avg_pool_backward_np 增加 acc_dtype 参数(默认 float32,与 NPU SIMT kernel 的“逐窗先除后加、误差 O(√K)”同律;float64 作为近真值参考),并弃用 fp32 下误差随轴长增长的 cumsum 前缀差分实现,改为逐轴 shifted-add。 ### 关联的 Issue [#5753](https://gitcode.com/cann/ops-nn/issues/5753) ### 测试 问题用例回归 冒烟测试 ### 文档更新 -NA ### 类型标签 - [x] Bug 修复 - [ ] 特性 - [ ] 性能优化 - [ ] 文档更新 ### AI/Agent 生成声明 - [x] AI 辅助编写 See merge request: cann/ops-nn!9997 | 3 天前 | |
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 | 4 天前 | |
fix asan test Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !9033 merge master into master fix asan test Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 修复 ASan(AddressSanitizer)测试中暴露的问题,主要包括:类型不匹配、越界访问、字段缺失及命名不一致。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 详细变更 ### 1. 类型修正(uint32_t/int32_t → int64_t/uint64_t) 使测试中的 CompileInfo 结构体字段类型与实际算子侧定义保持一致,消除 ASan 因类型宽度不匹配报告的问题。 | 文件 | 字段 | 旧类型 | 新类型 | |------|------|--------|--------| | test_add_layer_norm_tiling.cpp | aivCoreNum_, sysWorkspaceSize_, vecRegSize_, blockSize_ | uint32_t | int64_t | | test_embedding_dense_grad_v2_tiling.cpp | totalCoreNum | int32_t | uint64_t | | test_add_rms_norm_cast_tiling.cpp | totalCoreNum | uint32_t | uint64_t | | test_add_rms_norm_quant_tiling.cpp | totalCoreNum | uint32_t | uint64_t | ### 2. 命名规范化:isRegbase → isRegBase 修正大小写不一致,统一为驼峰命名 isRegBase。 - test_embedding_dense_grad_v2_tiling.cpp ### 3. 补充缺失字段 isRegBase 为以下测试的 CompileInfo 结构体补充 isRegBase 字段(默认 false),避免因结构体字段缺失导致的内存读取越界: - test_modulate_tiling.cpp(4 处) - test_multi_scale_deformable_attention_grad_tiling.cpp(1 处) - test_multi_scale_deformable_attn_function_tiling.cpp(9 处) ### 4. 补充缺失字段 blockSize / vlFp32 - test_layer_norm_grad_tiling.cpp: 为 LayerNormGradCompileInfo 补充 blockSize 和 vlFp32(均为 int64_t)字段。 ### 5. 移除硬编码值 - test_add_rms_norm_cast_tiling.cpp: 将 totalCoreNum = 40、totalUbSize = 196608 改为 0,避免与实际平台信息不一致。 - test_add_rms_norm_quant_tiling.cpp: 同上,并调整字段顺序与命名(socVersion → curSocVersion,totalUbSize → maxUbSize)。 ### 6. 越界访问修复 - tests/ut/common/tiling_context_faker.cpp:309: 添加 idx < inputInstanceNumPacked_.size() 边界检查,防止 inputInstanceNumPacked_ 越界访问。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9033 | 10 天前 | |
修复avgpoolv2图调用inershape错误问题。 Co-authored-by: xiu_ling_wang<wangxiuling2@h-partners.com> # message auto-generated for no-merge-commit merge: !9424 merge AvgPoolV2 into master 修复avgpoolv2图调用inershape错误问题。 Created-by: xiu_ling_wang Commit-by: xiu_ling_wang Merged-by: cann-robot Description: ## 描述 修复avgpoolv2图调用inershape错误问题。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/2120 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9424 | 13 天前 | |
提取池化tiling函数计算、kernel函数 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !10148 merge fixPoolingThr into master 提取池化tiling函数计算、kernel函数 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 **消除 pooling 模块重复代码(净 -425 行,消除约 700 行重复副本),严格限定等价重构,不改变任何 tiling key、切分策略、UB 公式与计算逻辑。** 1. **Kernel 公共生命周期上提(CRTP)**: MaxPoolGradWithArgmaxKernelNHWCBase 增加派生类模板参数,上提 Compute/ProcessPerLoop/Process 公共流程;merge_hwc / merge_hwc_int64 / merge_wc / bigc 四个派生类统一入口为 ConCProcVF 并删除各自重复实现,编译期静态派发,无虚函数开销。 2. **Host tiling 公共基类**:新增 PoolGradTilingCommonBase,承载 NCHW/NHWC tiling 公共成员与流程(IsMeetUBSize/DynamicAdjustmentWH/DoOpTiling/InitCommonBaseInfo/InitOverlapBatchInfo);新增 CalcAxisOuterTail/CalcProBatchSize 公共函数,消除 14 处轴尾块与 proBatch 重复计算。 3. **Pool3D Grad 切分搜索合并**:D/H/W 三轴二分切分三连抄合并为参数化的 TrySplitAlignedAxis,TrySplitNC 委托公共实现。 4. **AvgPoolV2Grad/AvgPoolGrad 收敛**:infershape 提取 CheckNonSpatialDimIsOne 校验辅助函数;NCHW/NHWC tiling 复用上述公共设施与 GetNchwDims/GetNhwcDims。 5. **AdaptiveAvgPool3dGrad big/small tiling 公共基类**:新增 AdaptiveAvgPool3dGradNCDHWTilingCommon,承载 13 个公共维度成员与 DoUBTiling/DoBlockTiling/SetCommonTilingData 等公共方法,big/small 仅保留各自切分搜索与 buffer 计算。 受影响算子(9 个):max_pool_grad_with_argmax(_v3)、max_pool_grad、max_pool3d_grad(_with_argmax)、max_pool_v3_grad、avg_pool_v2_grad、avg_pool_grad、adaptive_avg_pool3d_grad。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5586 ## 测试 - 受影响 9 个算子 ophost UT 全量通过:**525/525**(含 MaxPoolGradWithArgmax 全 tiling key 用例 11 例、AdaptiveAvgPool3dGradTiling、AvgPoolV2GradTiling 等) - kernel 二进制编译验证通过:max_pool_grad_with_argmax(6/6 json)、v3(6/6)、avg_pool_grad(3/3)、avg_pool_v2_grad(3/3),0 编译错误 - 仅合并完全一致逻辑,不改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现 ## 文档更新 不涉及 ## 类型标签 - 其他,请描述:代码去重重构(等价重构,无功能变更) ## AI/Agent生成声明 - AI辅助编写 See merge request: cann/ops-nn!10148 | 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 | 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 | 10 天前 | |
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 | 9 天前 | |
fix: 修复 pooling 算子示例失败日志级别与内容矛盾问题 Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !9288 merge fix/maxpool3d-log-level into master fix: 修复 pooling 算子示例失败日志级别与内容矛盾问题 Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 规范化maxpool3d日志报错 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5220 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!9288 | 16 天前 | |
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 | 4 天前 | |
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 | 4 天前 | |
补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !10136 merge fix/embedding-dense-backward-log-format into master 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5726 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10136 | 3 天前 | |
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 | 10 天前 | |
[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 | 13 天前 | |
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 | 4 天前 | |
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 | 11 天前 | |
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 | 13 天前 | |
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 | 13 天前 | |
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 | 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 | 4 天前 | |
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 | 5 天前 | |
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 | 4 天前 | |
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 | 4 天前 | |
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 | 4 天前 | |
提取池化tiling函数计算、kernel函数 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !10148 merge fixPoolingThr into master 提取池化tiling函数计算、kernel函数 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 **消除 pooling 模块重复代码(净 -425 行,消除约 700 行重复副本),严格限定等价重构,不改变任何 tiling key、切分策略、UB 公式与计算逻辑。** 1. **Kernel 公共生命周期上提(CRTP)**: MaxPoolGradWithArgmaxKernelNHWCBase 增加派生类模板参数,上提 Compute/ProcessPerLoop/Process 公共流程;merge_hwc / merge_hwc_int64 / merge_wc / bigc 四个派生类统一入口为 ConCProcVF 并删除各自重复实现,编译期静态派发,无虚函数开销。 2. **Host tiling 公共基类**:新增 PoolGradTilingCommonBase,承载 NCHW/NHWC tiling 公共成员与流程(IsMeetUBSize/DynamicAdjustmentWH/DoOpTiling/InitCommonBaseInfo/InitOverlapBatchInfo);新增 CalcAxisOuterTail/CalcProBatchSize 公共函数,消除 14 处轴尾块与 proBatch 重复计算。 3. **Pool3D Grad 切分搜索合并**:D/H/W 三轴二分切分三连抄合并为参数化的 TrySplitAlignedAxis,TrySplitNC 委托公共实现。 4. **AvgPoolV2Grad/AvgPoolGrad 收敛**:infershape 提取 CheckNonSpatialDimIsOne 校验辅助函数;NCHW/NHWC tiling 复用上述公共设施与 GetNchwDims/GetNhwcDims。 5. **AdaptiveAvgPool3dGrad big/small tiling 公共基类**:新增 AdaptiveAvgPool3dGradNCDHWTilingCommon,承载 13 个公共维度成员与 DoUBTiling/DoBlockTiling/SetCommonTilingData 等公共方法,big/small 仅保留各自切分搜索与 buffer 计算。 受影响算子(9 个):max_pool_grad_with_argmax(_v3)、max_pool_grad、max_pool3d_grad(_with_argmax)、max_pool_v3_grad、avg_pool_v2_grad、avg_pool_grad、adaptive_avg_pool3d_grad。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5586 ## 测试 - 受影响 9 个算子 ophost UT 全量通过:**525/525**(含 MaxPoolGradWithArgmax 全 tiling key 用例 11 例、AdaptiveAvgPool3dGradTiling、AvgPoolV2GradTiling 等) - kernel 二进制编译验证通过:max_pool_grad_with_argmax(6/6 json)、v3(6/6)、avg_pool_grad(3/3)、avg_pool_v2_grad(3/3),0 编译错误 - 仅合并完全一致逻辑,不改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现 ## 文档更新 不涉及 ## 类型标签 - 其他,请描述:代码去重重构(等价重构,无功能变更) ## AI/Agent生成声明 - AI辅助编写 See merge request: cann/ops-nn!10148 | 3 天前 | |
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 | 4 天前 | |
[CANNBot]PSROIPoolingV2算子支持Ascend950 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !9088 merge codex/add_psroi_pooling_v2 into master [CANNBot]PSROIPoolingV2算子支持Ascend950 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 将 PSROIPoolingV2 算子从 ops-cv 迁移至 ops-nn,并支持 Ascend950: - 在 pooling/psroi_pooling_v2 下新增 kernel、host、tiling、InferShape、原型、示例及测试。 - 按 ops-nn 目录和 CMake 规范完成构建接入。 - 删除 op_nn_proto_extend.h 中重复的 PSROIPoolingV2 原型。 - 独立原型头文件复用 canndev 的宏隔离。 - 更新算子清单和 README 文档。 ## 关联的Issue 关联Issue #5062 ## 测试 - bash build.sh -u --ophost --ops=psroi_pooling_v2 --soc=ascend950 -j8 - InferShape UT:11/11 通过 - Tiling UT:7/7 通过 - 合计:18/18 通过 - bash build.sh --opkernel --ops=psroi_pooling_v2 --soc=ascend950 -j8 - Ascend950 两个 binary 配置均编译成功 - 对全部变更文件执行 pre-commit:全部通过 ## 文档更新 - 新增 pooling/psroi_pooling_v2/README.md。 - 更新 docs/zh/op_list.md 算子清单。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9088 | 19 天前 | |
从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 | 11 天前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 天前 | ||
| 9 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 9 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 27 天前 | ||
| 16 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 4 天前 | ||
| 10 天前 | ||
| 13 天前 | ||
| 3 天前 | ||
| 2 个月前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 16 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 3 天前 | ||
| 10 天前 | ||
| 13 天前 | ||
| 4 天前 | ||
| 11 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 11 天前 | ||
| 4 天前 | ||
| 5 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 3 天前 | ||
| 4 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 9 个月前 |