Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using Profile-Guided Optimization (PGO) for C/C++/Rust/Fortran-based packages #10

Open
zamazan4ik opened this issue Sep 21, 2024 · 0 comments

Comments

@zamazan4ik
Copy link

Profile-Guided Optimization (PGO) is a compiler optimization technique to improve compiled binaries performance based on how these binaries are executed in runtime (which code parts are executed, how frequently, etc.). This information allows a compiler to make better optimization decisions during the compilation process (one of the most important - much better inlining decisions). All major C/C++/Rust/Fortran compilers support PGO.

I suggest using PGO to increase the performance of native-based Python packages.

Several existing PGO examples for Python packages:

If you want to read more about PGO, I can suggest my repo: https://github.com/zamazan4ik/awesome-pgo . There I collect various benchmarks about PGO, and share my thoughts and guides about it. You also could be interested in the article about PGO and Post-Link Optimization (PLO) (unfortunately, unfinished yet but still should be helpful): https://github.com/zamazan4ik/awesome-pgo/blob/main/article/article.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant