Skip to content

Commit e2a3de9

Browse files
digantdesaifacebook-github-bot
authored andcommitted
Ethos-u: update quantizer/__init__
Summary: Expose Quantizer and quant config through __init__.py Relanding Oscar's #10351 (but in parts) Differential Revision: D73530601
1 parent 0fdc8df commit e2a3de9

20 files changed

+54
-39
lines changed

backends/arm/quantizer/TARGETS

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
load("@fbcode_macros//build_defs:python_library.bzl", "python_library")
22

3+
# Exposed through __init__.py
4+
python_library(
5+
name = "quantization_config",
6+
srcs = ["quantization_config.py"],
7+
deps = [
8+
"//caffe2:torch",
9+
],
10+
)
11+
12+
# Exposed through __init__.py
313
python_library(
414
name = "arm_quantizer",
515
srcs = ["arm_quantizer.py"],
@@ -22,17 +32,18 @@ python_library(
2232
)
2333

2434
python_library(
25-
name = "quantization_config",
26-
srcs = ["quantization_config.py"],
35+
name = "arm_quantizer_utils",
36+
srcs = ["arm_quantizer_utils.py"],
2737
deps = [
28-
"//caffe2:torch",
38+
":quantization_config",
2939
],
3040
)
3141

3242
python_library(
33-
name = "arm_quantizer_utils",
34-
srcs = ["arm_quantizer_utils.py"],
43+
name = "lib",
44+
srcs = ["__init__.py"],
3545
deps = [
46+
":arm_quantizer",
3647
":quantization_config",
37-
],
48+
]
3849
)

backends/arm/quantizer/__init__.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
# Copyright 2024 Arm Limited and/or its affiliates.
1+
# Copyright 2024-2025 Arm Limited and/or its affiliates.
22
#
33
# This source code is licensed under the BSD-style license found in the
44
# LICENSE file in the root directory of this source tree.
5+
6+
7+
from .quantization_config import QuantizationConfig # noqa # usort: skip
8+
from .arm_quantizer import ( # noqa
9+
EthosUQuantizer,
10+
get_symmetric_quantization_config,
11+
TOSAQuantizer,
12+
)

backends/arm/quantizer/arm_quantizer.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@
1919
import torch
2020
from executorch.backends.arm._passes import ArmPassManager
2121

22-
from executorch.backends.arm.quantizer import arm_quantizer_utils
22+
from executorch.backends.arm.quantizer import QuantizationConfig
2323
from executorch.backends.arm.quantizer.arm_quantizer_utils import ( # type: ignore[attr-defined]
2424
mark_node_as_annotated,
2525
)
2626
from executorch.backends.arm.quantizer.quantization_annotator import ( # type: ignore[import-not-found]
2727
annotate_graph,
2828
)
2929

