一塊GPU有數十億個晶體管,普通人連原理圖都看不懂。但有人把它拆成了能拖拖拽拽的積木,讓完全不懂芯片的人也能體驗"造顯卡"的快感。
這就是最近Hacker News上爆火的Side Project——「NandGame」作者的新作,一款用瀏覽器就能玩的GPU構建模擬器。上線72小時,10萬獨立訪客涌入,服務器差點被拖垮。
從邏輯門到光柵化:一場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萬人已經體驗過"造顯卡"的快感。你會是那個試圖優化管線延遲、把幀率壓榨到極限的人嗎?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.