PGO all the things

Hi!

I am interested in promoting PGO to a larger amount of packages. I believe that it could improve the performance of a lot of programs. Unfortunately, right now only a veeeery small amount of applications support PGO out of the box. I would be happy to extend PGO support to as much software as possible.

I had been researching a little the PGO history in Clear Linux and found only this: How does Clear Linux use AutoFDO? - #2 by sunnyflunk

I am already started researching the current situation about PGO in the industry and created the following issues in multiple projects (C, C++, Rust). Maybe the following list will be interesting to someone: PGO all the things - Google Docs

I have the following questions/suggestions:

  1. Could you please help me with listing the currently PGO-optimized programs in Clear Linux? E.g. in the list from the link above I cannot find the Clang package (Clang definitely supports building with PGO).
  2. What is the vision of the Clear Linux team regarding PGO? Are you interested in enabling PGO for the applications?

Thanks in advance!

We are generally well interested in PGO… and we have automation for it in place (autospec)… the problem generally is to find representative workloads that can run during package build (so no network, cannot take forever, can run from a build environment).

This is harder than it looks unfortunately

For those who want to dive in :

Interesting read :

Profile Guided Optimization without Profiles : A Machine Learning Approach

1 Like