[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-claudes-c-compiler-benchmarks-analysis-zh":3,"article-related-claudes-c-compiler-benchmarks-analysis-zh":28,"series-tools-920762f8-7d82-488d-8e94-7ee1423c98aa":85},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":11,"views":25,"created_at":26,"published_at":27,"topic_cluster_id":11},"920762f8-7d82-488d-8e94-7ee1423c98aa","claudes-c-compiler-benchmarks-analysis-zh","Claude 的 C 編譯器把基準測試搞砸了","\u003Cp>\u003Ca href=\"https:\u002F\u002Fchipsandcheese.com\u002Fp\u002Fembracing-ai-with-claudes-c-compiler\" target=\"_blank\" rel=\"noopener\">Chips and Cheese\u003C\u002Fa> 在 2026 年 4 月做了一次很狠的測試。主角是 \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fintroducing-claude-code\" target=\"_blank\" rel=\"noopener\">Claude\u003C\u002Fa> 寫的 \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fclaude-3-7-sonnet\" target=\"_blank\" rel=\"noopener\">C compiler\u003C\u002Fa>，也就是 CCC。它能編過 Linux kernel，但在 SPEC CPU2017 上，效能常常直接掉超過 70%。\u003C\u002Fp>\u003Cp>更扯的是，有一個測項還在 Arm 的 Cortex X925 上當掉。這種結果很適合拿來提醒大家：能編譯，不等於能拿來跑真實工作負載。尤其是編譯器這種低階軟體，差一點點，整個結果就歪掉。\u003C\u002Fp>\u003Cp>講白了，這篇測試不是在酸 AI。它是在說，AI 工具一旦碰到編譯器、最佳化、診斷訊息，問題就會很硬。你可以先看起來很會，最後卻把 benchmark 搞成災難。\u003C\u002Fp>\u003Ch2>CCC 到底把簡單測試改成什麼樣子\u003C\u002Fh2>\u003Cp>文章先拿一個很小的 dependent-load microbenchmark 開刀。這種測試常用來看記憶體延遲。程式很簡單。每次存取都會餵給下一次，所以編譯器很難靠排程偷吃步。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775294153812-5l9f.png\" alt=\"Claude 的 C 編譯器把基準測試搞砸了\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>GCC 和 CCC 都能產生可執行程式。差別在於，CCC 會吐出更長的指令序列。它常把一個簡單動作拆成 sh\u003Ca href=\"\u002Fnews\u002Fdrift-280m-exploit-governance-controls-zh\">ift\u003C\u002Fa>、add、load，還多塞一些 reg\u003Ca href=\"\u002Fnews\u002Fdistsim-distributed-systems-on-your-laptop-zh\">ist\u003C\u002Fa>er shuffling。看起來像有做事，實際上是在增加負擔。\u003C\u002Fp>\u003Cp>在 x86-64 上，CCC 會把動作拆得更碎。到了 aarch64，情況也差不多，還會多經過 stack。結果不是小幅誤差，而是量到的延遲真的變了。這種差距在編譯器世界很致命。\u003C\u002Fp>\u003Cul>\u003Cli>CCC 有時會把短依賴鏈拉長成約 9 條指令\u003C\u002Fli>\u003Cli>Zen 5 和 Lion Cove 會吃掉一部分額外成本\u003C\u002Fli>\u003Cli>Arm 核心對這種寫法更敏感\u003C\u002Fli>\u003Cli>In-order 核心最慘，因為沒什麼空間藏住額外指令\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這裡很有意思。問題不只是「AI 寫出慢 code」。更像是 CCC 直接把 CPU 的微架構細節逼到台前。像 move elimination、store forwarding、decode width、reorder buffer，平常你不會一直想到它們。可是一旦編譯器亂搞，這些東西就變成主角。\u003C\u002Fp>\u003Cp>我覺得這也是這篇測試最有價值的地方。它不是只看能不能跑。它在看編譯器是不是懂得尊重硬體。這兩件事差很多。\u003C\u002Fp>\u003Ch2>它連 type error 都會放行\u003C\u002Fh2>\u003Cp>Chester Lam 也拿一個故意寫壞的 C 範例測 CCC。GCC 直接擋下來，照規矩吐出 type mismatch 錯誤。CCC 卻產生了可執行檔。這聽起來很好笑，但其實很危險。\u003C\u002Fp>\u003Cp>編譯器存在的理由之一，就是把錯誤擋在前面。Type checking 不是裝飾品。它是大型 C codebase 的保命機制。少了這層，很多 undefined behavior 會一路滑到 runtime 才爆。\u003C\u002Fp>\u003Cblockquote>“Our society has gone all-in on AI.” — Chester Lam\u003C\u002Fblockquote>\u003Cp>這句話在文章裡是帶點諷刺的語氣。可它背後的技術意思很實在。若 AI 編譯器喜歡把錯誤吞掉，你當下會覺得很方便。後面卻要付更多代價。像是 bug 更難追、相容性更差、問題更晚才爆。\u003C\u002Fp>\u003Cp>所以這裡的重點不是「AI 不行」。而是說，編譯器品質不能只看能不能編過。你還得看診斷、最佳化、架構特化，甚至是它會不會亂放行錯碼。只看 build 成功，根本不夠。\u003C\u002Fp>\u003Ch2>SPEC CPU2017 給出比較殘酷的答案\u003C\u002Fh2>\u003Cp>真正的壓力測試來自 SPEC CPU2017。文章跑了 8 個純 C 工作負載。平台有三個：Arm Cortex X925、AMD Zen 5、Intel Lion Cove。桌機平台還關掉 boost，避免比較太亂。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775294155420-e81w.png\" alt=\"Claude 的 C 編譯器把基準測試搞砸了\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>結果很難看。502.gcc 在 Cortex X925 上直接 segmentation f\u003Ca href=\"\u002Fnews\u002Fn8n-214-mcp-workflow-creation-zh\">au\u003C\u002Fa>lt。x86-64 這邊雖然有跑完，但 CCC 版本的 502.gcc，只剩 GCC 的 23.6% 到 27.1%。把 8 個工作負載平均起來，退步超過 70%。\u003C\u002Fp>\u003Cp>這種數字不是小瑕疵。這是整個評估方向都歪掉。CCC 最好的相對表現出現在 505.mcf，但慢幅度還是不到 35% 以內。其他測項更慘，尤其是 Arm 平台。\u003C\u002Fp>\u003Cul>\u003Cli>測試核心：Arm Cortex X925、AMD Zen 5、Intel Lion Cove\u003C\u002Fli>\u003Cli>工作負載：8 個 C-only SPEC CPU2017 測項\u003C\u002Fli>\u003Cli>最差結果：502.gcc 在 Cortex X925 當掉\u003C\u002Fli>\u003Cli>最佳相對表現：505.mcf，但還是比 GCC 慢超過 35%\u003C\u002Fli>\u003Cli>平均退步：略高於 70%\u003C\u002Fli>\u003C\u002Ful>\u003Cp>還有一個很值得注意的地方。用 GCC 跑時，Cortex X925 在幾個測項裡其實不差，甚至能跟 Zen 5、Lion Cove 打得有來有回。換成 CCC 後，這個平衡直接消失。Arm 幾乎每場都輸，少數例外也沒贏過 Intel。也就是說，編譯器會改變 chip 排名。\u003C\u002Fp>\u003Cp>這件事很重要。因為 benchmark 從來不只是硬體的故事。編譯器、最佳化旗標、指令選擇，都會改寫最後的成績單。你如果只看數字，不看工具鍊，結論常常會歪。\u003C\u002Fp>\u003Ch2>為什麼不同核心反應差這麼多\u003C\u002Fh2>\u003Cp>文章裡的 top-down analysis 把原因拆得很清楚。Zen 5 和 Lion Cove 都有很強的 out-of-order 機制。它們的 execution engine 比較寬，對爛依賴鏈也比較能忍。Cortex X925 就沒那麼寬容，尤其碰到大量 register move 和 stack traffic 時。\u003C\u002Fp>\u003Cp>Zen 5 還有很大的 op cache，前端通常比較能撐住。但文章提到一個例外，500.perlbench。CCC 讓 instruction footprint 變大，最後把前端推進 decoder bottleneck。這種例子很少見，但很有教訓味。\u003C\u002Fp>\u003Cp>對做軟體的人來說，這句話很實際。編譯器可以是 correct 的，卻還是很爛。只要它把指令數拉高、把 locality 弄壞、把 stack traffic 弄多，CPU 就得一條一條吞下去。\u003C\u002Fp>\u003Cul>\u003Cli>Zen 5 的 op cache 多半能撐住前端壓力\u003C\u002Fli>\u003Cli>Lion Cove 有更寬的 decoder 和較強的 OOO 資源\u003C\u002Fli>\u003Cli>Cortex X925 對 move 和 stack-heavy code 更敏感\u003C\u002Fli>\u003Cli>CCC 常常增加指令數，而不是只增加 branch 數\u003C\u002Fli>\u003C\u002Ful>\u003Cp>最後這點很關鍵。這也解釋了為什麼 branch prediction 不是主戰場。CCC 把 code 變大了，但不一定變得更常跳分支。結果瓶頸就跑去 retirement、backend execution，還有 memory behavior。\u003C\u002Fp>\u003Cp>說真的，這種失敗模式才最值得怕。因為它很像很多 AI coding tool 的老問題。demo 看起來很順，kernel 也能過，結果一進入 benchmark 就露餡。尤其是低階軟體，細節真的會咬人。\u003C\u002Fp>\u003Ch2>這對 AI coding tool 代表什麼\u003C\u002Fh2>\u003Cp>這篇文章雖然帶點諷刺，但技術證據很硬。AI coding system 這幾年確實更會生出看起來合理的 code。不過編譯器是最不容許裝懂的地方之一。只要一個最佳化 pass 出錯，整個 benchmark 都會被拖下水。\u003C\u002Fp>\u003Cp>對做產品的人來說，標準也要拉高。不是「大多時候能用」就算過關。你得確保它能保住 correctness，能抓出壞輸入，還不能把效能打爛。這對 low-level software 來說尤其難。\u003C\u002Fp>\u003Cp>所以我會把這篇測試解讀成一個很直白的提醒。AI 工具可以幫忙，但別急著把它當成成熟的系統軟體工程師。尤其是編譯器、assembler、runtime 這類東西，真的不能只看表面。\u003C\u002Fp>\u003Cp>我的判斷很簡單：AI 寫的 compiler 和 code generator 會繼續進步。可是真正敢放進 production 的團隊，還是得有人做 code review、benchmark gate、架構別驗證。你要先問的不是「它會不會寫」。而是「它會不會把硬體搞爛」。\u003C\u002Fp>\u003Ch2>接下來該怎麼看這類工具\u003C\u002Fh2>\u003Cp>如果你是工程團隊，最實際的做法不是先興奮。先把測試拉到最難的地方。像是 SPEC 類型的 workload、真實的 server workload、還有不同 CPU 架構。不要只看能不能 build 成功。\u003C\u002Fp>\u003Cp>如果你是開發者，也可以把這件事當成提醒。AI 產生的 code 很適合當草稿。可是一碰到 performance-critical path，還是要回到人類工程師的判斷。編譯器、runtime、kernel 這些地方，沒有什麼捷徑。\u003C\u002Fp>\u003Cp>我猜接下來 12 個月，大家會更常看到 AI 工具進入低階軟體流程。可是只要 benchmark 沒過，這些工具就還是只能算輔助。你要是問我值不值得用，我會說：可以用，但要非常兇地驗證。\u003C\u002Fp>\u003C\u002Fp>","Claude 寫的 C compiler 能編 Linux kernel，卻在 SPEC CPU2017 把效能打到只剩 GCC 的 23.6% 到 27.1%，還有一組直接當掉。","chipsandcheese.com","https:\u002F\u002Fchipsandcheese.com\u002Fp\u002Fembracing-ai-with-claudes-c-compiler",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775294153812-5l9f.png","tools","zh","47032be4-68b9-452f-bf8d-7d7d6ebcccbf",[17,18,19,20,21,22,23,24],"Claude","C compiler","SPEC CPU2017","GCC","編譯器","AI coding","Linux kernel","benchmark",7,"2026-04-04T09:15:35.14438+00:00","2026-04-04T09:15:34.726+00:00",{"tags":29,"relatedLang":44,"relatedPosts":48},[30,32,34,35,37,39,40,42],{"name":18,"slug":31},"c-compiler",{"name":23,"slug":33},"linux-kernel",{"name":24,"slug":24},{"name":19,"slug":36},"spec-cpu2017",{"name":20,"slug":38},"gcc",{"name":21,"slug":21},{"name":17,"slug":41},"claude",{"name":22,"slug":43},"ai-coding",{"id":15,"slug":45,"title":46,"language":47},"claudes-c-compiler-benchmarks-analysis-en","Claude’s C Compiler makes a mess of benchmarks","en",[49,55,61,67,73,79],{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"4bdcf208-fb80-484e-b4b6-06af035a6df1","modulate-aws-voice-chats-into-signals-zh","Modulate 用 AWS 把語音聊天做成訊號","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780519733892-rxue.png","2026-06-03T20:48:22.697917+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"f44a28d3-2305-43de-b5fa-21217d561054","amazon-rekognition-content-moderation-filter-zh","Amazon Rekognition把審核變成過濾器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780517005409-bxfc.png","2026-06-03T20:02:57.634353+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"80f6f40b-3217-45e4-acff-7b2f6d261779","codex-workspace-limits-tell-you-why-zh","Codex 讓工作區限額錯誤說人話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780514293711-ltqa.png","2026-06-03T19:17:41.340056+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"daa3d568-4bc5-4f29-aa64-225928ace9b4","book-2-turns-sneaker-drop-into-merch-zh","Book 2 把球鞋發售變成周邊系統","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780513400116-8jeh.png","2026-06-03T19:02:49.03795+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":13},"9c9d8493-a290-4058-bcab-dc03c05476bf","chatgpt-updates-june-2026-playbook-zh","ChatGPT 更新變成 6 月 playbook","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780503519133-jmfa.png","2026-06-03T16:18:07.006985+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":13},"f8c7594c-a6b3-4745-acfe-8bc3b217662c","leveraging-turns-vague-business-speak-into-action-zh","Leveraging 讓你把廢話寫成行動","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780461213246-b87c.png","2026-06-03T04:32:58.759444+00:00",[86,91,96,101,106,111,116,121,126,131],{"id":87,"slug":88,"title":89,"created_at":90},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":132,"slug":133,"title":134,"created_at":135},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]