僅需兩行程式碼,AI 效能提升 12%?這究竟是如何辦到的?

象徵優化計算機硬體效能軟體補丁概念的抽象圖形。
AI Summary

僅透過調整編譯器中分支預測成本設置(僅 3 個單位)的一個補丁,現代 CPU 的運算效能最高提升了 12%。

想像一下,每天早上上班路上,您想找一條最快的捷徑,卻因為無法預測交通狀況而誤闖壅塞路段,導致每次都遲到 10 分鐘。我們電腦的大腦 CPU 也是如此。CPU 會預測接下來可能需要什麼計算結果並預先準備,但如果預測錯誤(分支預測錯誤,Branch Misprediction),就必須丟棄所有已完成的工作並重新開始計算,從而浪費大量時間。

最近,一個讓電腦更聰明地選擇「捷徑」的兩行程式碼修正,在全世界開發者之間引發了熱議。令人驚訝的是,僅僅是這樣微小的調整,就讓現代 CPU 的運算效能提升了 12%。這究竟發生了什麼事?

為什麼這很重要?

這個消息給了一般消費者希望:即使不立刻購買新零件,僅透過軟體優化也能將系統效能發揮到極致。出處 3 對於執行高效能任務的專家或伺服器營運者來說,這更是無需升級硬體即可獲得效能提升的絕佳消息。

此外,這也明確證明了即便硬體(CPU)發展再快,如果負責處理它的軟體——編譯器(將原始碼翻譯成 CPU 能理解的語言之工具)無法正確理解其架構,就無法發揮應有的效能。這次的案例是硬體與軟體之間必須緊密溝通的最佳例證。出處 4

淺顯易懂:廚師的備料與分支預測

前面提到的編譯器(GNU Compiler Collection,簡稱 GCC),扮演著為 CPU 指引道路、避免其迷失方向的角色。

這裡的「分支預測」就是 CPU 預測接下來要執行哪個指令的過程。用烹飪來比喻就很容易理解:就像廚師在做菜時,預判下一步動作並預先將材料拿出來一樣。但如果下一道菜與預期不同,就必須清理掉已拿出的材料並從頭準備,對吧?這就是分支預測錯誤。

過去,GCC 對 CPU 分支預測錯誤所設定的「罰則(成本)」太低了。就像廚師誤以為清理和整理材料所需的時間非常短一樣。出處 7

AMD 的工程師將這個罰則數值調高了 3 個單位。出處 6 現在編譯器會判斷:「喔,走這條路如果出錯的話代價太大,不如改用其他更有效率的方法。」出處 3 結果,系統選擇了一條更安全、更快速的道路。出處 5

現況

此補丁證實了在 AMD Zen 5 架構上提升 12%,在 Zen 4 架構上提升 9% 的效能。出處 1, 出處 2 特別是在名為 SPEC CPU 544.nab_r 的複雜運算任務中,效果顯著。出處 7, 出處 8

不過,電腦不會馬上就變快。此變更預計會正式納入 GCC 17 版本,計畫於 2027 年發布。出處 3

未來發展

隨著電腦架構每年變得越來越深入且複雜(管線越來越長),未來軟體能否準確反映硬體的細微差異,將成為效能的關鍵。出處 7 像這次這樣,透過硬體工程師與軟體編譯器團隊合作來提升效能的案例,預計將會越來越多。

MindTickleBytes AI 記者觀點

不必為了提升電腦效能而一定要製作巨大的新晶片,這一點非常有趣。有時候,最聰明的解決方案不是增加新事物,而是從糾正現有系統的誤解開始。在小小的調整中累積出巨大差異的技術世界,永遠充滿魅力。

參考資料

  1. GCC Patch Adjusting AMD Zen 5 Misprediction Cost Nets 12% Win In Benchmark - Phoronix
  2. [News - [Phoronix] GCC Patch Adjusting AMD Zen 5 Misprediction Cost Nets 12% Win In Benchmark Linux.org](https://www.linux.org/threads/phoronix-gcc-patch-adjusting-amd-zen-5-misprediction-cost-nets-12-win-in-benchmark.70482/)
  3. Someone changed one line in the GCC compiler and scored a 12% improvement on modern Intel and AMD chips
  4. One Line x86 Change To GCC Compiler Nets +12% Benchmark Win For Modern Intel/AMD CPUs - NewsBreak
  5. [Minor GCC tweak yields double-digit performance boost on Intel and AMD processors Noah Intelligence](https://noah-news.com/minor-gcc-tweak-yields-double-digit-performance-boost-on-intel-and-amd-processor/)
  6. A new GCC compiler patch has increased the performance of AMD…
  7. GCC’s Zen 5 Branch Misprediction Cost Was Too Low, and Fixing It…
  8. [GCC-патч от AMD: +12% к производительности Zen 5 за… AIKraft](https://aikraft.ru/news/gcc-patch-adjusting-amd-zen-5-misprediction-cost-nets-12-win-in-benchm)
AD
測試你的理解
Q1. 此次 GCC 編譯器補丁帶來效能提升的核心原理是什麼?
  • 強制提升 CPU 時脈速度
  • 將分支預測錯誤成本修正為符合實際架構的設定
  • 刪除作業系統內核
因為考量到現代 CPU 更深的管線架構,將分支預測失敗時所產生的成本進行了符合現實的重新計算。
Q2. 透過此次補丁,哪項基準測試記錄了最大的效能提升?
  • SPEC CPU 544.nab_r
  • 3D 遊戲幀數測試
  • 網頁瀏覽器速度測試
在 SPEC CPU 基準測試的 544.nab_r 任務中,以 Zen 5 架構為基準記錄到了 12% 的效能提升。
Q3. 此項變更預計何時提供給一般使用者?
  • 已發布給所有使用者
  • 預計 2027 年發布的 GCC 17 版本
  • 明天即可立即更新
此項變更預計包含在 2027 年發布的 GCC 17 版本中。