Skip to content

NXP backend: Remove dependency on the non-edge operator aten.max_pool2d.default.#17819

Draft
MartinPavella wants to merge 6 commits intopytorch:mainfrom
nxp-upstream:nxg01483/EIEX-754-fix-max_pool2d_with_indices-suport
Draft

NXP backend: Remove dependency on the non-edge operator aten.max_pool2d.default.#17819
MartinPavella wants to merge 6 commits intopytorch:mainfrom
nxp-upstream:nxg01483/EIEX-754-fix-max_pool2d_with_indices-suport

Conversation

@MartinPavella
Copy link
Collaborator

@MartinPavella MartinPavella commented Mar 3, 2026

Summary

The max_pool2d_with_indices is an edge operator that produces 2 outputs, so getitem nodes must follow it. That's why in the early stages of our ExecuTorch endeavor, Lukas found an XNNPACK pass to replace these ops with just a single max_pool2d. As this is an aten dialect only operator, we had to force ExecuTorch to ignore it and there were other connected issues.

A recent PR bent the use of this aten dialect operator even further, so I decided to clean it all up and provide a robust support for the max_pool2d_with_indices, without introducing any non-edge dialect operators.

Test plan

Unit-tests provided.

cc @robert-kalmar @JakeStevens @digantdesai

This change is in preparation for `aten.max_pool1d.default` support, which gets converted to unsqueeze -> max_pool2d_with_indices -> squeeze during lowering to edge. So the `max_pool2d_with_indices` must be converted to `max_pool2d` in edge dialect.
@MartinPavella MartinPavella self-assigned this Mar 3, 2026
@MartinPavella MartinPavella added module: nxp Issues related to NXP Neutron NPU delegation and code under backends/nxp/ release notes: nxp Changes to the NXP Neutron backend delegate labels Mar 3, 2026
@pytorch-bot
Copy link

pytorch-bot bot commented Mar 3, 2026

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/17819

Note: Links to docs will display an error until the docs builds have been completed.

❌ 1 Awaiting Approval, 3 New Failures, 1 Pending, 2 Unrelated Failures

As of commit 7f031e2 with merge base 389ea94 (image):

AWAITING APPROVAL - The following workflow needs approval before CI can run:

NEW FAILURES - The following jobs have failed:

BROKEN TRUNK - The following jobs failed but were present on the merge base:

👉 Rebase onto the `viable/strict` branch to avoid these failures

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. module: nxp Issues related to NXP Neutron NPU delegation and code under backends/nxp/ release notes: nxp Changes to the NXP Neutron backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant