Skip to content

Commit 149a846

Browse files
committed
Update on "Remove Per-Op mode from DQPartitioner"
Differential Revision: [D71427234](https://our.internmc.facebook.com/intern/diff/D71427234/) [ghstack-poisoned]
2 parents 77a593f + 231e657 commit 149a846

File tree

3 files changed

+21
-18
lines changed

3 files changed

+21
-18
lines changed

backends/xnnpack/test/ops/test_linear.py

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,6 @@ def _test_dqlinear(
331331
uses_bias=False,
332332
qconfig: Optional[QuantizationConfig] = None,
333333
atol=5e-02, # TODO(T212995726): Investigate right atol for rand[n] inputs
334-
no_per_op_mode=False,
335334
):
336335
"""
337336
Helper function to test dynamic quantized linear op with different configurations.
@@ -340,9 +339,8 @@ def _test_dqlinear(
340339
is_per_channel=is_per_channel,
341340
is_dynamic=True,
342341
)
343-
per_op_mode_choices = [False] if no_per_op_mode else [True, False]
344342
for legacy_partitioner in (True, False):
345-
for per_op_mode in per_op_mode_choices:
343+
for per_op_mode in (True, False):
346344
DynamicallyQuantizedPartitioner = XnnpackPartitioner(
347345
config_precisions=ConfigPrecisionType.DYNAMIC_QUANT,
348346
per_op_mode=per_op_mode,
@@ -538,22 +536,21 @@ def get_qnode_checks(quant_node_checks, dialect):
538536
# )
539537

540538
def test_qd8_f32_per_channel_shared_dq_chain(self):
541-
for use_bias in (False, True):
542-
module = SharedDQChain(
543-
input_size=13,
544-
output_size=17,
545-
)
546-
inputs = (torch.randn(1, 2, 13),)
539+
# for use_bias in (False, True):
540+
module = SharedDQChain(
541+
input_size=13,
542+
output_size=17,
543+
)
544+
inputs = (torch.randn(1, 2, 13),)
547545

548-
self._test_dqlinear(
549-
module,
550-
inputs,
551-
dynamic_shapes=None,
552-
is_per_channel=True,
553-
linear_count=2,
554-
uses_bias=use_bias,
555-
no_per_op_mode=True,
556-
)
546+
self._test_dqlinear(
547+
module,
548+
inputs,
549+
dynamic_shapes=None,
550+
is_per_channel=True,
551+
linear_count=2,
552+
uses_bias=False,
553+
)
557554

558555
def _test_qd8_per_channel_linear(self, dtype: torch.dtype = torch.float):
559556
for uses_bias in (False, True):

backends/xnnpack/test/tester/TARGETS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ runtime.python_library(
2626
"//executorch/exir/backend:partitioner",
2727
"//executorch/exir/passes:spec_prop_pass",
2828
"//executorch/extension/pybindings:portable_lib", # @manual
29+
"//executorch/backends/transforms:duplicate_dynamic_quant_chain"
2930
],
3031
)

backends/xnnpack/test/tester/tester.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
to_edge,
2727
to_edge_transform_and_lower,
2828
)
29+
from executorch.backends.transforms.duplicate_dynamic_quant_chain import (
30+
DuplicateDynamicQuantChainPass,
31+
)
2932
from executorch.exir.backend.backend_api import validation_disabled
3033
from executorch.exir.backend.partitioner import Partitioner
3134
from executorch.exir.passes.sym_shape_eval_pass import ConstraintBasedSymShapeEvalPass
@@ -177,6 +180,8 @@ def run(
177180
prepared(*inputs)
178181

179182
converted = convert_pt2e(prepared)
183+
DuplicateDynamicQuantChainPass()(converted)
184+
180185
self.converted_graph = converted
181186

182187
@property

0 commit comments

Comments
 (0)