A Quick Look At GCC 10.1 PGO Optimization Benchmarks
Written by Michael Larabel in Programming on 26 May 2020 at 07:00 AM EDT. 19 Comments
Following the GCC 10.1 compiler optimization benchmarks posted this weekend, a number of readers were wondering about the impact of Profile Guided Optimizations (PGO) on the new GCC 10 compiler. Here are some preliminary data points on that front.

Profile-Guided Optimizations basically amount to optimizing each binary after having collected various profiles/metrics as hints provided back to the compiler during the optimization process. PTS has a PGO module to make that instrumentation setup easy with first running the benchmarks, then rebuilding with the necessary PGO instrumentation and re-running each benchmark to generate the profile, and then rebuilding with that collected profile information on a per-test basis. So with that it's very easy to see the potential impact from PGO.

The Core i9 10980XE was used again for this GCC 10 PGO optimization benchmarking quickie, if there is enough interest I can run more benchmarks and on more CPUs.

As we've reported before, it really depends upon the particular code-base for how well PGO can perform as well as how well the profile is in comparison to your normal workflow of said software.

In some software, PGO benefits are quite apparent.

Those wanting to learn more about GCC's PGO implementation can look at the compiler's optimize options.
Related News
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Popular News This Week