Facebook 持續研究 BOLT 來提升 Linux 核心效能

2021-09-26 09:00:06

Facebook 作為積極貢獻 Linux 核心的廠商,近年來,其工程師一直在持續研究 BOLT,將此作為加速 Linux/ELF 二進位制檔案的方法。

BOLT 即"Binary Optimization and Layout Tool"(二進位制優化和佈局工具)的縮寫,能夠在組態檔後重新排列可執行檔案,產生比編譯器的 LTO 和 PGO 優化所能達到的更快效能。

BOLT 的最新目標之一是對 Linux 核心映象進行優化。

與對 Linux 核心進行組態檔引導優化 (PGO) 時產生的挑戰類似,對 Linux 核心進行 BOLT 處理也面臨著類似的複雜障礙,包括:正確地分析/取樣具有相關工作負載的核心並進行優化、核心的大量程式碼庫、模組與核心核心程式碼等對比。現有的 BOLT 只專注於優化 ELF 應用程式可執行檔案。

在本週的 Linux Plumbers Conference 大會上,有來自 Facebook 的工程師討論了對核心的 BOLT 處理,帶來的效能提升如下圖所示:

從資料可以看出,這是一項值得持續投入研究的工作,因為 Facebook 在 PGO+LTO 編譯器優化之上通過 BOLT 優化獲得了"兩位數的速度提升"。此處的速度提升是通過優化可執行檔案的程式碼佈局來實現的,可更有效地使用硬體頁面和指令快取。

如果你對 Facebook 的 BOLT 優化工具感興趣,或者對未來能夠完全使用 BOLT 優化核心的前景感興趣,可查閱 Facebook 工程師製作的幻燈片()。BOLT 程式碼也已開源 。

延伸閱讀

展開閱讀全文