| feat: 实现DecomposePass的Python化支持(part3-1) Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !2256 merge python_pass_f_0003_clean into develop feat: 实现DecomposePass的Python化支持(part3-1) Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 本次PR实现了DecomposePass的Python化支持,完善了Python PatternFusionPass的基础设施。 ### 主要变更 1. **新增DecomposePass C++ Adapter** - 实现 PythonDecomposePassAdapter 类 - 支持DecomposePass的C++端执行逻辑 - 通过op_types进行算子匹配 2. **完善Python DecomposePass接口** - 增加详细的文档说明,明确执行流程 - 添加 __init_subclass__ 防止错误实现 - 明确 meet_requirements() 和 replacement() 的调用时机 3. **完善Python Pass基础设施** - 增强类型约束和类型安全 - 新增 borrow_node 等底层接口支持 - 完善注册和桥接机制 4. **新增测试用例** - 添加 python_decompose_pass_test.py - 增强 fusion_pass_executor_unittest.cc 5. **更新文档** - 更新架构文档和设计文档 - 完善Python Pass设计说明 ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 如何测试 ### 编译测试 bash bash build.sh --ge_compiler ### UT测试 bash # 运行DecomposePass测试 fusion_pass_executor_unittest --gtest_filter=*DecomposePass* ### Python测试 bash cd tests/ge/ut/ge/graph/pyge_tests python3 python_decompose_pass_test.py ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 这是PatternFusionPass Python化支持的第三部分实现,主要完成了DecomposePass的完整流程。 ### 相关PR - Part1: PatternFusionPass基础框架 - Part2: PatternFusionPass Python示例实现 See merge request: cann/ge!2256 | 5 个月前 |