BOLT: A Practical Binary Optimizer for Data Centers and Beyond

07/18/2018
by   Maksim Panchenko, et al.
0

Performance optimization for large-scale applications has recently become more important as computation continues to move towards data centers. Data-center applications are generally very large and complex, which makes code layout an important optimization to improve their performance. This has motivated recent investigation of practical techniques to improve code layout at both compile time and link time. Although post-link optimizers had some success in the past, no recent work has explored their benefits in the context of modern data-center applications. In this paper, we present BOLT, a post-link optimizer built on top of the LLVM framework. Utilizing sample-based profiling, BOLT boosts the performance of real-world x86 64-bit ELF applications even for highly optimized binaries built with both feedback-driven optimizations (FDO) and link-time optimizations (LTO). We demonstrate that post-link performance improvements are complementary to conventional compiler optimizations, even when the latter are done at a whole-program level and in the presence of profile information. BOLT has been deployed inside Facebook for multiple data-center workloads. For data-center applications, BOLT achieves up to 8.0 profile-guided function reordering and LTO. We have also applied BOLT to GCC and Clang binaries, and our evaluation shows that BOLT speeds up these binaries by up to 15.3 without FDO and LTO.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/17/2022

Optimizing Function Layout for Mobile Applications

Function layout, also referred to as function reordering or function pla...
research
09/12/2018

Improved Basic Block Reordering

Basic block reordering is an important step for profile-guided binary op...
research
10/01/2018

Codestitcher: Inter-Procedural Basic Block Layout Optimization

Modern software executes a large amount of code. Previous techniques of ...
research
07/21/2022

Templating Shuffles

Cloud data centers are rapidly evolving. At the same time, large-scale d...
research
07/23/2019

BagNet: Berkeley Analog Generator with Layout Optimizer Boosted with Deep Neural Networks

The discrepancy between post-layout and schematic simulation results con...
research
02/10/2022

Learning Branch Probabilities in Compiler from Datacenter Workloads

Estimating the probability with which a conditional branch instruction i...
research
12/24/2021

Profile Guided Optimization without Profiles: A Machine Learning Approach

Profile guided optimization is an effective technique for improving the ...

Please sign up or login with your details

Forgot password? Click here to reset