僅透過調整編譯器中分支預測成本設置(僅 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 記者觀點
不必為了提升電腦效能而一定要製作巨大的新晶片,這一點非常有趣。有時候,最聰明的解決方案不是增加新事物,而是從糾正現有系統的誤解開始。在小小的調整中累積出巨大差異的技術世界,永遠充滿魅力。
參考資料
- GCC Patch Adjusting AMD Zen 5 Misprediction Cost Nets 12% Win In Benchmark - Phoronix
-
[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/) - Someone changed one line in the GCC compiler and scored a 12% improvement on modern Intel and AMD chips
- One Line x86 Change To GCC Compiler Nets +12% Benchmark Win For Modern Intel/AMD CPUs - NewsBreak
-
[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/) - A new GCC compiler patch has increased the performance of AMD…
- GCC’s Zen 5 Branch Misprediction Cost Was Too Low, and Fixing It…
-
[GCC-патч от AMD: +12% к производительности Zen 5 за… AIKraft](https://aikraft.ru/news/gcc-patch-adjusting-amd-zen-5-misprediction-cost-nets-12-win-in-benchm)
- 強制提升 CPU 時脈速度
- 將分支預測錯誤成本修正為符合實際架構的設定
- 刪除作業系統內核
- SPEC CPU 544.nab_r
- 3D 遊戲幀數測試
- 網頁瀏覽器速度測試
- 已發布給所有使用者
- 預計 2027 年發布的 GCC 17 版本
- 明天即可立即更新