PyTorch fixes mutation region bug in pattern matcher to prevent crossed ops
A critical fix ensures pattern rewrites don't create invalid mutation overlaps in compiled graphs.
Get AI news that actually matters
One email a day. Zero fluff. Join 10,000+ professionals.
PyTorch's internal pattern matcher (used by the compiler for graph optimizations) had a subtle bug where pattern replacements could insert mutable operations that later matches would incorrectly cross. The issue stemmed from cached mutation_region_id metadata not being refreshed after a rewrite. This could lead to two separate mutation regions being merged incorrectly, allowing illegal activation of ops across mutation boundaries.
PR #184448, authored by jansel and reviewed by oulgen, fixes this by updating the mutation_region_id cache after each pattern replacement. It also adds regression coverage specifically for replacements that insert copy_ operations. The fix ensures that subsequent pattern matches see the correct mutation boundaries, maintaining the safety of PyTorch's inductor compiler and AOTAutograd. This is a low-level but critical fix for anyone using PyTorch 2.x compiled mode or export workflows.
- Fixes issue #132932 where pattern matcher could cross newly inserted mutable ops
- Updates cached mutation_region_id metadata after each rewrite for correctness
- Adds regression test coverage for copy_ replacement patterns in compiled graphs
Why It Matters
Prevents incorrect codegen in PyTorch's compiler, ensuring safe optimizations for production machine learning workloads.