Legalize large-stride non-overlapping maxpool on U55 (#21284) - #21284
Legalize large-stride non-overlapping maxpool on U55 (#21284)#21284apullin wants to merge 1 commit into
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21284
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 0184392 with merge base e798c4d ( 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. |
|
@apullin has exported this pull request. If you are a Meta employee, you can view the originating Diff in D113087299. |
f0e3ebf to
ce6f0e2
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
This PR needs a
|
ce6f0e2 to
f1e2d98
Compare
f1e2d98 to
b2b1f52
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
b2b1f52 to
47580fb
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
47580fb to
d8c648a
Compare
|
@claude review this pr, since the previous attempt didn't work, let's try again |
|
Claude finished @digantdesai's task in 12m 8s —— View job PR Review: Legalize large-stride non-overlapping maxpool on U55 (#21284)
Overall this is a clean approach: a shape-only predicate ( Blocking / should-fix1. Copyright header (already flagged by @rascani). Both new files use Applies to Correctness / robustness2. U55 dimension limits are not enforced for these nodes. The standard Suggest having 3. Partitioner accepts Minor4. Redundant SymInt / kernel re-computation. 5. qparams on intermediate pools. The intermediate The decomposition tiling itself — crop → reshape to |
|
OK, I believe lint is finally satisfied, too. |
9834649 to
cb6d778
Compare
Summary: Pull Request resolved: pytorch#21284 Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
cb6d778 to
1f0d324
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
1f0d324 to
42cea54
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
42cea54 to
7250a5e
Compare
Summary: Pull Request resolved: pytorch#21284 Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
c6e34d4 to
0c81e4e
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
7fd2c39 to
0c81e4e
Compare
Summary: Pull Request resolved: pytorch#21284 Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
0c81e4e to
d5ccf49
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
d5ccf49 to
400eede
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
dc86c51 to
400eede
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
400eede to
09d2f35
Compare
Summary: Pull Request resolved: pytorch#21284 Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
2fd223a to
09d2f35
Compare
Summary: Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d. Differential Revision: D113087299
Summary:
Teach the Arm partitioner to recognize exact U55 large-stride non-overlapping max-pool operations as safely decomposable, without mutating the graph during partitioning. Backend preprocessing then canonicalizes value-only max_pool2d_with_indices and rewrites eligible pools into supported stride-1 reductions. This preserves the partitioner contract, keeps unrelated TOSA/VGF/U85 paths unchanged, and also covers exported MaxPool1d.
Differential Revision: D113087299