Drop the coreml_static_int8 operators job, which has never once finished - #21695
Open
shoumikhin wants to merge 1 commit into
Open
Drop the coreml_static_int8 operators job, which has never once finished#21695shoumikhin wants to merge 1 commit into
shoumikhin wants to merge 1 commit into
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21695
Note: Links to docs will display an error until the docs builds have been completed. ✅ You can merge normally! (1 Unrelated Failure)As of commit f3e0024 with merge base 730b77a ( FLAKY - The following job failed but was likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
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.
Addresses #21623.
What is broken
Every night, the CoreML backend workflow runs this job on a macOS runner:
It has never finished. It runs for the full 180 minute limit, gets killed, and reports
cancelled. That is about three macOS runner hours per night, every night, for no result at all, on a runner pool that is already the scarcest resource we have.For comparison, in a recent nightly run:
coreml / operatorscoreml_static_int8 / modelscoreml_static_int8 / operatorsSo it is specifically the combination of the heavier quantized flow with the much larger operators suite that does not fit.
Why we cannot just make it faster
The suite already runs with
pytest -n auto, so it is using every core on the runner. There is no sharding support in_test_backend.ymlto split it across several runners. Adding that is real work, and it is the right long term answer, but it is not something to land while the job is burning runner hours nightly.The fix
Stop scheduling that one combination.
_test_backend.ymlbuilds its matrix as everyflowcrossed with everysuite, so today the only way to shape it is to change the flow list, which would also dropcoreml_static_int8 / models, and that one passes and is worth keeping.This adds an optional
excludeinput to_test_backend.ymlthat is wired straight intostrategy.matrix.exclude. It defaults to an empty list, so nothing changes for any other backend.test-backend-coreml.ymlthen uses it to drop the singlecoreml_static_int8plusoperatorspair.After this change the nightly CoreML run is
coreml / models,coreml / operatorsandcoreml_static_int8 / models, all three of which actually complete.When to revert this
When the operators suite can be sharded across runners, or when the quantized flow gets fast enough to fit in the limit. #21623 tracks that.
How this was verified
Two separate things needed checking: that the new input is inert for every other
caller, and that the exclude entry removes the job we mean and nothing else.
_test_backend.yml, the nine othercallers of that reusable workflow still expand to every flow crossed with both
suites. An
excludelist that matches no combination is simply ignored byGitHub Actions, so the empty default is a no-op.
test-backend-coreml.ymlonly runscoreml_static_int8on thenightly schedule, so a pull request run would not show the effect at all. It
was therefore dispatched on a scratch branch with both flows forced on. The
resulting job list was
(coreml, models),(coreml, operators)and(coreml_static_int8, models). The(coreml_static_int8, operators)pair wasgone and nothing else moved.