A Quick Look At GCC 10.1 PGO Optimization Benchmarks
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.
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.
19 Comments