Skip to content

Arm backend: Fix Arm PT2E quantization with export guards - #24837

Merged
wwwind merged 2 commits into
pytorch:mainfrom
wwwind:fix_export_guards
Nov 10, 2026
Merged

wwwind merged 2 commits into
pytorch:mainfrom
wwwind:fix_export_guards

Conversation

@wwwind

@wwwind wwwind commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

PyTorch 2.15 adds a _guards_fn call_module node to ExportedProgram.module() by default. This causes Arm's PT2E quantization passes to fail with
ExportPassBaseError: call_module is not supported.

Changes:

Remove unused _guards_fn nodes before Arm quantization annotation.

Preserve unrelated call_module nodes and reject unsafe guard removal.

Add regression tests for guarded and unguarded exports.

This allows prepare_pt2e(ep.module(), quantizer) to work
without requiring check_guards=False in user code.

cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani

PyTorch 2.15 adds a _guards_fn call_module node to
ExportedProgram.module() by default. This causes Arm's PT2E
quantization passes to fail with
ExportPassBaseError: call_module is not supported.

Changes:

Remove unused _guards_fn nodes before Arm quantization
annotation.

Preserve unrelated call_module nodes and reject unsafe
guard removal.

Add regression tests for guarded and unguarded exports.

This allows prepare_pt2e(ep.module(), quantizer) to work
 without requiring check_guards=False in user code.

Signed-off-by: Elena Zhelezina <elena.zhelezina@arm.com>
Change-Id: Ie29d1f97edb1890db718b79a9147e9e7708461d1
@wwwind wwwind added partner: arm For backend delegation, kernels, demo, etc. from the 3rd-party partner, Arm release notes: arm Changes to the ARM backend delegate module: arm Issues related to arm backend labels Nov 10, 2026
@pytorch-bot

pytorch-bot Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

🔗 Helpful Links

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

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

❌ 1 New Failure, 1 Unrelated Failure

As of commit 538f541 with merge base 5af315a (image):

NEW FAILURE - The following job has failed:

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.

@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 Nov 10, 2026
@wwwind
wwwind merged commit 3025ac0 into pytorch:main Nov 10, 2026
428 of 430 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/trunk CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. module: arm Issues related to arm backend partner: arm For backend delegation, kernels, demo, etc. from the 3rd-party partner, Arm release notes: arm Changes to the ARM backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants