LLVM BOLT Optimizations Net ~6% Improvement For GNOME's Pango
BOLT that was upstreamed into LLVM in 2022 by Facebook/Meta allows for optimizing the layout of binaries as a post-linking step to yield increased performance. BOLT like Profile Guided Optimizations (PGO) first requires the profiling step to generate perf recordings to feedback in for the optimization process, but the gains can be significant.
BOLT can yield very nice performance gains as shown across various workloads thanks to reorganizing the layout of libraries/binaries. The latest praise for LLVM's BOLT is by GNOME developer Christian Hergert.
In experimenting with BOLT, he generated a perf recording while using the GNOME Text Editor and then used that to optimize the layout of the Pango library. In turn with the optimized library he saw around a 6% reduction in the time spent measuring text, which is one of the most expensive parts of the process profiled. Not a bad win on top of everything else. LLVM BOLT is a very fascinating effort and hopefully it continues seeing more adoption as well as improvements to the code itself.
Those interested in learning more about Hergert's initial adventures in using LLVM BOLT can find the details on his blog.
BOLT can yield very nice performance gains as shown across various workloads thanks to reorganizing the layout of libraries/binaries. The latest praise for LLVM's BOLT is by GNOME developer Christian Hergert.
In experimenting with BOLT, he generated a perf recording while using the GNOME Text Editor and then used that to optimize the layout of the Pango library. In turn with the optimized library he saw around a 6% reduction in the time spent measuring text, which is one of the most expensive parts of the process profiled. Not a bad win on top of everything else. LLVM BOLT is a very fascinating effort and hopefully it continues seeing more adoption as well as improvements to the code itself.
Those interested in learning more about Hergert's initial adventures in using LLVM BOLT can find the details on his blog.
4 Comments