一块GPU有数十亿个晶体管,普通人连原理图都看不懂。但有人把它拆成了能拖拖拽拽的积木,让完全不懂芯片的人也能体验"造显卡"的快感。

这就是最近Hacker News上爆火的Side Project——「NandGame」作者的新作,一款用浏览器就能玩的GPU构建模拟器。上线72小时,10万独立访客涌入,服务器差点被拖垮。

从逻辑门到光栅化:一场15年的执念

从逻辑门到光栅化:一场15年的执念

作者「Ivan」不是芯片设计出身。2009年,他还是个对计算机原理一知半解的程序员,偶然接触到「从与非门(NAND gate)开始构建计算机」的概念,从此入迷。

「那时候我就想,能不能做一款游戏,让玩家从最基本的逻辑门出发,一步步拼出CPU、内存,最后跑起程序?」Ivan回忆。这个念头催生了2016年的NandGame——一款从NAND门开始教计算机组成的网页游戏,至今累计数百万玩家。

但GPU一直是他的白月光。「CPU的指令执行相对线性,GPU的并行架构完全是另一套思维方式。光栅化、顶点着色、纹理映射……这些概念对软件工程师来说都很抽象。」

2023年,Ivan终于动手。他用了一年半的业余时间,把现代GPU的渲染管线拆解成可交互的拼图模块。

游戏怎么玩:像接线员一样"造"显卡

游戏怎么玩:像接线员一样"造"显卡

打开游戏,界面像一张巨大的电路设计图。左侧是工具栏,摆着各种功能模块:顶点处理器、光栅化单元、片段着色器、纹理采样器……

玩家的任务是把它们用"线"连起来,构建完整的渲染管线。每完成一个阶段,右侧的预览窗口就会实时显示结果——从最简单的三角形,到带光照的3D模型,再到最终的纹理贴图。

关键设计在于"渐进解锁"。第一关只给3个模块,让你拼出一个能画点的管线。通关后解锁新模块,复杂度指数级上升。到后期,你需要同时管理数百条数据通路,协调顶点数据和像素数据的并行流动。

「我故意没有给太多提示。」Ivan说,「就像真实的硬件设计,你得理解数据在管线里怎么流动,为什么某个阶段会瓶颈。有人卡在光栅化阶段整整两天,突然顿悟的时候在Reddit发长文庆祝。」

为什么程序员集体上头

Hacker News的热评揭示了一个尴尬现实:很多软件工程师天天调用GPU,却根本不懂它在干什么

「我用CUDA写了五年深度学习代码,今天才知道线程块是怎么映射到实际硬件的。」一位评论者写道。另一位图形程序员承认:「我面试过自称懂GPU的人,十个有九个说不清Z-buffer测试发生在管线的哪个阶段。」

Ivan的游戏恰好填补了这个认知断层。它不要求玩家写Verilog或处理时序约束——那些是芯片设计师的领地——而是用更抽象的"数据流思维"让你理解GPU的本质:一个把3D场景暴力拆解成数百万像素、并行着色的专用机器。

上线后的数据印证了这种需求。访客中35%来自技术论坛的直接链接,平均停留时间超过12分钟——对于一款教育向的网页游戏,这个数字相当夸张。

从玩具到工具:意外的专业用户

从玩具到工具:意外的专业用户

Ivan最初定位是"给程序员玩的解谜游戏",但用户画像让他意外。

芯片设计专业的学生把它当预习材料,有人带着笔记本去面试前最后过一遍管线流程。更离谱的是某GPU厂商的工程师——据Ivan收到的邮件,对方团队用这个游戏给新入职的软件工程师做架构培训,「比看手册快十倍」。

当然也有批评。硬件纯粹派认为抽象层级太高,「玩完还是不会写RTL」。Ivan的回应很直接:「我的目标不是培养芯片设计师,是让写Shader的人知道他的代码在硬件上怎么跑。这个鸿沟比想象中大得多。」

游戏目前完全免费,代码开源在GitHub。Ivan在考虑加入更多现代特性——光线追踪的BVH遍历、网格着色器的新管线——但担心复杂度会劝退普通玩家。

「也许下一步是做ASIC版本?」他在Hacker News的回复半开玩笑,「从沙子开始提纯硅,然后光刻……不过那可能得换个游戏引擎了。」

10万人已经体验过"造显卡"的快感。你会是那个试图优化管线延迟、把帧率压榨到极限的人吗?