IREE 学习文档
IREE 系统学习笔记。目标:在 TVM 0.6 经验基础上,系统掌握 IREE 整体(前端输入 → 编译中段 → HAL → codegen → 运行时),而非仅 codegen。
目录结构
- 00-plan.md —— 学习规划(含「是否先学 MLIR」的结论、阶段划分、资源)
- 后续各阶段笔记按
NN-主题.md命名,边学边补充到下方进度表
学习进度
| 阶段 | 主题 | 状态 |
|---|---|---|
| 0 | 环境准备(编译 / 安装 IREE) | ✅ 完成(01-env.md) |
| 1 | MLIR 基础(IREE 全流程的地基) | ✅ 速查已整理(03-mlir-basics.md) |
| 2 | IREE 架构总览与完整管线 | ✅ 完成(02-architecture.md) |
| 3 | 前端输入(StableHLO / TOSA) | ✅ 完成(04-frontend.md) |
| 4 | 编译中段(Flow + Stream) | ✅ 完成(05-flow.md、06-stream.md) |
| 5 | HAL 设备抽象 | ✅ 完成(07-hal.md) |
| 6 | Codegen(可执行体 lowering) | ✅ 完成(08-codegen.md) |
| 7 | 运行时(VM + iree-runtime) | ✅ 完成(09-runtime.md) |
| 8 | 实践项目 | ✅ 完成(源码构建 + 自定义 pass,10-build-from-source.md、11-writing-a-pass.md) |
个人背景
- 熟悉 TVM 0.6:Relay、TE/TIR、schedule 原语、codegen(LLVM/CUDA/OpenCL)、runtime
- 接触过 IREE 的 codegen 部分
- 需求:系统补齐 IREE 整体,并建立 TVM → IREE/MLIR 的映射
关键映射(TVM 0.6 → IREE/MLIR)
| TVM 0.6 | IREE / MLIR |
|---|---|
| Relay(图级 IR、fusion) | Flow dialect + StableHLO/TOSA |
| TE / TIR + schedule 原语 | Linalg + Vector + tiling/vectorization |
| codegen(LLVM/CUDA/OpenCL) | 翻译到 LLVM / SPIR-V |
| runtime(graph runtime / VM) | HAL + VM |