30-
from executorch.backends.arm.quantizer.quantization_config import QuantizationConfig
3130
from executorch.backends.arm.tosa_specification import TosaSpecification
3231
from executorch.backends.arm.arm_backend import (
3332
get_tosa_spec,

backends/arm/quantizer/quantization_annotator.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
import torch
1212
import torch.fx
13-
from executorch.backends.arm.quantizer import arm_quantizer_utils
14-
from executorch.backends.arm.quantizer.quantization_config import QuantizationConfig
13+
from executorch.backends.arm.quantizer import arm_quantizer_utils, QuantizationConfig
1514
from executorch.backends.arm.tosa_utils import get_node_debug_info
1615
from torch.ao.quantization.quantizer import QuantizationSpecBase, SharedQuantizationSpec
1716
from torch.ao.quantization.quantizer.utils import (

backends/arm/test/TARGETS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ python_library(
4242
":common",
4343
"//executorch/backends/xnnpack/test/tester:tester",
4444
"//executorch/backends/arm:arm_partitioner",
45-
"//executorch/backends/arm/quantizer:arm_quantizer",
45+
"//executorch/backends/arm/quantizer:lib",
4646
"//executorch/backends/arm:tosa_mapping",
4747
"//executorch/devtools/backend_debug:delegation_info",
4848
"fbsource//third-party/pypi/tabulate:tabulate",

backends/arm/test/ops/test_expand.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import torch
1717

18-
from executorch.backends.arm.quantizer.arm_quantizer import (
18+
from executorch.backends.arm.quantizer import (
1919
EthosUQuantizer,
2020
get_symmetric_quantization_config,
2121
TOSAQuantizer,

backends/arm/test/ops/test_hardtanh.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import torch
1515

16-
from executorch.backends.arm.quantizer.arm_quantizer import (
16+
from executorch.backends.arm.quantizer import (
1717
EthosUQuantizer,
1818
get_symmetric_quantization_config,
1919
TOSAQuantizer,

backends/arm/test/ops/test_max_pool.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import pytest
1313

1414
import torch
15-
from executorch.backends.arm.quantizer.arm_quantizer import (
15+
from executorch.backends.arm.quantizer import (
1616
EthosUQuantizer,
1717
get_symmetric_quantization_config,
1818
TOSAQuantizer,

backends/arm/test/ops/test_permute.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import torch
1515

16-
from executorch.backends.arm.quantizer.arm_quantizer import (
16+
from executorch.backends.arm.quantizer import (
1717
EthosUQuantizer,
1818
get_symmetric_quantization_config,
1919
TOSAQuantizer,

backends/arm/test/ops/test_relu.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from typing import Tuple
1111

1212
import torch
13-
from executorch.backends.arm.quantizer.arm_quantizer import (
13+
from executorch.backends.arm.quantizer import (
1414
EthosUQuantizer,
1515
get_symmetric_quantization_config,
1616
TOSAQuantizer,

backends/arm/test/ops/test_repeat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import torch
1515

16-
from executorch.backends.arm.quantizer.arm_quantizer import (
16+
from executorch.backends.arm.quantizer import (
1717
EthosUQuantizer,
1818
get_symmetric_quantization_config,
1919
TOSAQuantizer,

backends/arm/test/ops/test_sigmoid_16bit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import pytest
77

88
import torch
9-
from executorch.backends.arm.quantizer.arm_quantizer import (
9+
from executorch.backends.arm.quantizer import (
1010
get_symmetric_quantization_config,
1111
TOSAQuantizer,
1212
)

backends/arm/test/ops/test_sigmoid_32bit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import pytest
77
import torch
8-
from executorch.backends.arm.quantizer.arm_quantizer import TOSAQuantizer
8+
from executorch.backends.arm.quantizer import TOSAQuantizer
99
from executorch.backends.arm.quantizer.quantization_config import QuantizationConfig
1010
from executorch.backends.arm.test import common
1111
from executorch.backends.arm.test.tester.test_pipeline import (

backends/arm/test/ops/test_var.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import unittest
1212

1313
import torch
14-
from executorch.backends.arm.quantizer.arm_quantizer import (
14+
from executorch.backends.arm.quantizer import (
1515
EthosUQuantizer,
1616
get_symmetric_quantization_config,
1717
TOSAQuantizer,

backends/arm/test/ops/test_where.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import torch
1111

12-
from executorch.backends.arm.quantizer.arm_quantizer import (
12+
from executorch.backends.arm.quantizer import (
1313
EthosUQuantizer,
1414
get_symmetric_quantization_config,
1515
TOSAQuantizer,

backends/arm/test/tester/arm_tester.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
is_tosa,
2828
)
2929
from executorch.backends.arm.ethosu_partitioner import EthosUPartitioner
30-
from executorch.backends.arm.quantizer.arm_quantizer import (
30+
from executorch.backends.arm.quantizer import (
3131
EthosUQuantizer,
3232
get_symmetric_quantization_config,
3333
TOSAQuantizer,

backends/arm/test/tester/test_pipeline.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import torch
1010

11-
from executorch.backends.arm.quantizer.arm_quantizer import (
11+
from executorch.backends.arm.quantizer import (
1212
EthosUQuantizer,
1313
get_symmetric_quantization_config,
1414
TOSAQuantizer,

backends/arm/tosa_quant_utils.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import math
1111
from typing import cast, List, NamedTuple, Tuple
1212

13-
import executorch.backends.arm.tosa_mapping
14-
1513
import torch.fx
1614
import torch.fx.node
1715

@@ -234,7 +232,7 @@ def build_rescale(
234232

235233
def build_rescale_to_int32(
236234
tosa_fb: ts.TosaSerializer,
237-
input_arg: executorch.backends.arm.tosa_mapping.TosaArg,
235+
input_arg: TosaArg,
238236
input_zp: int,
239237
rescale_scale: list[float],
240238
is_scale32: bool = True,

examples/arm/aot_arm_compiler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
is_tosa,
2525
)
2626
from executorch.backends.arm.ethosu_partitioner import EthosUPartitioner
27-
from executorch.backends.arm.quantizer.arm_quantizer import (
27+
from executorch.backends.arm.quantizer import (
2828
EthosUQuantizer,
2929
get_symmetric_quantization_config,
3030
TOSAQuantizer,

examples/arm/ethos_u_minimal_example.ipynb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"outputs": [],
8181
"source": [
8282
"from executorch.backends.arm.arm_backend import ArmCompileSpecBuilder\n",
83-
"from executorch.backends.arm.quantizer.arm_quantizer import (\n",
83+
"from executorch.backends.arm.quantizer import (\n",
8484
" EthosUQuantizer,\n",
8585
" get_symmetric_quantization_config,\n",
8686
")\n",
@@ -89,7 +89,7 @@
8989
"target = \"ethos-u55-128\"\n",
9090
"\n",
9191
"# Create a compilation spec describing the target for configuring the quantizer\n",
92-
"# Some args are used by the Arm Vela graph compiler later in the example. Refer to Arm Vela documentation for an \n",
92+
"# Some args are used by the Arm Vela graph compiler later in the example. Refer to Arm Vela documentation for an\n",
9393
"# explanation of its flags: https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u-vela/-/blob/main/OPTIONS.md\n",
9494
"spec_builder = ArmCompileSpecBuilder().ethosu_compile_spec(\n",
9595
" target,\n",
@@ -100,12 +100,12 @@
100100
"compile_spec = spec_builder.build()\n",
101101
"\n",
102102
"# Create and configure quantizer to use a symmetric quantization config globally on all nodes\n",
103-
"quantizer = EthosUQuantizer(compile_spec) \n",
103+
"quantizer = EthosUQuantizer(compile_spec)\n",
104104
"operator_config = get_symmetric_quantization_config(is_per_channel=False)\n",
105105
"quantizer.set_global(operator_config)\n",
106106
"\n",
107107
"# Post training quantization\n",
108-
"quantized_graph_module = prepare_pt2e(graph_module, quantizer) \n",
108+
"quantized_graph_module = prepare_pt2e(graph_module, quantizer)\n",
109109
"quantized_graph_module(*example_inputs) # Calibrate the graph module with the example input\n",
110110
"quantized_graph_module = convert_pt2e(quantized_graph_module)\n",
111111
"\n",
@@ -128,8 +128,8 @@
128128
"metadata": {},
129129
"outputs": [],
130130
"source": [
131-
"import subprocess \n",
132-
"import os \n",
131+
"import subprocess\n",
132+
"import os\n",
133133
"\n",
134134
"# Setup paths\n",
135135
"cwd_dir = os.getcwd()\n",
@@ -170,9 +170,9 @@
170170
" to_edge_transform_and_lower,\n",
171171
")\n",
172172
"from executorch.extension.export_util.utils import save_pte_program\n",
173-
"import platform \n",
173+
"import platform\n",
174174
"\n",
175-
"# Create partitioner from compile spec \n",
175+
"# Create partitioner from compile spec\n",
176176
"partitioner = EthosUPartitioner(compile_spec)\n",
177177
"\n",
178178
"# Lower the exported program to the Ethos-U backend\n",
@@ -185,8 +185,8 @@
185185
" )\n",
186186
"\n",
187187
"# Load quantization ops library\n",
188-
"os_aot_lib_names = {\"Darwin\" : \"libquantized_ops_aot_lib.dylib\", \n",
189-
" \"Linux\" : \"libquantized_ops_aot_lib.so\", \n",
188+
"os_aot_lib_names = {\"Darwin\" : \"libquantized_ops_aot_lib.dylib\",\n",
189+
" \"Linux\" : \"libquantized_ops_aot_lib.so\",\n",
190190
" \"Windows\": \"libquantized_ops_aot_lib.dll\"}\n",
191191
"aot_lib_name = os_aot_lib_names[platform.system()]\n",
192192
"\n",
@@ -226,7 +226,7 @@
226226
"metadata": {},
227227
"outputs": [],
228228
"source": [
229-
"# Build executorch \n",
229+
"# Build executorch\n",
230230
"subprocess.run(os.path.join(script_dir, \"build_executorch.sh\"), shell=True, cwd=et_dir)\n",
231231
"\n",
232232
"# Build portable kernels\n",

0 commit comments

Comments
 (0)