Arm backend: Remove FuseConsecutiveRescalesPass#20146
Conversation
The FuseConsecutiveRescalesPass was destinated to speed-up execution on Ethos-U55 by identifying consequtive rescales that could be optimised and eliminate them. However, since then the compiler has added support for advanced add/sub for the Ethos-U55. We no longer need to remove rescales for the U55, hence removing this pass. Signed-off-by: George Gekov <george.gekov@arm.com> Change-Id: I6e15636f2ea46390cbebc8bb7e2ee2beb3f81512
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/20146
Note: Links to docs will display an error until the docs builds have been completed. ❌ 2 New FailuresAs of commit af07b09 with merge base 9898bc5 ( NEW FAILURES - The following jobs have failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
There was a problem hiding this comment.
Pull request overview
Removes the Arm backend FuseConsecutiveRescalesPass (and its test coverage) from the lowering pipeline, along with associated references, based on the rationale that newer Ethos-U55 compiler support makes the optimization unnecessary.
Changes:
- Deleted
FuseConsecutiveRescalesPassimplementation and removed it from the Arm pass pipeline. - Removed the dedicated rescale-optimization test file for the deleted pass.
- Updated residual model test documentation to drop references to the removed pass.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| backends/arm/test/passes/test_rescale_optimization.py | Removes tests that exclusively exercised the deleted FuseConsecutiveRescalesPass. |
| backends/arm/test/models/test_residual_conv_block.py | Updates docstrings to remove outdated references to the deleted pass. |
| backends/arm/_passes/fuse_consecutive_rescales_pass.py | Deletes the pass implementation entirely. |
| backends/arm/_passes/arm_pass_manager.py | Removes the pass from the shared TOSA INT pipeline pass list. |
| backends/arm/_passes/init.py | Removes the exported import of FuseConsecutiveRescalesPass. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| FuseDuplicateUsersPass(), | ||
| # TODO: DecomposeLinearPass should run after InsertRescaleInt32Pass or | ||
| # before FoldAndAnnotateQParamsPass but is unable to at the moment. | ||
| # Ticket: MLETORCH-1539 | ||
| DecomposeLinearPass(), | ||
| InsertRescaleInt32Pass(), | ||
| FuseConsecutiveRescalesPass(), | ||
| InsertControlFlowRescalesPass(), | ||
| DecomposeQuantNodesPass(), |
The FuseConsecutiveRescalesPass was destinated to
speed-up execution on Ethos-U55 by identifying
consequtive rescales that could be optimised and
eliminate them. However, since then the compiler has added support for advanced add/sub for the Ethos-U55. We no longer need to remove rescales for the U55,
hence removing this pass.
cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani