-
Notifications
You must be signed in to change notification settings - Fork 252
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
build with PGO on x86_64 ubuntu and windows #678
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #678 +/- ##
=======================================
Coverage 93.63% 93.63%
=======================================
Files 99 99
Lines 13913 13913
Branches 25 25
=======================================
Hits 13028 13028
Misses 879 879
Partials 6 6 Continue to review full report in Codecov by Sentry.
|
2db5fa0
to
39cd650
Compare
CodSpeed Performance ReportMerging #678 will improve performances by 37.33%Comparing Summary
Benchmarks breakdown
|
d378f19
to
a82f934
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just based on the benchmark improvements this seems like a no brainer to me
name: pypi_files | ||
path: dist | ||
|
||
build-pgo: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to do two builds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problems I have been encountering with the merged step:
- (very hard in a merged step) we need to pass the correct PGO data per interpreter build as a rust flag. I think
maturin
/maturin-action
currently assumes flags are same for all interpreters. - (fixable in a merged step) we need to run
pytest
(or other PGO sampling) with the correct interpreter for the build.
I have started with this split approach to verify the end-to-end approach works, and limited just to what I assume is the most commonly used platform. It would be good to merge back into a single step and expand to more OS versions. Think I need upstream support in maturin
to achieve that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense.
6dd88d3
to
8ef5de6
Compare
5c6a97a
to
8af2a71
Compare
This is now tidied up and uses |
84efead
to
467e6d7
Compare
c09a25e
to
391840b
Compare
ccd4017
to
af731d5
Compare
e40c472
to
383f497
Compare
please review |
would be great in future if we can have a |
I will open an upstream issue on |
This is a brief experiment to see what happens if we use the test suite to gather profiling data, to feed back into the build for PGO.
If benchmarks look promising, this branch needs extending to also build the uploaded wheels using PGO in the same way.
Selected Reviewer: @adriangb