| Conv算子 doc和DFX整改 Co-authored-by: huafeng793<chenhuafeng2@huawei.com> # message auto-generated for no-merge-commit merge: !8970 merge conv_opt into master Conv算子 doc和DFX整改 Created-by: huafeng793 Commit-by: huafeng793 Merged-by: cann-robot Description: ## 描述 1、conv算子日志易用性整改 2、conv算子资料整改 3、conv ut asan识别问题修复 ## 关联的Issue [#5117](https://gitcode.com/cann/ops-nn/issues/5117) [#5120](https://gitcode.com/cann/ops-nn/issues/5120) [#5135](https://gitcode.com/cann/ops-nn/issues/5135) ## 测试 rdv验证 ## 文档更新 conv/conv2d_v2/README.md conv/conv3d_v2/README.md conv/convolution_forward/README.md conv/convolution_forward/docs/aclnnConvDepthwise2d.md conv/convolution_forward/docs/aclnnConvolution.md conv/convolution_forward/docs/aclnnQuantConvolution.md conv/convolution_forward/docs/aclnnQuantConvolutionWeightNz.md conv/extend_conv2d/README.md conv/quant_conv2d/README.md conv/quant_conv3d/README.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8970 | 1 个月前 |
| fix conv op proto Co-authored-by: huafeng793<chenhuafeng2@huawei.com> # message auto-generated for no-merge-commit merge: !9416 merge conv_proto into master fix conv op proto Created-by: huafeng793 Commit-by: huafeng793 Merged-by: cann-robot Description: ## 描述 ops_proto_nn.h和ops_proto_legacy.h中存在重复的conv2d、conv3d、deformableconv2d的原型定义。如果ops_proto_nn.h和ops_proto_legacy.h同时引用,会产生重复定义的错误,所以需要进行头文件引用保护。 ## 关联的Issue [#5380](https://gitcode.com/cann/ops-nn/issues/5380) ## 测试 RDV执行通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9416 | 1 个月前 |
| fix:修复算子定义注册不一致与返回值忽略 Co-authored-by: XianyongWang<aaronhkw@163.com> # message auto-generated for no-merge-commit merge: !10810 merge fix/conv_bug_repot_fix into master fix:修复算子定义注册不一致与返回值忽略 Created-by: XianyongWang Commit-by: XianyongWang Merged-by: cann-robot Description: ## 描述 本 PR 修复 conv 类算子算子定义与 proto/文档口径不一致,以及融合 pass 中返回值被忽略的问题。经逐项调查确认,共落地 4 项修复: 1. quant_conv2d pads 属性注册错误(def 侧修复):proto 原型定义明确 pads 为必选属性(.REQUIRED_ATTR),但算子定义 quant_conv2d_def.cpp 中 pads 被注册为 OPTIONA。将 def 注册修正为 AttrType(REQUIRED).ListInt(),README 同步改为“必选属性”。 2. quant_conv3d pads 文档与注册矛盾(文档侧修复):quant_conv3d 的 pads 为可选属性(def/proto 注册一致),但 proto 文档误写为 "Required",与注册口径矛盾。修正文档为 "Optional ... Defaults to 0, 0, 0, 0, 0, 0"。 3. extend_conv2d y1 输出文档口径不一致:y1 在 def/proto/binary json 三方均注册为 REQUIRED 输出,但 proto 文档声明 "dual_output=false 时只有 y0",注册未随属性联动。经调查,GE 注册体系仅支持 OUTPUT/DYNAMIC_OUTPUT 两种输出宏,不存在 OPTIONAL_OUTPUT,注册期无法按属性动态决定输出可选性;且当前版本 infershape 强制拒绝 dual_output=false,y1 恒存在,REQUIRED 注册与实际行为自洽。故采用统一口径方案:注册保持不变,修正 proto/README 文档,明确“y1 为注册输出、调用方必须始终提供,仅当 dual_output=true 时写入有效结果”。 4. extend_conv2d 融合 pass 忽略 GetType 返回值:conv2d_postcube_to_extendconv2d_fusion_pass.cpp 中 convOutputNodes[0].first->GetType(firstNodeType) 返回值被忽略。该返回值决定 isPostCubeFirst 判断,进而决定 y0/y1 的端口装配(POST_CUBE_OTHER/OTHER_POST_CUBE 分支);若 GetType 失败将误判分支导致 y0/y1 输出对调且静默出错。补充 FUSION_PASS_CHECK 防护,与同函数既有风格一致。 另:修复 quant_conv3d_def.cpp 存量的 license 头不合规问题(与 OAT.xml licensematcher 要求的文本不匹配,被 OAT 增量扫描拦截),调整为仓库合规模板并补文件末尾换行符。 ## 关联的Issue 关联Issue [#6019](https://gitcode.com/cann/ops-nn/issues/6019) ## 测试 - bash build.sh --ophost -j16:ophost 全量编译通过(覆盖 def/proto/infershape/tiling) - bash build.sh -u --opgraph --ops=extend_conv2d:op_graph 编译通过,196 个 UT 全部通过(覆盖融合 pass 改动) - bash build.sh -u --ophost --ops=extend_conv2d:328 个 UT 全部通过;其中 ExtendConv2dTiling 31 个单独过滤执行全部通过 - bash build.sh -u --ophost --ops=quant_conv2d:297 个 UT 全部通过 - bash build.sh -u --ophost --ops=quant_conv3d:310 个 UT 全部通过(含 QuantConv3dTiling) - bash build.sh -u --ophost --ops=conv2d_v2:1599 个 UT 全部通过(conv 家族依赖链回归) - pre-commit 全部 12 个 hook 通过(含 clang-format、codespell、OAT 合规检查) - binary json 修改经 JSON 解析校验有效 ## 文档更新 - conv/quant_conv2d/README.md:offset 输入 format 列 NCHW → ND - conv/quant_conv3d/README.md:offset 输入 format 列 NCDHW → ND - conv/extend_conv2d/README.md:y1 输出说明统一为“调用方必须始终提供y1,仅当dual_output为true时y1写入有效结果” - conv/quant_conv2d/graph/quant_conv2d_proto.h、conv/quant_conv3d/op_graph/quant_conv3d_proto.h:pads 说明 "Required" → "Optional" - conv/extend_conv2d/op_graph/extend_conv2d_proto.h:dual_output 属性说明与 y1 输出说明口径统一 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10810 | 24 天前 |
| conv:conv3dv2/extendconv2d/quantconv2d/quantconv3d 新增ascend350平台支持 Co-authored-by: XianyongWang<aaronhkw@163.com> # message auto-generated for no-merge-commit merge: !10795 merge feature/conv-ascend350Adapt into master conv:conv3dv2/extendconv2d/quantconv2d/quantconv3d 新增ascend350平台支持 Created-by: XianyongWang Commit-by: XianyongWang Merged-by: cann-robot Description: ## 描述 4 个 conv 系算子新增 ascend350 平台支持。修改模式(350 与 ascend950 完全同配,两者同为 DAV_3510,走同一代码分支): - **QuantConv2D / QuantConv3D**:def 直加 AddConfig("ascend350", aicore_config)(同一 config对象注册两次);op_kernel/CMakeLists.txt 的 COMPUTE_UNITS 加 ascend350;op_host/config/ascend350/ 拷贝 950 版 binary.json(各 9 bin) - **ExtendConv2D**:def 为双参 SetAscendConfig helper 形态(无 dst_version 参数),helper 调用后直接 AddConfig("ascend350", aicoreConfig);CMake 为ascend950 ascend350 mc62;conv2d_postcube_to_extendconv2d_fusion_pass.h 的SUPPORT_SOC_LIST 增加 {"Ascend350", NpuArch::DAV_3510}(明文 soc 门禁,npuarch 同构覆盖不到,不加则 350 图模式融合不生效) - **QuantConv3D** 同上追加 conv3d_dequant_to_quantconv3d_fusion_pass.h 明文 soc - **Conv3DV2**:def 为独立 config 对象形态(SetAscendConfig(aicoreConfig95, "ascend950")),同对象直加 AddConfig("ascend350", aicoreConfig95);kernel CMake 两段结构仅改ascend950 段;binary.json 11 bin。**conv3d_to_conv3dv2 融合 pass 无需修改**:其门禁为平台 intrinsic 能力探测(Intrinsic_data_move_out2l1_dn2nz 等),DAV_3510 同构自动覆盖 - UT:4 个 tests/ut/op_kernel/CMakeLists.txt 的 AddOpTestCase 增加 ascend350_355e - 2 个 def 文件版权头规范化(extend_conv2d_def / quant_conv3d_def,OAT 合规要求) ## 关联的Issue 关联Issue [#6010](https://gitcode.com/cann/ops-nn/issues/6010) ## 测试 **编译验证通过**:4 算子 self config 日志齐全;二进制产物 **38 bin 全量产出**; run 包 173M;soc_version=Ascend350_355e 注入 76 处(38 bin × 2) - **ttk kernel 精度验证:60/60 全过、binary 匹配全命中(无在线编译回退)**: | 算子 | 用例数 | binary 匹配 | 精度 PASS | |---|---|---|---| | QuantConv2D | 21 | 21/21 | 21/21 | | Conv3DV2 | 17 | 17/17 | 17/17 | | ExtendConv2D | 11 | 11/11 | 11/11 | | QuantConv3D | 11 | 11/11 | 11/11 | ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10795 | 28 天前 |
| feat(conv2d): add ASWT M-mode load balancing Co-authored-by: Mrxxx7<caimengkai1@huawei.com> # message auto-generated for no-merge-commit merge: !10366 merge master into master feat(conv2d): add ASWT M-mode load balancing Created-by: Mrxxx7 Commit-by: Mrxxx7 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ASWT 蛇形走位来处理Conv数据L1加载 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> #6299 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> rdv,全量case验证,涉及case验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10366 | 23 天前 |
| open quant conv2d Co-authored-by: huafeng793<chenhuafeng2@huawei.com> # message auto-generated for no-merge-commit merge: !7808 merge quantconv2dopen into master open quant conv2d Created-by: huafeng793 Commit-by: huafeng793 Merged-by: cann-robot Description: ## 描述 quant conv2d ascendc算子开源 ## 关联的Issue [#4425](https://gitcode.com/cann/ops-nn/issues/4425) ## 测试 ut,example,rdv验证通过 ## 文档更新 新增quant conv2d readme文档  ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7808 | 2 个月前 |
| 产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 23 天前 |