The Wire · Showcase
EXECUTORCH CUTS GRAPH REPLAYS, ARM KILLS NO-OP RESIZES
By RepoJournal · Filed · About PyTorch
Two executorch optimizations landed overnight that could shave real runtime on device, while PyTorch's CI finally silences the Node-20 roar.
Executorch's pass-local transforms no longer replay full-graph ExportPasses, with `BindOptionalArgsPass` and `RemoveBranchedQuantDequant` now updating in place, a change that eliminates redundant work for the Tier 1 pipeline [1][2]. On the Arm backend, a new pass strips TOSA RESIZE ops that don't alter resolution but bounce between int8 and int32, and "Removing these resizes provides good uplift at runtime" [3]. Meanwhile, `aten_device.h` drops its heavy `torch-core-cpp` dependency for plain c10, avoiding symbol collisions at link time for embedded builds [4]. The Python 3.15 numpy pin jumps to 2.5.2 because 2.5.1 shipped no cp315 wheels, so anyone on Python 3.15 who was hitting build failures will finally get a clean install [5]. On the ao front, batch-norm fusion now travels through non-channel slices, unlocking more fusion opportunities [6], and a fix restores the straight-through estimator at the fake-quant clamp boundary, a subtle but critical correction for quantized training [7]. Elsewhere, PyTorch drops the test retry A/B experiment after ten days, accepting a slight CUDA red-shard uptick for a simpler policy [8], and ax's `assert_allclose` is fully replaced with `assert_close`, aligning with the upstream removal [9]. CI hygiene gets a boost with updated macOS actions to silence Node-20 deprecations [10] and Helion skipping four flaky Pallas tests [11].
One email a day. Unsubscribe in one click.
Keep up with PyTorch in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Review executorch pass-local changes for any custom passes that relied on replay semantics pytorch/executorch [plan]
- → If using Python 3.15 with numpy, pin to 2.5.2 or later pytorch/pytorch [immediate]
- → Test batch-norm fusion behavior with non-channel slices in quantized models pytorch/ao [monitor]
- → Verify fake-quant training loops still produce expected gradients after clamp boundary fix pytorch/ao [monitor]
References
- [1] Remove pass-local ExportPass replays (#22091) pytorch/executorch
- [2] Remove pass-local ExportPass replays (#22091) ↗ pytorch/executorch
- [3] Arm backend: Remove RESIZE that don't change shape pytorch/executorch
- [4] Depend on c10 alone from aten_device (#22151) pytorch/executorch
- [5] Bump the Python 3.15 numpy pin to 2.5.2 (#194741) pytorch/pytorch
- [6] Support passthrough ops for batch norm fusion (#4776) ↗ pytorch/ao
- [7] Restore straight-through estimator at the fake-quant clamp boundary (#4806) ↗ pytorch/ao
- [8] Remove the test retry policy A/B experiment from unstable (#194779) pytorch/pytorch
- [9] assert_allclose -> assert_close (#4826) pytorch/ao
- [10] [BE] MacOS CD: Update `actions/` to latest majors (#194748) pytorch/pytorch
- [11] [CI] Skip failing Pallas tests ↗ pytorch/helion