[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-claudes-c-compiler-benchmarks-analysis-zh":3,"tags-claudes-c-compiler-benchmarks-analysis-zh":33,"related-lang-claudes-c-compiler-benchmarks-analysis-zh":48,"related-posts-claudes-c-compiler-benchmarks-analysis-zh":52,"series-tools-920762f8-7d82-488d-8e94-7ee1423c98aa":89},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":21,"translated_content":10,"views":22,"is_premium":23,"created_at":24,"updated_at":24,"cover_image":11,"published_at":25,"rewrite_status":26,"rewrite_error":10,"rewritten_from_id":27,"slug":28,"category":29,"related_article_id":30,"status":31,"google_indexed_at":32,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":10,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":23},"920762f8-7d82-488d-8e94-7ee1423c98aa","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",[13,14,15,16,17,18,19,20],"Claude","C compiler","SPEC CPU2017","GCC","編譯器","AI coding","Linux kernel","benchmark","zh",1,false,"2026-04-04T09:15:35.14438+00:00","2026-04-04T09:15:34.726+00:00","done","59fb08df-fe7e-4a2f-86f1-015019730be3","claudes-c-compiler-benchmarks-analysis-zh","tools","47032be4-68b9-452f-bf8d-7d7d6ebcccbf","published","2026-04-07T07:41:07.678+00:00",[34,36,38,39,41,43,44,46],{"name":14,"slug":35},"c-compiler",{"name":19,"slug":37},"linux-kernel",{"name":20,"slug":20},{"name":15,"slug":40},"spec-cpu2017",{"name":16,"slug":42},"gcc",{"name":17,"slug":17},{"name":13,"slug":45},"claude",{"name":18,"slug":47},"ai-coding",{"id":30,"slug":49,"title":50,"language":51},"claudes-c-compiler-benchmarks-analysis-en","Claude’s C Compiler makes a mess of benchmarks","en",[53,59,65,71,77,83],{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":29},"68e4be16-dc38-4524-a6ea-5ebe22a6c4fb","why-vidhub-huiyuan-hutong-bushi-quan-shebei-tongyong-zh","為什麼 VidHub 會員互通不是「買一次全設備通用」","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778789450987-advz.png","2026-05-14T20:10:24.048988+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":29},"7a1e174f-746b-4e82-a0e3-b2475ab39747","why-buns-zig-to-rust-experiment-is-right-zh","為什麼 Bun 的 Zig-to-Rust 實驗是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778767879127-5dna.png","2026-05-14T14:10:26.886397+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":29},"e742fc73-5a65-4db3-ad17-88c99262ceb7","why-openai-api-pricing-is-product-strategy-zh","為什麼 OpenAI API 定價是產品策略，不是註腳","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778749859485-chvz.png","2026-05-14T09:10:26.003818+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":29},"c757c5d8-eda9-45dc-9020-4b002f4d6237","why-claude-code-prompt-design-beats-ide-copilots-zh","為什麼 Claude Code 的提示設計贏過 IDE Copilot","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778742645084-dao9.png","2026-05-14T07:10:29.371901+00:00",{"id":78,"slug":79,"title":80,"cover_image":81,"image_url":81,"created_at":82,"category":29},"4adef3ab-9f07-4970-91cf-77b8b581b348","why-databricks-model-serving-is-right-default-zh","為什麼 Databricks Model Serving 是生產推論的正確預設","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778692245329-a2wt.png","2026-05-13T17:10:30.659153+00:00",{"id":84,"slug":85,"title":86,"cover_image":87,"image_url":87,"created_at":88,"category":29},"b3305057-451d-48e4-9fb9-69215f7effad","why-ibm-bob-right-kind-ai-coding-assistant-zh","為什麼 IBM 的 Bob 才是對的 AI 寫碼助手","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778664653510-64hc.png","2026-05-13T09:30:21.881547+00:00",[90,95,100,105,110,115,120,125,130,135],{"id":91,"slug":92,"title":93,"created_at":94},"de769291-4574-4c46-a76d-772bd99e6ec9","googles-biggest-gemini-launches-in-2026-zh","Google 2026 最大 Gemini 盤點","2026-03-26T07:26:39.21072+00:00",{"id":96,"slug":97,"title":98,"created_at":99},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":101,"slug":102,"title":103,"created_at":104},"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":106,"slug":107,"title":108,"created_at":109},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":111,"slug":112,"title":113,"created_at":114},"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":116,"slug":117,"title":118,"created_at":119},"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":121,"slug":122,"title":123,"created_at":124},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":126,"slug":127,"title":128,"created_at":129},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":131,"slug":132,"title":133,"created_at":134},"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":136,"slug":137,"title":138,"created_at":139},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00"]