refactor PGO implementation#553
Open
davidhewitt wants to merge 3 commits into
Open
Conversation
Contributor
Author
|
maturin issue reported as PyO3/maturin#3256 |
Codecov Results 📊✅ Patch coverage is 100.00%. Project has 40931 uncovered lines. Coverage diff@@ Coverage Diff @@
## main #PR +/-##
==========================================
+ Coverage 49.64% 49.64% —%
==========================================
Files 319 319 —
Lines 81272 81272 —
Branches 172725 172725 —
==========================================
+ Hits 40341 40341 —
- Misses 40931 40931 —
- Partials 3089 3089 —Generated by Codecov Action |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Merging this PR will not alter performance
Comparing Footnotes
|
Contributor
There was a problem hiding this comment.
Review completed against the latest diff
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This changes the python wheel builds so that the
monty-pythonclient crate is no longer PGO-optimized, only themonty-runtimemain binary.At the same time I switch to use maturin's new
--pgoflag to do the build.There is a bug in maturin (not new in this PR) which I noted that the runtime is being built per-version; that shouldn't be necessary, I'll try to debug and fix upstream.
Summary by cubic
Refactored PGO to only optimize the
monty-runtimebinary withmaturin --pgo, and folded runtime wheel builds into the main CI job. PGO runs on Linux x86_64, macOS aarch64, and Windows x86_64.Refactors
monty-runtime; themonty-pythonextension builds normally.maturin --pgowithpgo-commandrunningmonty-datatest’s newpgo-exerciseto train viamonty-pooltest cases..github/actions/build-pgo-wheel; integrated PGO into the main build with clearer artifacts (pypi_files-python-*,pypi_files-runtime-*).llvm-tools_previewwhen needed.make dev-py-pgoto build/install a PGOpydantic_monty_runtimewheel withmaturin==1.14.1, thenmaturin developthemonty-pythonpackage.maturincurrently produces versioned runtime wheels;-iis used as a workaround.Dependencies
maturinto>=1.14.1and require Rustllvm-toolsfor PGO.monty-pooltomonty-datatest; setdefault-runtomonty-datatest.Written for commit 43435e7. Summary will update on new commits.