-
Notifications
You must be signed in to change notification settings - Fork 655
Arm backend: Add 16A8W FCNode support with BMM dependency fix #13801
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: gh/Ninja91/14/base
Are you sure you want to change the base?
Conversation
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]
🔗 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 FailuresAs of commit e8418d4 with merge base 6208340 ( 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. |
This PR needs a
|
This pull request was exported from Phabricator. Differential Revision: D80512504 |
@@ -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() |
There was a problem hiding this comment.
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): |
There was a problem hiding this comment.
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 :)
There was a problem hiding this 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.
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:
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