pytorch

Форк
0
/
test_quantization.py 
178 строк · 9.5 Кб
1
# Owner(s): ["oncall: quantization"]
2

3
import logging
4
from torch.testing._internal.common_utils import run_tests
5

6
# Quantization core tests. These include tests for
7
# - quantized kernels
8
# - quantized functional operators
9
# - quantized workflow modules
10
# - quantized workflow operators
11
# - quantized tensor
12

13
# 1. Quantized Kernels
14
# TODO: merge the different quantized op tests into one test class
15
from quantization.core.test_quantized_op import TestQuantizedOps  # noqa: F401
16
from quantization.core.test_quantized_op import TestQNNPackOps  # noqa: F401
17
from quantization.core.test_quantized_op import TestQuantizedLinear  # noqa: F401
18
from quantization.core.test_quantized_op import TestQuantizedConv  # noqa: F401
19
from quantization.core.test_quantized_op import TestDynamicQuantizedOps  # noqa: F401
20
from quantization.core.test_quantized_op import TestComparatorOps  # noqa: F401
21
from quantization.core.test_quantized_op import TestPadding  # noqa: F401
22
from quantization.core.test_quantized_op import TestQuantizedEmbeddingOps  # noqa: F401
23
# 2. Quantized Functional/Workflow Ops
24
from quantization.core.test_quantized_functional import TestQuantizedFunctionalOps  # noqa: F401
25
from quantization.core.test_workflow_ops import TestFakeQuantizeOps  # noqa: F401
26
from quantization.core.test_workflow_ops import TestFusedObsFakeQuant  # noqa: F401
27
# 3. Quantized Tensor
28
from quantization.core.test_quantized_tensor import TestQuantizedTensor  # noqa: F401
29
# 4. Modules
30
from quantization.core.test_workflow_module import TestFakeQuantize  # noqa: F401
31
from quantization.core.test_workflow_module import TestObserver  # noqa: F401
32
from quantization.core.test_quantized_module import TestStaticQuantizedModule  # noqa: F401
33
from quantization.core.test_quantized_module import TestDynamicQuantizedModule  # noqa: F401
34
from quantization.core.test_quantized_module import TestReferenceQuantizedModule  # noqa: F401
35
from quantization.core.test_workflow_module import TestRecordHistogramObserver  # noqa: F401
36
from quantization.core.test_workflow_module import TestHistogramObserver  # noqa: F401
37
from quantization.core.test_workflow_module import TestDistributed  # noqa: F401
38
from quantization.core.test_workflow_module import TestFusedObsFakeQuantModule  # noqa: F401
39
from quantization.core.test_backend_config import TestBackendConfig  # noqa: F401
40
from quantization.core.test_utils import TestUtils  # noqa: F401
41
try:
42
    # This test has extra data dependencies, so in some environments, e.g. Meta internal
43
    # Buck, it has its own test runner.
44
    from quantization.core.test_docs import TestQuantizationDocs  # noqa: F401
45
except ImportError as e:
46
    logging.warning(e)
47

48
# Eager Mode Workflow. Tests for the functionality of APIs and different features implemented
49
# using eager mode.
50

51
# 1. Eager mode post training quantization
52
from quantization.eager.test_quantize_eager_ptq import TestQuantizeEagerPTQStatic  # noqa: F401
53
from quantization.eager.test_quantize_eager_ptq import TestQuantizeEagerPTQDynamic  # noqa: F401
54
from quantization.eager.test_quantize_eager_ptq import TestQuantizeEagerOps  # noqa: F401
55
# 2. Eager mode quantization aware training
56
from quantization.eager.test_quantize_eager_qat import TestQuantizeEagerQAT  # noqa: F401
57
from quantization.eager.test_quantize_eager_qat import TestQuantizeEagerQATNumerics  # noqa: F401
58
# 3. Eager mode fusion passes
59
from quantization.eager.test_fuse_eager import TestFuseEager  # noqa: F401
60
# 4. Testing model numerics between quanitzed and FP32 models
61
from quantization.eager.test_model_numerics import TestModelNumericsEager  # noqa: F401
62
# 5. Tooling: numeric_suite
63
from quantization.eager.test_numeric_suite_eager import TestNumericSuiteEager  # noqa: F401
64
# 6. Equalization and Bias Correction
65
from quantization.eager.test_equalize_eager import TestEqualizeEager  # noqa: F401
66
from quantization.eager.test_bias_correction_eager import TestBiasCorrectionEager  # noqa: F401
67

68

69
# FX GraphModule Graph Mode Quantization. Tests for the functionality of APIs and different features implemented
70
# using fx quantization.
71
try:
72
    from quantization.fx.test_quantize_fx import TestFuseFx  # noqa: F401
73
    from quantization.fx.test_quantize_fx import TestQuantizeFx  # noqa: F401
74
    from quantization.fx.test_quantize_fx import TestQuantizeFxOps  # noqa: F401
75
    from quantization.fx.test_quantize_fx import TestQuantizeFxModels  # noqa: F401
76
    from quantization.fx.test_subgraph_rewriter import TestSubgraphRewriter  # noqa: F401
77
except ImportError as e:
78
    # In FBCode we separate FX out into a separate target for the sake of dev
79
    # velocity. These are covered by a separate test target `quantization_fx`
80
    logging.warning(e)
81

82
# PyTorch 2 Export Quantization
83
try:
84
    # To be moved to compiler side later
85
    from quantization.pt2e.test_graph_utils import TestGraphUtils  # noqa: F401
86
    from quantization.pt2e.test_duplicate_dq import TestDuplicateDQPass  # noqa: F401
