| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 新增4个融合pass样例 Co-authored-by: qq_45842700<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !3999 merge feat/add-fusion-pass-examples into develop feat: 新增4个融合pass样例 Created-by: qq_45842700 Commit-by: qq_45842700 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 4 个融合 pass 样例: - **graph_base_pass/4_mmoe_bmm_split_pass**:基于 REGISTER_CUSTOM_PASS 注册,针对 MMOE 网络非首层多个同源 MatMul,通过 Pack + BatchMatMulV2 + Split + Squeeze 合并为批量矩阵乘法 - **graph_base_pass/5_mmoe_matmul_pass**:基于 REGISTER_CUSTOM_PASS 注册,针对 MMOE 网络首层多个同源 MatMul,通过 Concat + MatMul + SplitV 合并为单个大尺寸 MatMul - **pattern_base_pass/8_bmm_tile_pass**:基于 PatternFusionPass 注册,消除共享权重场景下冗余的 Tile 算子,利用 BatchMatMulV2 首维广播能力替代显式数据扩展 - **pattern_base_pass/9_bmm_to_mul_reduce_pass**:基于 PatternFusionPass 注册,将 n=1 且 k<=16 的 BatchMatMulV2 改写为 Mul + ReduceSumD,利用 vector 单元提升性能 ## 变更类型 - [x] ✨ 新功能 - [x] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 进入各 pass 的 cpp 目录,执行 mkdir build && cd build && cmake .. && make 验证编译通过 2. 执行 make install 安装 pass so,使用 quick_verify.sh 脚本验证融合效果 3. 执行 make clean_custom_pass 清理安装的 pass so ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 4 个样例覆盖 graph_base_pass 和 pattern_base_pass 两种注册方式,均提供 C++ 源码、CMakeLists、中英文 README、ONNX 生成脚本和一键验证脚本。 See merge request: cann/ge!3999 | 1 个月前 | |
feat: 新增4个融合pass样例 Co-authored-by: qq_45842700<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !3999 merge feat/add-fusion-pass-examples into develop feat: 新增4个融合pass样例 Created-by: qq_45842700 Commit-by: qq_45842700 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 4 个融合 pass 样例: - **graph_base_pass/4_mmoe_bmm_split_pass**:基于 REGISTER_CUSTOM_PASS 注册,针对 MMOE 网络非首层多个同源 MatMul,通过 Pack + BatchMatMulV2 + Split + Squeeze 合并为批量矩阵乘法 - **graph_base_pass/5_mmoe_matmul_pass**:基于 REGISTER_CUSTOM_PASS 注册,针对 MMOE 网络首层多个同源 MatMul,通过 Concat + MatMul + SplitV 合并为单个大尺寸 MatMul - **pattern_base_pass/8_bmm_tile_pass**:基于 PatternFusionPass 注册,消除共享权重场景下冗余的 Tile 算子,利用 BatchMatMulV2 首维广播能力替代显式数据扩展 - **pattern_base_pass/9_bmm_to_mul_reduce_pass**:基于 PatternFusionPass 注册,将 n=1 且 k<=16 的 BatchMatMulV2 改写为 Mul + ReduceSumD,利用 vector 单元提升性能 ## 变更类型 - [x] ✨ 新功能 - [x] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 进入各 pass 的 cpp 目录,执行 mkdir build && cd build && cmake .. && make 验证编译通过 2. 执行 make install 安装 pass so,使用 quick_verify.sh 脚本验证融合效果 3. 执行 make clean_custom_pass 清理安装的 pass so ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 4 个样例覆盖 graph_base_pass 和 pattern_base_pass 两种注册方式,均提供 C++ 源码、CMakeLists、中英文 README、ONNX 生成脚本和一键验证脚本。 See merge request: cann/ge!3999 | 1 个月前 | |
refactor: 清理文档目录,更新配置文件 | 2 个月前 | |
提交英文文档 | 2 个月前 | |
【PR】: fix: 修复融合pass编译失败 Co-authored-by: hugo111<zhaoxinxin1@huawei.com> # message auto-generated for no-merge-commit merge: !3787 merge fix_pass into develop 【PR】: fix: 修复融合pass编译失败 Created-by: hugo111 Commit-by: hugo111 Merged-by: cann-robot Description: # Pull Request ## 描述 decompose_grouped_conv_to_splited_pass.cpp 修复编译失败 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3787 | 2 个月前 | |
【PR】: fix: 修复融合pass编译失败 Co-authored-by: hugo111<zhaoxinxin1@huawei.com> # message auto-generated for no-merge-commit merge: !3787 merge fix_pass into develop 【PR】: fix: 修复融合pass编译失败 Created-by: hugo111 Commit-by: hugo111 Merged-by: cann-robot Description: # Pull Request ## 描述 decompose_grouped_conv_to_splited_pass.cpp 修复编译失败 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3787 | 2 个月前 | |
【PR】:rename user-guides Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !3814 merge develop into develop 【PR】:rename user-guides Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 重命名docs目录下的user-guides为user_guides。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 根据最新目录进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3814 | 2 个月前 | |
【PR】:rename user-guides Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !3814 merge develop into develop 【PR】:rename user-guides Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 重命名docs目录下的user-guides为user_guides。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 根据最新目录进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3814 | 2 个月前 |
自定义融合 Pass
本目录提供 GE 自定义融合 pass 的开发文档和样例。
如果是第一次开发,建议按下面顺序阅读:
- 融合 Pattern Pass 机制:先理解 pattern、匹配、过滤、replacement 和边界规则。
- Python 融合 Pass 开发指南:支持运行时接入和
@pattern表达式写法。 - C++ 融合 Pass 开发指南:适合编译成
.so后产品化交付。
样例目录
| 目录 | 说明 |
|---|---|
| pattern_base_pass | 推荐优先参考。通过 PatternFusionPass 或 DecomposePass 开发 pattern 类融合规则 |
| graph_base_pass | 通过 graph 接口直接改图的样例,适合需要完全手动控制图修改的场景 |