亚洲日韩久久|国偷自产一区二区三区蜜臀国|国产一区二区日韩|99热这里只亚洲无码,无码

微軟探索 LTO+PGO 以優(yōu)化 Linux 內(nèi)核

日期:2020-08-28 來源:電子創(chuàng)新網(wǎng)作者:winniewei閱讀:6

當(dāng)越來越多的軟件廠商采用鏈接時優(yōu)化(LTO, link-time optimizations)和配置文件引導(dǎo)優(yōu)化(PGO, profile-guided optimizations)來利用編譯器榨取性能的時候,微軟工程師正在為自用的Linux 內(nèi)核探索LTO+PGO,以實現(xiàn)更好的 Linux 性能。

在 Linux 內(nèi)核上使用鏈接時優(yōu)化并不是新概念,過去已有多家廠商發(fā)布了針對 Linux 內(nèi)核的 LTO 補丁,但通常不會帶來很大的變化。此前Linus Torvalds 和其他人一直對支持 LTO 的 Linux 內(nèi)核不看好,部分原因是過去 GCC 的 LTO 狀況不佳。但如今隨著現(xiàn)代 GCC 編譯器(和 Clang)的發(fā)展,LTO 也逐漸變得更好,像 Fedora 在打包他們的發(fā)行版安裝包時都會默認使用 LTO,也有像 Clear Linux 這樣的公司通過使用AutoFDO(基于程序性能分析工具的反饋式編譯優(yōu)化)來進一步提升其發(fā)行版的性能。

相對而言,在 Linux 內(nèi)核上使用配置文件引導(dǎo)優(yōu)化的案例則比較鮮見。由于配置文件引導(dǎo)優(yōu)化完全依賴于配置文件,反饋給編譯器以幫助其進行優(yōu)化啟發(fā)式處理。因此,對于實際使用情況而言,配置文件的準(zhǔn)確性至關(guān)重要??紤]到在 Linux 上看到的工作負載非常多樣化,以及各種不同的硬件和驅(qū)動程序,要生成對 PGO 有用的、能被廣泛使用的、能幫助絕大多數(shù)用戶的配置文件是一項艱巨的任務(wù)。因此,對于 Linux 內(nèi)核中的 PGO,更多的是針對個人用戶/組織,他們可以采用 PGO,并根據(jù)自身的實際情況進行調(diào)整。

微軟軟件工程經(jīng)理 Ian Bearman 在本周舉辦的 Linux Plumbers 大會上介紹了他們對 Linux 內(nèi)核的配置文件引導(dǎo)優(yōu)化的探索。

他們對 PGO 的興趣源于對 Linux 性能的“內(nèi)部客戶要求”。不過話又說回來,微軟致力于優(yōu)化 Linux 性能現(xiàn)在看來并不是什么奇怪的事情,另一位微軟工程師曾是推動FSGSbase補丁開發(fā)的貢獻者,最后還被合并進 Linux Kernel 5.9。

Redis 是他們一直展示的在內(nèi)核探索使用 PGO 并獲益的公開案例之一。

微軟會繼續(xù)探索用于 Linux 內(nèi)核的 PGO,有趣的是,人們發(fā)現(xiàn)Windows確實廣泛使用了 LTO + PGO。據(jù)說在 Windows 實例中,他們看到這些編譯器優(yōu)化的性能提升了 5~20%,想必是使用了他們自己的 MSVC 編譯器。

點此查看微軟工程師在 LPC2020 大會上的演講幻燈片。

來源:開源中國

打賞
聯(lián)系客服 投訴反饋  頂部