diff --git a/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py b/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py index 429b49740..e4767b19b 100644 --- a/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +++ b/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py @@ -170,7 +170,6 @@ def compute_resource_utilization(self, w_total, *_ = self.compute_weights_utilization(target_criterion, bitwidth_mode, w_qcs) if {RUTarget.ACTIVATION, RUTarget.TOTAL}.intersection(ru_targets): - Logger.warning("Using an experimental feature max-cut for activation memory utilization estimation.") a_total = self.compute_activations_utilization(target_criterion, bitwidth_mode, act_qcs) ru = ResourceUtilization() diff --git a/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py b/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py index c61dbf6a1..b5f288fef 100644 --- a/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +++ b/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py @@ -23,6 +23,7 @@ from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization_calculator import \ ResourceUtilizationCalculator, BitwidthMode, TargetInclusionCriterion from model_compression_toolkit.core.graph_prep_runner import graph_preparation_runner +from model_compression_toolkit.logger import Logger from model_compression_toolkit.target_platform_capabilities import FrameworkQuantizationCapabilities @@ -104,6 +105,13 @@ def requires_mixed_precision(in_model: Any, Returns: A boolean indicating if mixed precision is needed. """ + + if target_resource_utilization.activation_restricted() or target_resource_utilization.total_mem_restricted(): + Logger.warning("Using an experimental feature max-cut for activation memory utilization estimation.") + return True + if target_resource_utilization.bops_restricted(): + return True + core_config = _create_core_config_for_ru(core_config) transformed_graph = graph_preparation_runner(in_model,