Skip to content

Conversation

Ninja91
Copy link

@Ninja91 Ninja91 commented Aug 29, 2025

Stack from ghstack (oldest at bottom):

Add 16A8W quantization support for FCNode operations with BMM dependency fix in ExecutorTorch ARM backend.

This follows the pattern established for linear, mul, sigmoid, tanh, slice, view/transpose, and cat operations, extending int16 support to FCNode operations.

Changes:

  • Add INT16 dtype validation support in op_bmm.py
  • Add test_addmm_tensor_16a8w_tosa_INT test function
  • Enable test_addmm.py in test targets configuration
  • Fix BMM dependency for FCNode operations

The 16A8W configuration uses 16-bit activations with 8-bit weights, enabling higher precision for activations while maintaining weight efficiency.

Differential Revision: D80512504

cc @digantdesai @freddan80 @per @zingo @oscarandersson8218

Add 16A8W quantization support for FCNode operations with BMM dependency fix in ExecutorTorch ARM backend.

This follows the pattern established for linear, mul, sigmoid, tanh, slice, view/transpose, and cat operations, extending int16 support to FCNode operations.

Changes:
- Add INT16 dtype validation support in op_bmm.py
- Add test_addmm_tensor_16a8w_tosa_INT test function
- Enable test_addmm.py in test targets configuration
- Fix BMM dependency for FCNode operations

The 16A8W configuration uses 16-bit activations with 8-bit weights, enabling higher precision for activations while maintaining weight efficiency.

Differential Revision: [D80512504](https://our.internmc.facebook.com/intern/diff/D80512504/)

[ghstack-poisoned]
@Ninja91 Ninja91 requested a review from digantdesai as a code owner August 29, 2025 06:43
Copy link

pytorch-bot bot commented Aug 29, 2025

🔗 Helpful Links

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

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

❌ 15 New Failures, 6 Unrelated Failures

As of commit e8418d4 with merge base 6208340 (image):

NEW FAILURES - The following jobs have failed:

FLAKY - The following jobs failed but were likely due to flakiness present on trunk:

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.

Copy link

This PR needs a release notes: label

If your change should be included in the release notes (i.e. would users of this library care about this change?), please use a label starting with release notes:. This helps us keep track and include your important work in the next release notes.

To add a label, you can comment to pytorchbot, for example
@pytorchbot label "release notes: none"

For more information, see
https://github.com/pytorch/pytorch/wiki/PyTorch-AutoLabel-Bot#why-categorize-for-release-notes-and-how-does-it-work.

@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 Aug 29, 2025
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D80512504

@zingo zingo added ciflow/trunk module: arm Issues related to arm backend partner: arm For backend delegation, kernels, demo, etc. from the 3rd-party partner, Arm labels Aug 29, 2025
@zingo zingo changed the title Add 16A8W FCNode support with BMM dependency fix Arm backend: Add 16A8W FCNode support with BMM dependency fix Aug 29, 2025
@@ -93,7 +93,8 @@ def define_node(
if output.dtype == ts.DType.INT8:
output_qparams = get_output_qparams(node)[0]
final_output_scale = (
input_qparams[0].get_scale_per_tensor() * input_qparams[1].get_scale_per_tensor() # type: ignore[possibly-undefined] # pyre-ignore[61]
input_qparams[0].get_scale_per_tensor()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix mypy!



@common.parametrize("test_data", test_data_suite)
def test_addmm_16a8w_tosa_INT(test_data: input_t1):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok so this passes but linear doesn't, interesting :)

Copy link
Contributor

@digantdesai digantdesai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix mypy before landing. Code dupe issue with the quant helper.

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. fb-exported module: arm Issues related to arm backend partner: arm For backend delegation, kernels, demo, etc. from the 3rd-party partner, Arm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants