Fedora 42 將針對不同的x86_64 功能提供可執行檔最佳化方案
Fedora Linux 已經支援使用glibc HWCAPs,允許為不同的x86_64 微體系結構功能等級建立庫,用於對效能敏感的程式碼,這樣在利用AVX/AVX2 或其他較新的Intel/AMD CPU 指令集擴充時可以獲得性能上的回報。 現在,Fedora 42 提議進一步擴展該功能,允許二進位可執行檔也利用glibc HWCAP 獲得更好的表現。
Fedora 42 已提交變更提議,允許為x86_64 微體系結構特性層級提供最佳化的二進位檔案。 其目的是將glibc-hwcaps 機制擴展到完整的可執行文件,而不僅僅是共享庫。
” 單一軟體包可以透過glibc-hwcaps 機制提供已優化的庫。 這種方法將擴展到可執行檔。軟體包提供不同目錄下二進位檔案的最佳化變體。它是一個小程式的符號鏈接,用於替換/usr/bin 中的二進位檔案。
哪些軟體包提供最佳化程式碼,以及在哪個層級提供最佳化程式碼,將由各個軟體包維護者根據基準測試結果決定。
…
本變更是關於將glibc-hwcaps 機制擴展到執行檔。 我們提供了一個小的輔助二進位。 /usr/bin(或其他路徑)中的程式會被連結到該輔助程式。 執行時,輔助程式會檢查CPU 的能力,並在單獨的目錄層次結構中搜尋目標程式最適合的變體。 然後啟動優化後的二進位檔案或為基線編譯的”通用”二進位。 “
變更提案繼續補充:
“對此類優化工作感興趣的開發人員可以在Fedora 中執行,而無需構建單獨的軟體來源。擁有相應硬體的用戶將獲得性能優勢。更快的程式碼也更節能。這一變更將自動進行,對用戶透明。
請注意,其他發行版使用的微體系結構層級較高。 例如,RHEL 9 使用x86-64-v2 作為基線,RHEL 10 使用x86-64-v3,其他發行版提供了最佳化變體(OpenSUSE、Arch Linux、Ubuntu)。 我們在Fedora 中實現相同變化的方式範圍更窄,因此在開發工作量、程式碼編譯時間、儲存和發布開銷方面大大降低,但應提供相同的效能和能耗優勢。 “
Fedora打包商/開發人員仍將自行評估效能優勢,並決定是否為其軟體包提供針對不同x86_64 微體系結構特性等級的最佳化可執行檔。