PaddlePaddle/Paddle

「护航计划⛵️」新 IR 适配 AI 编译器 CINN

DrRyanHuang opened this issue · 0 comments

一、Background 🎃

此为新 IR 适配编译器 CINN 的重要子项,旨在替换编译器仓库中的frontend::ProgramGraph 两个前端 IR,统一为新 IR。故需要自上而下替换build_cinn_passGraphCompilerFusionMergeCinnLaunchOp等各个维度的组件。

整体的接入技术方案,详见:📚 新 IR 适配编译器方案思路

image

二、Tasks 📚

☀️ 热身工作

序号 模块 功能描述 PR 贡献者
1.1 Op 层✅ 支持 MulOpTranscriber #56550 @DrRyanHuang
1.2 技术设计✅ 整理和学习适配CINN技术方案文档 #56879 @DrRyanHuang
1.3 函数规范✅ xx_new_ir_mode 替换为 xx_pir_mode #57201 @DrRyanHuang
1.4 目录规范✅ Python 端的文件、目录替换为pir #57209 @DrRyanHuang
1.5 组件规范✅ Pybind 层的绑定位置等由ir 替换为pir #57209 @DrRyanHuang
1.5 目录规范 ✅ 迁移 ir 至 pir 目录,规范Dialect 类名 #57103 @Aurelius84
1.6 代码规范 ✅ op.name() == "XX" 优化为op.isa<XXOp>() #57271 @DrRyanHuang

☎️ 技术串讲

序号 串讲主题 时间 贡献者
2.1 飞桨子图接入CINN后端执行流程 10月12日 @DrRyanHuang
2.2 从源码了解PIR @DrRyanHuang

🔧 功能机制

序号 模块 功能描述 PR 贡献者
3.1 ✅ Pass 层 build_cinn_pass 迁移至新 IR #57779 @Aurelius84
3.2 ✅ Compiler 新增NewIRCompiler #55186, #55733 @Aurelius84
3.3 ✅ Compiler 统一复用OpLower #56762 @Aurelius84
3.4 ✅ Dialect 添加 RuntimeDialect 定义 #56074 @Aurelius84
3.5 ✅ 执行器 主框架执行器适配CINN #56302 @Aurelius84
3.6 Dialect 优化JitKernelOp 设计 @DrRyanHuang
3.7 ✅ Compiler 支持子图Group的Lowering #56960 @Aurelius84
3.8 Compiler 支持子图Group的Schedule @Aurelius84
3.9 ✅ Dialect 添加cinn::GroupOp 表示 #57304 @Aurelius84
3.10 Fusion Fusion Merge 逻辑初步迁移 @phlrain
3.11 执行器 CinnJitInstruction 设计优化 @DrRyanHuang
3.12 执行器 cinn Scope 打通与优化 @DrRyanHuang
coming soon....

三、Meetings 💼

每周二、周五答疑例会,详见 PaddleQues