87
    from quantization.pt2e.test_metadata_porting import TestMetaDataPorting  # noqa: F401
88
    from quantization.pt2e.test_numeric_debugger import TestNumericDebugger  # noqa: F401
89
    from quantization.pt2e.test_quantize_pt2e import TestQuantizePT2E  # noqa: F401
90
    from quantization.pt2e.test_representation import TestPT2ERepresentation  # noqa: F401
91
    from quantization.pt2e.test_xnnpack_quantizer import TestXNNPACKQuantizer  # noqa: F401
92
    from quantization.pt2e.test_xnnpack_quantizer import TestXNNPACKQuantizerModels  # noqa: F401
93
    from quantization.pt2e.test_x86inductor_quantizer import TestQuantizePT2EX86Inductor  # noqa: F401
94
    # TODO: Figure out a way to merge all QAT tests in one TestCase
95
    from quantization.pt2e.test_quantize_pt2e_qat import TestQuantizePT2EQAT_ConvBn1d  # noqa: F401
96
    from quantization.pt2e.test_quantize_pt2e_qat import TestQuantizePT2EQAT_ConvBn2d  # noqa: F401
97
    from quantization.pt2e.test_quantize_pt2e_qat import TestQuantizePT2EQATModels  # noqa: F401
98
except ImportError as e:
99
    # In FBCode we separate PT2 out into a separate target for the sake of dev
100
    # velocity. These are covered by a separate test target `quantization_pt2e`
101
    logging.warning(e)
102

103
try:
104
    from quantization.fx.test_numeric_suite_fx import TestFXGraphMatcher  # noqa: F401
105
    from quantization.fx.test_numeric_suite_fx import TestFXGraphMatcherModels  # noqa: F401
106
    from quantization.fx.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIs  # noqa: F401
107
    from quantization.fx.test_numeric_suite_fx import TestFXNumericSuiteNShadows  # noqa: F401
108
    from quantization.fx.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIsModels  # noqa: F401
109
except ImportError as e:
110
    logging.warning(e)
111

112
# Test the model report module
113
try:
114
    from quantization.fx.test_model_report_fx import TestFxModelReportDetector  # noqa: F401
115
    from quantization.fx.test_model_report_fx import TestFxModelReportObserver      # noqa: F401
116
    from quantization.fx.test_model_report_fx import TestFxModelReportDetectDynamicStatic  # noqa: F401
117
    from quantization.fx.test_model_report_fx import TestFxModelReportClass  # noqa: F401
118
    from quantization.fx.test_model_report_fx import TestFxDetectInputWeightEqualization  # noqa: F401
119
    from quantization.fx.test_model_report_fx import TestFxDetectOutliers  # noqa: F401
120
    from quantization.fx.test_model_report_fx import TestFxModelReportVisualizer  # noqa: F401
121
except ImportError as e:
122
    logging.warning(e)
123

124
# Equalization for FX mode
125
try:
126
    from quantization.fx.test_equalize_fx import TestEqualizeFx  # noqa: F401
127
except ImportError as e:
128
    logging.warning(e)
129

130
# Backward Compatibility. Tests serialization and BC for quantized modules.
131
try:
132
    from quantization.bc.test_backward_compatibility import TestSerialization  # noqa: F401
133
except ImportError as e:
134
    logging.warning(e)
135

136
# JIT Graph Mode Quantization
137
from quantization.jit.test_quantize_jit import TestQuantizeJit  # noqa: F401
138
from quantization.jit.test_quantize_jit import TestQuantizeJitPasses  # noqa: F401
139
from quantization.jit.test_quantize_jit import TestQuantizeJitOps  # noqa: F401
140
from quantization.jit.test_quantize_jit import TestQuantizeDynamicJitPasses  # noqa: F401
141
from quantization.jit.test_quantize_jit import TestQuantizeDynamicJitOps  # noqa: F401
142
# Quantization specific fusion passes
143
from quantization.jit.test_fusion_passes import TestFusionPasses  # noqa: F401
144
from quantization.jit.test_deprecated_jit_quant import TestDeprecatedJitQuantized  # noqa: F401
145

146
# AO Migration tests
147
from quantization.ao_migration.test_quantization import TestAOMigrationQuantization  # noqa: F401
148
from quantization.ao_migration.test_ao_migration import TestAOMigrationNNQuantized  # noqa: F401
149
from quantization.ao_migration.test_ao_migration import TestAOMigrationNNIntrinsic  # noqa: F401
150
try:
151
    from quantization.ao_migration.test_quantization_fx import TestAOMigrationQuantizationFx  # noqa: F401
152
except ImportError as e:
153
    logging.warning(e)
154

155
# Experimental functionality
156
try:
157
    from quantization.core.experimental.test_bits import TestBitsCPU  # noqa: F401
158
except ImportError as e:
159
    logging.warning(e)
160
try:
161
    from quantization.core.experimental.test_bits import TestBitsCUDA  # noqa: F401
162
except ImportError as e:
163
    logging.warning(e)
164
try:
165
    from quantization.core.experimental.test_float8 import TestFloat8DtypeCPU  # noqa: F401
166
except ImportError as e:
167
    logging.warning(e)
168
try:
169
    from quantization.core.experimental.test_float8 import TestFloat8DtypeCUDA  # noqa: F401
170
except ImportError as e:
171
    logging.warning(e)
172
try:
173
    from quantization.core.experimental.test_float8 import TestFloat8DtypeCPUOnlyCPU  # noqa: F401
174
except ImportError as e:
175
    logging.warning(e)
176

177
if __name__ == '__main__':
178
    run_tests()
179

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.