零基础友好 · 亲手搭建迷你编译器 · 三个月从模型到RISC-V指令
💡 你有没有好奇过……
✨ 如果这些问题让你心里痒痒的,哪怕你现在只学过一点点编程,甚至还没上过编译原理课——这个项目就是为你准备的。
用 三个月 的时间,从零开始,一起亲手搭建一个迷你编译器。
🔹 输入:一个简单的 AI 模型文件(比如一个会做加法、乘法的“小模型”)
🔹 输出:一段可以被 RISC-V 芯片执行的指令(汇编代码,看起来像 add、load 这种“芯片语言”)
🔹 然后:放到模拟芯片的软件(tinyfive)里跑一跑,看它能不能正确计算
整个过程完全由你自己动手实现:读懂模型 → 翻译成中间语言 → 优化 → 生成指令
我们不会依赖像 LLVM、MLIR 这种巨型框架——每一步都让你亲手写出来,真正搞懂背后的原理。
✨ 你不需要有编译器基础,我们会从最最基础的概念讲起。
所有课题均包含:实现模块 + 入门文档 + 单元测试 + 性能基准。同学可以任选课题深入研究,或者自由提出新问题。 🚀
| 📄 课题 | 📝 说明 | 📌 难度 | 📖 实现指南 | 📋 课题提案 |
|---|---|---|---|---|
| 课题01:DSL前端增强器 | 为DSL增加if/else和while语法,扩展解析器生成三地址码 | 中 | 实现指南 → | 提案 → |
| 课题05:RISC-V汇编代码美化器 | 对齐汇编字段并为每条指令自动添加语义注释 | 低 | 实现指南 → | 提案 → |
| 课题06:编译器性能测试套件 | 23个DSL测试用例,自动化编译执行,生成Markdown/HTML报告 | 中 | 实现指南 → | 提案 → |
| 课题07:编译器日志增强器 | 分级彩色日志系统,支持文件输出和阶段耗时统计 | 低 | 实现指南 → | 提案 → |
| 课题09:DSL错误提示美化器 | GCC风格错误报告:行列号+源码行+^标记+修复建议 | 中 | 实现指南 → | 提案 → |
| 课题11:控制流图(CFG)生成器 | 从IR构建CFG,支配树+自然循环检测+DOT可视化输出 | 高 | 实现指南 → | 提案 → |
| 课题12:RISC-V后端指令计数统计器 | 分类统计汇编指令,生成饼图/条形图/HTML对比报告 | 高 | 实现指南 → | 提案 → |
| 课题13:窥孔优化器 | 汇编级滑动窗口匹配,5条默认规则,支持自定义模式 | 低 | 实现指南 → | 提案 → |
| 课题14:常量加载合并优化 | lui+addi→li合并,冗余lui消除,符号扩展正确处理 | 低 | 实现指南 → | 提案 → |
| 课题17:寄存器分配(线性扫描) | 活跃区间计算+线性扫描分配+最远结束溢出+栈槽管理 | 高 | 实现指南 → | 提案 → |
| 课题18:指令调度(列表调度) | 依赖DAG构建+关键路径优先级+列表调度+RISC-V延迟模型 | 高 | 实现指南 → | 提案 → |
| 课题20:项目代码规范与格式化 | Black+isort+Ruff+mypy+pre-commit Hooks一键配置 | 低 | 实现指南 → | 提案 → |
| 课题21:IR 验证器 | 7类规则:定义使用+标签存在+块终止+类型一致+控制流+SSA | 中 | 实现指南 → | 提案 → |
| 课题28:完善后端指令选择 | sqrt/min/max/abs算子支持 + float64双精度浮点D扩展 | 中 | 实现指南 → | 提案 → |
docs/topics/*_guide.md(每个课题一份 API 文档)docs/topics/课题*.md(12 周学习计划 + 验收标准)pytest tests/ -v
我们为你设计了循序渐进的里程碑,每周任务清晰,有人答疑,不让你一个人瞎撞。
你会学到什么: 跑通别人写好的完整例子,看懂模型 → 指令的“魔法”全过程
感受: 🎉 哇,原来是这样!
你会学到什么: 自己写代码:把一个简单的 ONNX 模型(比如加法、矩阵乘)翻译成自己的中间语言;或者写一个后端,生成 RISC-V 汇编
感受: 🚀 开始创造,成就感爆棚
你会学到什么: 让你的编译器跑通更多模型,优化编译器,使得编译出的指令更短、运行更快,写文档,把项目变成你简历上的骄傲
感受: 🏆 我居然做出了一个编译器!
📅 每周只需要 8~10 小时(包含学习、写代码、和小伙伴讨论),我们会提供:
只需要好奇心和耐心。你学过一点 Python 或 C?够了。甚至不知道 RISC-V?我们用两周带你入门。像搭积木一样,一块一块搭起来。
不再是只会 import torch 的调包侠。理解从数学模型到机器指令的完整链路——高性能计算、AI 芯片、系统软件的核心能力。简历上留下“独立实现了一个AI到RISC-V的完整编译器”。
每周线上会议,随时提问,peer review 代码,一起庆祝每个里程碑。完成项目后代码成为开源项目的一部分,帮助后来者。
我们特别欢迎这样的你:
你可能还没学过编译原理、还没搞懂指令集、甚至对汇编有点畏惧——都没关系。我们就是来带你一步步跨过这些坎的。
| 时间 | 事项 |
|---|---|
| 即日起 | 开始报名 |
| 6 月 20 日 | 线上宣讲 + 课题选择 + 报名截止 |
| 7 月 10 日 | 项目正式开启(启动会 + 第一周任务发布) |
| 8 月 1 日 | Phase 1 关键成果验收(里程碑 checkpoint) |
| 8 月 28 日 | Phase 2 关键成果验收(第二个里程碑) |
| 9 月 27 日 | 项目结项(成果展示 + 结项总结) |
Q:我连 ONNX 都没听过,能行吗?
A:当然可以。我们第 1 周就会带你跑通一个例子,ONNX 只是一个文件格式,你把它当成“模型存盘”就好。
Q:我没学过编译原理,会不会听不懂?
A:我们会用很直观的比喻(比如把编译器想像成“翻译官”,把模型语言翻译成芯片语言),避开理论轰炸,先动手再做总结。
Q:需要买 RISC-V 开发板吗?
A:不需要。全程用软件仿真模拟器,在你的笔记本电脑上就能跑。
Q:如果我中途跟不上怎么办?
A:每个阶段都有进度检查,我们会主动帮你。项目设计时已经留出了缓冲时间,而且你可以选择只完成核心路径,放弃一些附加优化。完成比完美更重要。
也许你现在觉得编译器遥不可及,
但三个月后,你会看着自己写的代码,把一行行模型规则变成芯片指令,
那种“我居然做到了”的感觉,会是你大学期间最难忘的回忆之一。
不要让“基础不够”成为不敢开始的理由。
我们等你一起来,写出属于你的第一个编译器。
👉 立即报名:【问卷星报名链接】 (点击填写基本信息)
📧 QQ群:1106852304 (加群获取详细任务文档及预习资料)
欢迎转发给同样好奇的小伙伴,一起挑战!
✨ 你不需要很厉害才能开始,但你需要开始才能很厉害。 ✨