-
Notifications
You must be signed in to change notification settings - Fork 955
Expand file tree
/
Copy pathtest_out_variants.py
More file actions
100 lines (85 loc) · 4.35 KB
/
test_out_variants.py
File metadata and controls
100 lines (85 loc) · 4.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/env fbpython
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
import unittest
import executorch.kernels.quantized # noqa[F401] 'executorch.kernels.quantized' imported but unused
import torch
import torch.ao.quantization.fx._decomposed # noqa[F401] 'torch.ao.quantization.fx._decomposed' imported but unused
from executorch.exir.dialects._ops import ops
from executorch.exir.passes._quant_patterns_and_replacements import ( # noqa
quantized_decomposed_lib, # noqa
)
class TestOutVariants(unittest.TestCase):
def setUp(self) -> None:
super().setUp()
def test_add_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.add.out)
fn = ops.edge.quantized_decomposed.add.default
out_variant = fn.to_out_variant()
self.assertEqual(out_variant.name(), "quantized_decomposed::add.out")
def test_choose_qparams_tensor_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.choose_qparams.Tensor_out)
choose_qparams = ops.edge.quantized_decomposed.choose_qparams.tensor
out_variant = choose_qparams.to_out_variant()
self.assertEqual(
out_variant.name(), "quantized_decomposed::choose_qparams.Tensor_out"
)
def test_dequantize_per_tensor_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.dequantize_per_tensor.out)
fn = ops.edge.quantized_decomposed.dequantize_per_tensor.default
out_variant = fn.to_out_variant()
self.assertEqual(
out_variant.name(), "quantized_decomposed::dequantize_per_tensor.out"
)
def test_dequantize_per_tensor_tensor_to_out_variant(self) -> None:
self.assertIsNotNone(
ops.edge.quantized_decomposed.dequantize_per_tensor.Tensor_out
)
fn = ops.edge.quantized_decomposed.dequantize_per_tensor.tensor
out_variant = fn.to_out_variant()
self.assertEqual(
out_variant.name(), "quantized_decomposed::dequantize_per_tensor.Tensor_out"
)
def test_dequantize_per_channel_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.dequantize_per_channel.out)
fn = ops.edge.quantized_decomposed.dequantize_per_channel.default
out_variant = fn.to_out_variant()
self.assertEqual(
out_variant.name(), "quantized_decomposed::dequantize_per_channel.out"
)
def test_mixed_linear_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.mixed_linear.out)
fn = ops.edge.quantized_decomposed.mixed_linear.default
out_variant = fn.to_out_variant()
self.assertEqual(out_variant.name(), "quantized_decomposed::mixed_linear.out")
def test_mixed_mm_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.mixed_mm.out)
fn = ops.edge.quantized_decomposed.mixed_mm.default
out_variant = fn.to_out_variant()
self.assertEqual(out_variant.name(), "quantized_decomposed::mixed_mm.out")
def test_quantize_per_tensor_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.quantize_per_tensor.out)
fn = ops.edge.quantized_decomposed.quantize_per_tensor.default
out_variant = fn.to_out_variant()
self.assertEqual(
out_variant.name(), "quantized_decomposed::quantize_per_tensor.out"
)
def test_quantize_per_tensor_tensor_to_out_variant(self) -> None:
self.assertIsNotNone(
ops.edge.quantized_decomposed.quantize_per_tensor.Tensor_out
)
fn = ops.edge.quantized_decomposed.quantize_per_tensor.tensor
out_variant = fn.to_out_variant()
self.assertEqual(
out_variant.name(), "quantized_decomposed::quantize_per_tensor.Tensor_out"
)
def test_quantize_per_channel_to_out_variant(self) -> None:
self.assertIsNotNone(ops.edge.quantized_decomposed.quantize_per_channel.out)
fn = ops.edge.quantized_decomposed.quantize_per_channel.default
out_variant = fn.to_out_variant()
self.assertEqual(
out_variant.name(), "quantized_decomposed::quantize_per_channel.out"
)