-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathScratchV.html
More file actions
480 lines (443 loc) · 28.6 KB
/
Copy pathScratchV.html
File metadata and controls
480 lines (443 loc) · 28.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>🧠 从AI模型到芯片指令 | 零基础编译器开源项目招募</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: linear-gradient(145deg, #f9fafc 0%, #f1f5f9 100%);
font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
color: #0a1c2f;
line-height: 1.5;
scroll-behavior: smooth;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 2rem 1.5rem;
}
/* 卡片与装饰 */
.card {
background: rgba(255,255,255,0.92);
backdrop-filter: blur(2px);
border-radius: 2rem;
box-shadow: 0 12px 30px rgba(0,0,0,0.05), 0 4px 8px rgba(0,0,0,0.02);
padding: 2rem;
transition: transform 0.2s ease, box-shadow 0.2s ease;
border: 1px solid rgba(148, 163, 184, 0.2);
}
.card:hover {
box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.15);
}
.glass-header {
background: rgba(255,255,255,0.85);
backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(100,116,139,0.2);
}
h1 {
font-size: 2.8rem;
font-weight: 800;
background: linear-gradient(135deg, #1E2B3C, #2C4B6E, #0F2B3D);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
letter-spacing: -0.01em;
line-height: 1.2;
}
h2 {
font-size: 1.8rem;
font-weight: 700;
margin: 0 0 1rem 0;
border-left: 6px solid #3b82f6;
padding-left: 1rem;
color: #0c4a6e;
}
h3 {
font-size: 1.3rem;
font-weight: 600;
margin: 1.2rem 0 0.6rem 0;
color: #1e293b;
}
.badge {
display: inline-block;
background: #e0f2fe;
color: #0369a1;
border-radius: 100px;
padding: 0.2rem 0.8rem;
font-size: 0.8rem;
font-weight: 600;
}
.timeline-grid, .features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.8rem;
margin: 2rem 0;
}
.phase-card {
background: white;
border-radius: 1.5rem;
padding: 1.5rem;
box-shadow: 0 8px 20px rgba(0,0,0,0.03);
border: 1px solid #e2e8f0;
transition: all 0.2s;
}
.phase-card h3 {
margin-top: 0;
display: flex;
align-items: center;
gap: 0.5rem;
}
.phase-number {
background: #1e293b;
color: white;
width: 32px;
height: 32px;
border-radius: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
table {
width: 100%;
border-collapse: collapse;
background: white;
border-radius: 1.2rem;
overflow: hidden;
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
th, td {
text-align: left;
padding: 1rem 1.2rem;
border-bottom: 1px solid #e9eef3;
}
th {
background-color: #f8fafc;
font-weight: 700;
color: #0f3b5c;
}
tr:last-child td {
border-bottom: none;
}
.btn-primary {
background: linear-gradient(100deg, #1e2f3e, #0f2c3f);
color: white;
border: none;
padding: 0.9rem 2rem;
font-size: 1.1rem;
font-weight: 600;
border-radius: 60px;
cursor: pointer;
transition: all 0.2s ease;
display: inline-flex;
align-items: center;
gap: 0.5rem;
text-decoration: none;
box-shadow: 0 6px 14px rgba(0, 52, 89, 0.2);
}
.btn-primary:hover {
background: linear-gradient(100deg, #143141, #0a2538);
transform: translateY(-2px);
box-shadow: 0 12px 20px -8px rgba(0,0,0,0.25);
}
.faq-item {
background: white;
border-radius: 1.2rem;
padding: 1rem 1.5rem;
margin-bottom: 1rem;
border-left: 4px solid #3b82f6;
}
.footer {
text-align: center;
border-top: 1px solid #dce3ec;
padding-top: 2rem;
margin-top: 3rem;
font-size: 0.9rem;
color: #475569;
}
.hashtags {
display: flex;
flex-wrap: wrap;
gap: 0.6rem;
justify-content: center;
margin-top: 1.5rem;
}
.hashtags span {
background: #eef2ff;
padding: 0.3rem 1rem;
border-radius: 40px;
font-size: 0.8rem;
font-weight: 500;
color: #1e40af;
}
@media (max-width: 768px) {
.container {
padding: 1rem;
}
h1 {
font-size: 2rem;
}
h2 {
font-size: 1.5rem;
}
.card {
padding: 1.2rem;
}
th, td {
padding: 0.8rem;
font-size: 0.85rem;
}
}
.highlight {
background: linear-gradient(120deg, #fff3bf 0%, #fff3bf 40%, transparent 80%);
font-weight: 500;
padding: 0 0.2rem;
}
hr {
margin: 2rem 0;
border: 0;
height: 1px;
background: linear-gradient(to right, #cbd5e1, transparent);
}
.list-styled {
padding-left: 1.5rem;
margin: 1rem 0;
}
.list-styled li {
margin: 0.6rem 0;
}
/* 表格中的文档链接样式 */
.doc-link {
color: #2563eb;
text-decoration: none;
font-weight: 500;
border-bottom: 1px dashed #94a3b8;
transition: color 0.2s, border-bottom-color 0.2s;
}
.doc-link:hover {
color: #1e40af;
border-bottom-color: #1e40af;
}
.badge-sm {
background: #e6f0ff;
color: #075985;
font-size: 0.7rem;
padding: 0.2rem 0.5rem;
border-radius: 30px;
font-weight: 500;
white-space: nowrap;
}
</style>
</head>
<body>
<div class="container">
<!-- Hero 部分 -->
<div class="card" style="background: linear-gradient(115deg, #ffffff 0%, #fefefe 100%); margin-bottom: 2rem;">
<div style="display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;">
<div style="flex: 1;">
<span class="badge">✨ 零基础 · 完全开源 · 动手创造</span>
<h1 style="margin-top: 0.5rem;">🧭 探索“AI模型→芯片指令”<br>的神奇之旅</h1>
<p style="font-size: 1.2rem; color: #2c3e4e; margin-top: 1rem; max-width: 90%;">零基础友好 · 亲手搭建迷你编译器 · 三个月从模型到RISC-V指令</p>
</div>
<div style="font-size: 3.5rem;">⚙️✨</div>
</div>
<div style="margin-top: 1rem; background: #eef4ff; border-radius: 2rem; padding: 0.8rem 1.5rem;">
<p style="font-weight: 500;">💡 你有没有好奇过……</p>
<ul class="list-styled" style="margin-bottom: 0;">
<li>你写的 Python 代码,电脑到底是怎么“听懂”并执行的?</li>
<li>那些炫酷的 AI 模型(比如能识别猫狗、写诗的那种),最后是怎么在小小的芯片上跑起来的?</li>
<li>编译器——这个听起来很高深的东西,到底在做什么?</li>
</ul>
<p style="margin-top: 0.5rem;">✨ 如果这些问题让你心里痒痒的,哪怕你现在<strong>只学过一点点编程</strong>,甚至<strong>还没上过编译原理课</strong>——<strong>这个项目就是为你准备的</strong>。</p>
</div>
</div>
<!-- 我们要一起做什么? -->
<div class="card" style="margin-bottom: 2rem;">
<h2>📌 我们要一起做什么?</h2>
<p>用 <strong>三个月</strong> 的时间,<strong>从零开始</strong>,一起<strong>亲手搭建一个迷你编译器</strong>。</p>
<div style="background: #f1f5f9; border-radius: 1.2rem; padding: 1.2rem; margin: 1rem 0;">
<p>🔹 <strong>输入</strong>:一个简单的 AI 模型文件(比如一个会做加法、乘法的“小模型”)<br>
🔹 <strong>输出</strong>:一段可以被 RISC-V 芯片执行的指令(汇编代码,看起来像 <code>add</code>、<code>load</code> 这种“芯片语言”)<br>
🔹 <strong>然后</strong>:放到模拟芯片的软件(tinyfive)里跑一跑,看它能不能正确计算</p>
</div>
<p><strong>整个过程完全由你自己动手实现:读懂模型 → 翻译成中间语言 → 优化 → 生成指令</strong><br>
我们不会依赖像 LLVM、MLIR 这种巨型框架——<strong>每一步都让你亲手写出来,真正搞懂背后的原理</strong>。</p>
<p>✨ 你不需要有编译器基础,我们会从最最基础的概念讲起。</p>
</div>
<!-- ============================== -->
<!-- 课题精选:14 个课题(含实现指南) -->
<div class="card" style="margin-bottom: 2rem;">
<h2>📚 课题精选(14 个课题,均已完成实现)</h2>
<p>所有课题均包含:<strong>实现模块</strong> + <strong>入门文档</strong> + <strong>单元测试</strong> + <strong>性能基准</strong>。同学可以任选课题深入研究,或者自由提出新问题。 🚀</p>
<div style="overflow-x: auto; margin-top: 1.2rem;">
<table>
<thead>
<tr>
<th>📄 课题</th>
<th>📝 说明</th>
<th>📌 难度</th>
<th>📖 实现指南</th>
<th>📋 课题提案</th>
</tr>
</thead>
<tbody>
<tr><td>课题01:DSL前端增强器</td><td>为DSL增加if/else和while语法,扩展解析器生成三地址码</td><td><span class="badge-sm">中</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/topic01_dsl_enhancer_guide.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%981%EF%BC%9ADSL%E5%89%8D%E7%AB%AF%E5%A2%9E%E5%BC%BA%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题05:RISC-V汇编代码美化器</td><td>对齐汇编字段并为每条指令自动添加语义注释</td><td><span class="badge-sm">低</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/05-汇编代码美化器.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%985%EF%BC%9ARISC-V%E6%B1%87%E7%BC%96%E4%BB%A3%E7%A0%81%E7%BE%8E%E5%8C%96%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题06:编译器性能测试套件</td><td>23个DSL测试用例,自动化编译执行,生成Markdown/HTML报告</td><td><span class="badge-sm">中</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/topic06_bench_suite_guide.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%986%EF%BC%9A%E7%BC%96%E8%AF%91%E5%99%A8%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E5%A5%97%E4%BB%B6.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题07:编译器日志增强器</td><td>分级彩色日志系统,支持文件输出和阶段耗时统计</td><td><span class="badge-sm">低</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/topic07_logger_guide.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%987%EF%BC%9A%E7%BC%96%E8%AF%91%E5%99%A8%E6%97%A5%E5%BF%97%E5%A2%9E%E5%BC%BA%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题09:DSL错误提示美化器</td><td>GCC风格错误报告:行列号+源码行+^标记+修复建议</td><td><span class="badge-sm">中</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/topic09_dsl_errors_guide.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%989%EF%BC%9ADSL%E9%94%99%E8%AF%AF%E6%8F%90%E7%A4%BA%E7%BE%8E%E5%8C%96%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题11:控制流图(CFG)生成器</td><td>从IR构建CFG,支配树+自然循环检测+DOT可视化输出</td><td><span class="badge-sm">高</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/topic11_cfg_builder_guide.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9811%EF%BC%9A%E6%8E%A7%E5%88%B6%E6%B5%81%E5%9B%BE%EF%BC%88CFG%EF%BC%89%E7%94%9F%E6%88%90%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题12:RISC-V后端指令计数统计器</td><td>分类统计汇编指令,生成饼图/条形图/HTML对比报告</td><td><span class="badge-sm">高</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/12-指令计数统计器.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9812%EF%BC%9ARISC-V%E5%90%8E%E7%AB%AF%E6%8C%87%E4%BB%A4%E8%AE%A1%E6%95%B0%E7%BB%9F%E8%AE%A1%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题13:窥孔优化器</td><td>汇编级滑动窗口匹配,5条默认规则,支持自定义模式</td><td><span class="badge-sm">低</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/13-窥孔优化器.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9813%EF%BC%9A%E7%AA%A5%E5%AD%94%E4%BC%98%E5%8C%96%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题14:常量加载合并优化</td><td>lui+addi→li合并,冗余lui消除,符号扩展正确处理</td><td><span class="badge-sm">低</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/14-常量加载合并.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9814%EF%BC%9A%E5%B8%B8%E9%87%8F%E5%8A%A0%E8%BD%BD%E5%90%88%E5%B9%B6%E4%BC%98%E5%8C%96.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题17:寄存器分配(线性扫描)</td><td>活跃区间计算+线性扫描分配+最远结束溢出+栈槽管理</td><td><span class="badge-sm">高</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/17-寄存器分配.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9817%EF%BC%9A%E5%AF%84%E5%AD%98%E5%99%A8%E5%88%86%E9%85%8D%EF%BC%88%E5%9F%BA%E6%9C%AC%E5%9D%97%E5%86%85%E7%BA%BF%E6%80%A7%E6%89%AB%E6%8F%8F%EF%BC%89.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题18:指令调度(列表调度)</td><td>依赖DAG构建+关键路径优先级+列表调度+RISC-V延迟模型</td><td><span class="badge-sm">高</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/18-指令调度器.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9818%EF%BC%9A%E6%8C%87%E4%BB%A4%E8%B0%83%E5%BA%A6%EF%BC%88%E5%9F%BA%E6%9C%AC%E5%9D%97%E5%86%85%E5%88%97%E8%A1%A8%E8%B0%83%E5%BA%A6%EF%BC%89.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题20:项目代码规范与格式化</td><td>Black+isort+Ruff+mypy+pre-commit Hooks一键配置</td><td><span class="badge-sm">低</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/topic20_code_standards_guide.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9820%EF%BC%9A%E9%A1%B9%E7%9B%AE%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83%E4%B8%8E%E6%A0%BC%E5%BC%8F%E5%8C%96.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题21:IR 验证器</td><td>7类规则:定义使用+标签存在+块终止+类型一致+控制流+SSA</td><td><span class="badge-sm">中</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/topic21_ir_verifier_guide.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9821%EF%BC%9AIR%E9%AA%8C%E8%AF%81%E5%99%A8.md" class="doc-link">提案 →</a></td></tr>
<tr><td>课题28:完善后端指令选择</td><td>sqrt/min/max/abs算子支持 + float64双精度浮点D扩展</td><td><span class="badge-sm">中</span></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/28-扩展指令选择.md" class="doc-link">实现指南 →</a></td><td><a href="https://github.com/ScratchV-Compiler/ScratchV/blob/main/docs/topics/archive/%E8%AF%BE%E9%A2%9828%EF%BC%9A%E5%AE%8C%E5%96%84%E5%90%8E%E7%AB%AF%E6%8C%87%E4%BB%A4%E9%80%89%E6%8B%A9.md" class="doc-link">提案 →</a></td></tr>
</tbody>
</table>
</div>
<div style="margin-top: 1rem; font-size: 0.85rem; background: #f8fafc; padding: 0.8rem 1rem; border-radius: 1rem;">
💡 <strong>项目仓库</strong>:<a href="https://github.com/ScratchV-Compiler/ScratchV" target="_blank" style="color:#0369a1;">github.com/ScratchV-Compiler/ScratchV</a><br>
📖 <strong>实现指南</strong>在 <code>docs/topics/*_guide.md</code>(每个课题一份 API 文档)<br>
📋 <strong>课题提案</strong>在 <code>docs/topics/课题*.md</code>(12 周学习计划 + 验收标准)<br>
✅ <strong>348 个单元测试</strong>覆盖所有模块,<code>pytest tests/ -v</code>
</div>
</div>
<!-- 三个月的学习路线<!-- 三个月的学习路线(带飞计划) -->
<div class="card" style="margin-bottom: 2rem;">
<h2>🗺️ 三个月的学习路线(带飞计划)</h2>
<p>我们为你设计了<strong>循序渐进</strong>的里程碑,每周任务清晰,有人答疑,不让你一个人瞎撞。</p>
<div class="timeline-grid">
<div class="phase-card">
<h3><span class="phase-number">1</span> Phase 1 · 初探魔法</h3>
<p><strong>你会学到什么:</strong> 跑通别人写好的完整例子,看懂模型 → 指令的“魔法”全过程</p>
<p><strong>感受:</strong> 🎉 哇,原来是这样!</p>
</div>
<div class="phase-card">
<h3><span class="phase-number">2</span> Phase 2 · 亲手创造</h3>
<p><strong>你会学到什么:</strong> 自己写代码:把一个简单的 ONNX 模型(比如加法、矩阵乘)翻译成自己的中间语言;或者写一个后端,生成 RISC-V 汇编</p>
<p><strong>感受:</strong> 🚀 开始创造,成就感爆棚</p>
</div>
<div class="phase-card">
<h3><span class="phase-number">3</span> Phase 3 · 优化绽放</h3>
<p><strong>你会学到什么:</strong> 让你的编译器跑通更多模型,优化编译器,使得编译出的指令更短、运行更快,写文档,把项目变成你简历上的骄傲</p>
<p><strong>感受:</strong> 🏆 我居然做出了一个编译器!</p>
</div>
</div>
<div style="background: #f1f6fe; border-radius: 1.2rem; padding: 1rem; margin-top: 0.8rem;">
<p>📅 <strong>每周只需要 8~10 小时</strong>(包含学习、写代码、和小伙伴讨论),我们会提供:</p>
<ul class="list-styled">
<li>预置的框架和 benchmark(你不用从负数开始)</li>
<li>每周一次线上答疑 + 讲解</li>
<li>详细的参考资料和代码示例</li>
</ul>
</div>
</div>
<!-- 为什么你值得来试一试 -->
<div class="card" style="margin-bottom: 2rem;">
<h2>🔥 为什么你值得来试一试?</h2>
<div class="features-grid">
<div style="background: white; padding: 1.2rem; border-radius: 1.2rem; border:1px solid #eef2ff">
<div style="font-size: 2rem;">🧠</div>
<h3>不需要“大神基础”</h3>
<p>只需要好奇心和耐心。你学过一点 Python 或 C?够了。甚至不知道 RISC-V?我们用两周带你入门。像搭积木一样,一块一块搭起来。</p>
</div>
<div style="background: white; padding: 1.2rem; border-radius: 1.2rem; border:1px solid #eef2ff">
<div style="font-size: 2rem;">⚡</div>
<h3>你会获得“真东西”</h3>
<p>不再是只会 <code>import torch</code> 的调包侠。理解从数学模型到机器指令的完整链路——高性能计算、AI 芯片、系统软件的核心能力。简历上留下<strong>“独立实现了一个AI到RISC-V的完整编译器”</strong>。</p>
</div>
<div style="background: white; padding: 1.2rem; border-radius: 1.2rem; border:1px solid #eef2ff">
<div style="font-size: 2rem;">🤝</div>
<h3>温暖的开源社区</h3>
<p>每周线上会议,随时提问,peer review 代码,一起庆祝每个里程碑。完成项目后代码成为开源项目的一部分,帮助后来者。</p>
</div>
</div>
</div>
<!-- 谁适合报名 + 报名画像 -->
<div class="card" style="margin-bottom: 2rem;">
<h2>🙋 谁适合报名?</h2>
<p>我们特别欢迎这样的你:</p>
<div style="display: flex; flex-wrap: wrap; gap: 0.8rem; margin: 1rem 0;">
<span class="badge" style="background:#dbeafe;">✅ 大二、大三、研一,或自学编程爱好者</span>
<span class="badge" style="background:#dbeafe;">✅ 学过一门编程语言(Python / C / C++ 都行)</span>
<span class="badge" style="background:#dbeafe;">✅ 对“计算机到底怎么跑程序”有好奇心</span>
<span class="badge" style="background:#dbeafe;">✅ 不怕犯错,敢写代码(Bug是学习的一部分!)</span>
<span class="badge" style="background:#dbeafe;">✅ 每周能拿出 8~10 小时</span>
</div>
<p>你可能<strong>还没学过编译原理、还没搞懂指令集、甚至对汇编有点畏惧</strong>——都没关系。我们就是来带你一步步跨过这些坎的。</p>
</div>
<!-- 关键时间节点 (表格) -->
<div class="card" style="margin-bottom: 2rem;">
<h2>📅 关键时间节点</h2>
<div style="overflow-x: auto;">
<table>
<thead>
<tr><th>时间</th><th>事项</th></tr>
</thead>
<tbody>
<tr><td><strong>即日起</strong></td><td>开始报名</td></tr>
<tr><td><strong>6 月 20 日</strong></td><td>线上宣讲 + 课题选择 + <strong>报名截止</strong></td></tr>
<tr><td><strong>7 月 10 日</strong></td><td>项目正式开启(启动会 + 第一周任务发布)</td></tr>
<tr><td><strong>8 月 1 日</strong></td><td>Phase 1 关键成果验收(里程碑 checkpoint)</td></tr>
<tr><td><strong>8 月 28 日</strong></td><td>Phase 2 关键成果验收(第二个里程碑)</td></tr>
<tr><td><strong>9 月 27 日</strong></td><td>项目结项(成果展示 + 结项总结)</td></tr>
</tbody>
</table>
</div>
</div>
<!-- 常见疑问 -->
<div class="card" style="margin-bottom: 2rem;">
<h2>💬 常见疑问</h2>
<div class="faq-item">
<p><strong>Q:我连 ONNX 都没听过,能行吗?</strong><br>A:当然可以。我们第 1 周就会带你跑通一个例子,ONNX 只是一个文件格式,你把它当成“模型存盘”就好。</p>
</div>
<div class="faq-item">
<p><strong>Q:我没学过编译原理,会不会听不懂?</strong><br>A:我们会用很直观的比喻(比如把编译器想像成“翻译官”,把模型语言翻译成芯片语言),避开理论轰炸,先动手再做总结。</p>
</div>
<div class="faq-item">
<p><strong>Q:需要买 RISC-V 开发板吗?</strong><br>A:不需要。全程用软件仿真模拟器,在你的笔记本电脑上就能跑。</p>
</div>
<div class="faq-item">
<p><strong>Q:如果我中途跟不上怎么办?</strong><br>A:每个阶段都有进度检查,我们会主动帮你。项目设计时已经留出了缓冲时间,而且你可以选择只完成核心路径,放弃一些附加优化。<strong>完成比完美更重要。</strong></p>
</div>
</div>
<!-- 鼓励段落 + 从今天起 -->
<div class="card" style="background: linear-gradient(115deg, #f0f9ff, #e6f0fa); margin-bottom: 2rem;">
<h2 style="border-left-color: #f97316;">🌟 从今天起,给自己一个“创造编译器”的机会</h2>
<p>也许你现在觉得编译器遥不可及,<br>
但三个月后,你会看着自己写的代码,把一行行模型规则变成芯片指令,<br>
那种“我居然做到了”的感觉,会是你大学期间最难忘的回忆之一。</p>
<p style="font-weight: 600; font-size: 1.2rem;">不要让“基础不够”成为不敢开始的理由。<br>我们等你一起来,写出属于你的第一个编译器。</p>
</div>
<!-- 报名 + 联系方式 -->
<div class="card" style="text-align: center; background: white;">
<h2>📢 立即加入,开启旅程</h2>
<p style="margin: 0.5rem 0 1rem;">👉 <strong>立即报名</strong>:<a href="https://v.wjx.cn/vm/PUztYNv.aspx" target="_blank" style="color:#1e4a76; font-weight: bold;">【问卷星报名链接】</a> (点击填写基本信息)</p>
<p>📧 QQ群:<strong>1106852304</strong> (加群获取详细任务文档及预习资料)</p>
<p style="font-size: 0.9rem; margin-top: 0.5rem;">欢迎转发给同样好奇的小伙伴,一起挑战!</p>
<div class="hashtags">
<span>#零基础编译器</span>
<span>#RISC-V</span>
<span>#开源项目</span>
<span>#动手实践</span>
<span>#从兴趣到能力</span>
</div>
<p style="margin-top: 1rem; font-weight: 500;">✨ 你不需要很厉害才能开始,但你需要开始才能很厉害。 ✨</p>
</div>
<!-- 完全保留原文末尾的号召标志 -->
<div class="footer">
<p>🧭 开源项目 · 零基础友好 · 从模型到指令 · 三个月蜕变<br>🤝 一起打造属于你的第一个AI编译器</p>
<p style="font-size: 0.8rem;">© 2026 开源社区招募 | 全程软件仿真 | 无需硬件</p>
</div>
</div>
</body>
</html>