Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT #1427
Replies: 11 comments
-
Apologies for the delay. |
Beta Was this translation helpful? Give feedback.
-
No worries :)
Whoops! Sorry - fixed that now.
I will try my best but right now have quite a tight backlog with other projects. Hopefully, once will find enough time for Lychee. |
Beta Was this translation helpful? Give feedback.
-
@zamazan4ik, is still something you'd like to tackle in the foreseeable future? |
Beta Was this translation helpful? Give feedback.
-
Yep! I just want to finish my article about PGO. After that as a next step, I think I will get enough free time for integrating PGO into the build pipelines for more open-source projects (like Lychee). |
Beta Was this translation helpful? Give feedback.
-
Awesomeness! Thanks for the update. 😊 |
Beta Was this translation helpful? Give feedback.
-
Uhm, that's not article, that's a book! 😆 You should actually consider to make this an ebook or so. |
Beta Was this translation helpful? Give feedback.
-
Huh! From my estimations, it's a half-finished article (or just a bit more like 60%). I am considering in the future creating something like a "PGO book" (as we already have an awesome Rust book, and many other similar ebooks). If the community will give feedback about creating a book - why not? Right now, you are the first person with such a request ;) |
Beta Was this translation helpful? Give feedback.
-
Not an expert, but it looks like one of the most complete resources on the topic, especially with regards to Rust. An awesome book sounds like a great idea to me. It could make the content more accessible. |
Beta Was this translation helpful? Give feedback.
-
Still open for PRs, but I'm closing this as it's technically not an issue with the project. Perhaps we can revisit this in the future. |
Beta Was this translation helpful? Give feedback.
-
Then I suggest converting the issue into the Discussion (and moving to the "Ideas" section). It will be the better place for this activity since I agree with you - it's not a bug or something like that. |
Beta Was this translation helpful? Give feedback.
-
Good idea! |
Beta Was this translation helpful? Give feedback.
-
Hi!
Recently I did a lot of PGO benchmarks on different software - all available results are here. According to my tests, PGO can help with achieving better performance in many workloads. Since Lychee cares about performance (I think so because the project has benchmarks), I think it would be a good idea to test PGO on it.
So I tested PGO on Lychee on my Macbook M1 Pro, macOS 13.4, Rust 1.72 and here are the results. All tests was done via
cargo bench
. PGO optimization is done with cargo-pgo.Release:
Release + PGO optimization (compared to Release),
cargo pgo optimize bench
command:Release + PGO instrumented, compared to Release (I publish these numbers so you can estimate how Lychee is slow in the PGO instrumentation mode),
cargo pgo bench
command:As you see, at least in the provided by the projects benchmarks, PGO allows to achieve better performance.
I can suggest to do the following things:
Beta Was this translation helpful? Give feedback.
All reactions