Announcement

Collapse
No announcement yet.

LLVM BOLT Optimizations Net ~6% Improvement For GNOME's Pango

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • LLVM BOLT Optimizations Net ~6% Improvement For GNOME's Pango

    Phoronix: 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...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    While BOLT is great, anything that lessens the burden on the consumer side would be appreciated to get a similar uplift in performance as getting seperate PGO and BOLT profiles adds time and complexity to the whole build process.

    Comment


    • #3
      Originally posted by ms178 View Post
      While BOLT is great, anything that lessens the burden on the consumer side would be appreciated to get a similar uplift in performance as getting seperate PGO and BOLT profiles adds time and complexity to the whole build process.
      I think in theory these profiles only need to be built once and they could be hosted in a repo somewhere that users clone and then you only need to do the merge step instead of the profiling step.

      Who is going to do that for every app in their distribution though? It's a lot of work.

      Comment


      • #4
        Originally posted by ahrs View Post

        I think in theory these profiles only need to be built once and they could be hosted in a repo somewhere that users clone and then you only need to do the merge step instead of the profiling step.

        Who is going to do that for every app in their distribution though? It's a lot of work.
        I believe it has to be redone for every new version of the libraries (and every new version of the compiler). In practice at that point it is easier to simply automate a representative workload.

        Comment


        • #5
          Originally posted by ahrs View Post

          I think in theory these profiles only need to be built once and they could be hosted in a repo somewhere that users clone and then you only need to do the merge step instead of the profiling step.

          Who is going to do that for every app in their distribution though? It's a lot of work.
          While there is some ongoing work to prolong the value of old profiles (that otherwise get stale and apps need to be re-profiled for best results), we are not there just yet.

          And yes, keeping all of the profiles up to date on every version change is a lot of work. I hope more projects integrate a representative workload in their build process though, that would already ease the burden to some degree.

          Comment

          Working...
          X