您现在的位置是:首页 > 文章详情

BOLT 合并到 LLVM,优化二进制文件以提高性能

日期:2022-01-14点击:857

Facebook 开发的工具 BOLT 现已被合并到 LLVM 的 mono 仓库,共包含 89.5 万行新代码;作为 LLVM 的上游,以促进其未来发展。

作为积极贡献 Linux 内核的厂商,Facebook 的工程师近年来一直在研究 BOLT(可以追溯到 2018 年),致力于通过优化 GCC 和 Clang 生成的二进制文件的代码布局来加快 Linux 二进制文件的速度,以提高 CPU 缓存使用率和其他考虑因素。BOLT 使用了几个 LLVM 库,但在过去的几年里一直在树外开发。

BOLT 即"Binary Optimization and Layout Tool"(二进制优化和布局工具)的缩写,能够在配置文件后重新排列可执行文件,产生比编译器的 LTO 和 PGO 优化所能达到的更快性能。

而据了解自 2020 年以来,Facebook 方面就开始致力于将 BOLT 作为一个新的子项目纳入 LLVM 的上游。与此同时,其甚至围绕 BOLT 优化 Linux 内核等领域,取得了一些不错的进展。在此前的 Linux Plumbers Conference 大会上,有来自 Facebook 的工程师讨论了对内核的 BOLT 处理,带来的性能提升如下图所示:

从数据可以看出,这是一项值得持续投入研究的工作,因为 Facebook 在 PGO+LTO 编译器优化之上通过 BOLT 优化获得了"两位数的速度提升"。此处的速度提升是通过优化可执行文件的代码布局来实现的,可更有效地使用硬件页面和指令缓存。在进入 LLVM 的上游之后,BOLT 的前景也变得更令人期待。

关于其设计的更多背景信息和技术细节,可参见 Facebook 的这份研究论文。Facebook 在其数据中心使用 BOLT 的报告中说:"对于数据中心的应用,BOLT 在配置文件引导的函数重新排序和 LTO 的基础上实现了高达 7.0% 的性能加速。对于 GCC 和 Clang 编译器,我们的评估显示 BOLT 在 FDO 和 LTO 的基础上将其二进制文件的速度提高了 20.4%,如果二进制文件是在没有 FDO 和 LTO 的情况下构建的,则提高了 52.1%。"

延伸阅读:Facebook 持续研究 BOLT 来提升 Linux 内核性能

原文链接:https://www.oschina.net/news/178443/bolt-llvm
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章