pytorch/test/test_quantization.py
Vasiliy Kuznetsov 4e90fa6a8c dbr quant: break up test class into multiple classes (#70246)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/70246

Breaks up the large `TestQuantizeDBR` test case into
1. `TestQuantizeDBRIndividualOps` for testing functionality of ops
2. `TestQuantizeDBRMultipleOps` for testing non-fusion interactions between ops
3. `TestQuantizeDBR` for everything else

We may need to refactor this more in the future, but this should
unblock things for the near future.

Test Plan:
```
python test/test_quantization.py TestQuantizeDBR
python test/test_quantization.py TestQuantizeDBRIndividualOps
python test/test_quantization.py TestQuantizeDBRMultipleOps
```

Reviewed By: jerryzh168

Differential Revision: D33255925

Pulled By: vkuzo

fbshipit-source-id: 82db1a644867e9303453cfedffed2d81d083c9cd
2022-01-05 06:36:41 -08:00

122 lines
6.2 KiB
Python

# -*- coding: utf-8 -*-
# Owner(s): ["oncall: quantization"]
from torch.testing._internal.common_utils import run_tests
# Quantization core tests. These include tests for
# - quantized kernels
# - quantized functional operators
# - quantized workflow modules
# - quantized workflow operators
# - quantized tensor
# 1. Quantized Kernels
# TODO: merge the different quantized op tests into one test class
from quantization.core.test_quantized_op import TestQuantizedOps # noqa: F401
from quantization.core.test_quantized_op import TestQNNPackOps # noqa: F401
from quantization.core.test_quantized_op import TestQuantizedLinear # noqa: F401
from quantization.core.test_quantized_op import TestQuantizedConv # noqa: F401
from quantization.core.test_quantized_op import TestDynamicQuantizedOps # noqa: F401
from quantization.core.test_quantized_op import TestComparatorOps # noqa: F401
from quantization.core.test_quantized_op import TestPadding # noqa: F401
from quantization.core.test_quantized_op import TestQuantizedEmbeddingOps # noqa: F401
# 2. Quantized Functional/Workflow Ops
from quantization.core.test_quantized_functional import TestQuantizedFunctionalOps # noqa: F401
from quantization.core.test_workflow_ops import TestFakeQuantizeOps # noqa: F401
from quantization.core.test_workflow_ops import TestFusedObsFakeQuant # noqa: F401
# 3. Quantized Tensor
from quantization.core.test_quantized_tensor import TestQuantizedTensor # noqa: F401
# 4. Modules
from quantization.core.test_workflow_module import TestFakeQuantize # noqa: F401
from quantization.core.test_workflow_module import TestObserver # noqa: F401
from quantization.core.test_quantized_module import TestStaticQuantizedModule # noqa: F401
from quantization.core.test_quantized_module import TestDynamicQuantizedModule # noqa: F401
from quantization.core.test_workflow_module import TestRecordHistogramObserver # noqa: F401
from quantization.core.test_workflow_module import TestHistogramObserver # noqa: F401
from quantization.core.test_workflow_module import TestDistributed # noqa: F401
from quantization.core.test_workflow_module import TestFusedObsFakeQuantModule # noqa: F401
# Eager Mode Workflow. Tests for the functionality of APIs and different features implemented
# using eager mode.
# 1. Eager mode post training quantization
from quantization.eager.test_quantize_eager_ptq import TestQuantizeEagerPTQStatic # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestQuantizeEagerPTQDynamic # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestQuantizeEagerOps # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestQuantizeEagerONNXExport # noqa: F401
# 2. Eager mode quantization aware training
from quantization.eager.test_quantize_eager_qat import TestQuantizeEagerQAT # noqa: F401
from quantization.eager.test_quantize_eager_qat import TestQuantizeEagerQATNumerics # noqa: F401
# 3. Eager mode fusion passes
from quantization.eager.test_fuse_eager import TestFuseEager # noqa: F401
# 4. Testing model numerics between quanitzed and FP32 models
from quantization.eager.test_model_numerics import TestModelNumericsEager # noqa: F401
# 5. Tooling: numeric_suite
from quantization.eager.test_numeric_suite_eager import TestNumericSuiteEager # noqa: F401
# 6. Equalization and Bias Correction
from quantization.eager.test_equalize_eager import TestEqualizeEager # noqa: F401
from quantization.eager.test_bias_correction_eager import TestBiasCorrectionEager # noqa: F401
# FX GraphModule Graph Mode Quantization. Tests for the functionality of APIs and different features implemented
# using fx quantization.
try:
from quantization.fx.test_quantize_fx import TestFuseFx # noqa: F401
from quantization.fx.test_quantize_fx import TestQuantizeFx # noqa: F401
from quantization.fx.test_quantize_fx import TestQuantizeFxOps # noqa: F401
from quantization.fx.test_quantize_fx import TestQuantizeFxModels # noqa: F401
from quantization.fx.test_subgraph_rewriter import TestSubgraphRewriter # noqa: F401
except ImportError:
# In FBCode we separate FX out into a separate target for the sake of dev
# velocity. These are covered by a separate test target `quantization_fx`
pass
try:
from quantization.fx.test_numeric_suite_fx import TestFXGraphMatcher # noqa: F401
from quantization.fx.test_numeric_suite_fx import TestFXGraphMatcherModels # noqa: F401
from quantization.fx.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIs # noqa: F401
from quantization.fx.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIsModels # noqa: F401
except ImportError:
pass
# Equalization for FX mode
try:
from quantization.fx.test_equalize_fx import TestEqualizeFx # noqa: F401
except ImportError:
pass
# Backward Compatibility. Tests serialization and BC for quantized modules.
try:
from quantization.bc.test_backward_compatibility import TestSerialization # noqa: F401
except ImportError:
pass
# JIT Graph Mode Quantization
from quantization.jit.test_quantize_jit import TestQuantizeJit # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeJitPasses # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeJitOps # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeDynamicJitPasses # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeDynamicJitOps # noqa: F401
# Quantization specific fusion passes
from quantization.jit.test_fusion_passes import TestFusionPasses # noqa: F401
from quantization.jit.test_deprecated_jit_quant import TestDeprecatedJitQuantized # noqa: F401
# AO Migration tests
from quantization.ao_migration.test_quantization import TestAOMigrationQuantization # noqa: F401
try:
from quantization.ao_migration.test_quantization_fx import TestAOMigrationQuantizationFx # noqa: F401
except ImportError:
pass
try:
from quantization.dbr.test_quantize_dbr import TestQuantizeDBR # noqa: F401
from quantization.dbr.test_quantize_dbr import TestQuantizeDBRIndividualOps # noqa: F401
from quantization.dbr.test_quantize_dbr import TestQuantizeDBRMultipleOps # noqa: F401
from quantization.dbr.test_quantize_dbr import TestQuantizeDBRModels # noqa: F401
except ImportError:
pass
if __name__ == '__main__':
run_tests()