✨ 零基础 · 完全开源 · 动手创造

🧭 探索“AI模型→芯片指令”
的神奇之旅

零基础友好 · 亲手搭建迷你编译器 · 三个月从模型到RISC-V指令

⚙️✨

💡 你有没有好奇过……

  • 你写的 Python 代码,电脑到底是怎么“听懂”并执行的?
  • 那些炫酷的 AI 模型(比如能识别猫狗、写诗的那种),最后是怎么在小小的芯片上跑起来的?
  • 编译器——这个听起来很高深的东西,到底在做什么?

✨ 如果这些问题让你心里痒痒的,哪怕你现在只学过一点点编程,甚至还没上过编译原理课——这个项目就是为你准备的

📌 我们要一起做什么?

三个月 的时间,从零开始,一起亲手搭建一个迷你编译器

🔹 输入:一个简单的 AI 模型文件(比如一个会做加法、乘法的“小模型”)
🔹 输出:一段可以被 RISC-V 芯片执行的指令(汇编代码,看起来像 addload 这种“芯片语言”)
🔹 然后:放到模拟芯片的软件(tinyfive)里跑一跑,看它能不能正确计算

整个过程完全由你自己动手实现:读懂模型 → 翻译成中间语言 → 优化 → 生成指令
我们不会依赖像 LLVM、MLIR 这种巨型框架——每一步都让你亲手写出来,真正搞懂背后的原理

✨ 你不需要有编译器基础,我们会从最最基础的概念讲起。

📚 课题精选(14 个课题,均已完成实现)

所有课题均包含:实现模块 + 入门文档 + 单元测试 + 性能基准。同学可以任选课题深入研究,或者自由提出新问题。 🚀

📄 课题 📝 说明 📌 难度 📖 实现指南 📋 课题提案
课题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扩展实现指南 →提案 →
💡 项目仓库github.com/ScratchV-Compiler/ScratchV
📖 实现指南docs/topics/*_guide.md(每个课题一份 API 文档)
📋 课题提案docs/topics/课题*.md(12 周学习计划 + 验收标准)
348 个单元测试覆盖所有模块,pytest tests/ -v

🗺️ 三个月的学习路线(带飞计划)

我们为你设计了循序渐进的里程碑,每周任务清晰,有人答疑,不让你一个人瞎撞。

1 Phase 1 · 初探魔法

你会学到什么: 跑通别人写好的完整例子,看懂模型 → 指令的“魔法”全过程

感受: 🎉 哇,原来是这样!

2 Phase 2 · 亲手创造

你会学到什么: 自己写代码:把一个简单的 ONNX 模型(比如加法、矩阵乘)翻译成自己的中间语言;或者写一个后端,生成 RISC-V 汇编

感受: 🚀 开始创造,成就感爆棚

3 Phase 3 · 优化绽放

你会学到什么: 让你的编译器跑通更多模型,优化编译器,使得编译出的指令更短、运行更快,写文档,把项目变成你简历上的骄傲

感受: 🏆 我居然做出了一个编译器!

📅 每周只需要 8~10 小时(包含学习、写代码、和小伙伴讨论),我们会提供:

  • 预置的框架和 benchmark(你不用从负数开始)
  • 每周一次线上答疑 + 讲解
  • 详细的参考资料和代码示例

🔥 为什么你值得来试一试?

🧠

不需要“大神基础”

只需要好奇心和耐心。你学过一点 Python 或 C?够了。甚至不知道 RISC-V?我们用两周带你入门。像搭积木一样,一块一块搭起来。

你会获得“真东西”

不再是只会 import torch 的调包侠。理解从数学模型到机器指令的完整链路——高性能计算、AI 芯片、系统软件的核心能力。简历上留下“独立实现了一个AI到RISC-V的完整编译器”

🤝

温暖的开源社区

每周线上会议,随时提问,peer review 代码,一起庆祝每个里程碑。完成项目后代码成为开源项目的一部分,帮助后来者。

🙋 谁适合报名?

我们特别欢迎这样的你:

✅ 大二、大三、研一,或自学编程爱好者 ✅ 学过一门编程语言(Python / C / C++ 都行) ✅ 对“计算机到底怎么跑程序”有好奇心 ✅ 不怕犯错,敢写代码(Bug是学习的一部分!) ✅ 每周能拿出 8~10 小时

你可能还没学过编译原理、还没搞懂指令集、甚至对汇编有点畏惧——都没关系。我们就是来带你一步步跨过这些坎的。

📅 关键时间节点

时间事项
即日起开始报名
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 (加群获取详细任务文档及预习资料)

欢迎转发给同样好奇的小伙伴,一起挑战!

#零基础编译器 #RISC-V #开源项目 #动手实践 #从兴趣到能力

✨ 你不需要很厉害才能开始,但你需要开始才能很厉害。 ✨