Skip to content

Commit

Permalink
Change KPI to Resource Utilization (#1008)
Browse files Browse the repository at this point in the history
Changing KPI terminology (in mixed precision & pruning constraints and in general model hw footprint evaluation) to Resource Utilization.

That includes:
- KPI class renaming to ResourceUtilization class
- kpi_data API renaming to resource_utilization_data API
- Local variable renaming
- Functions renaming
- Change KPI appearance in comments and documentation

---------

Co-authored-by: Ofir Gordon <[email protected]>
  • Loading branch information
ofirgo and Ofir Gordon authored Mar 21, 2024
1 parent 501244d commit ed0d604
Show file tree
Hide file tree
Showing 92 changed files with 1,394 additions and 1,361 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ This pruning technique is designed to compress models for specific hardware arch
taking into account the target platform's Single Instruction, Multiple Data (SIMD) capabilities.
By pruning groups of channels (SIMD groups), our approach not only reduces model size
and complexity, but ensures that better utilization of channels is in line with the SIMD architecture
for a target KPI of weights memory footprint.
for a target Resource Utilization of weights memory footprint.
[Keras API](https://sony.github.io/model_optimization/docs/api/experimental_api_docs/methods/keras_pruning_experimental.html)
[Pytorch API](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/pruning/pytorch/pruning_facade.py#L43)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
:orphan:

.. _ug-KPI:
.. _ug-ResourceUtilization:


KPI
ResourceUtilization
================================
**Object to configure resources to use when searching for a configuration for the optimized model (such as in mixed-precision, pruning, etc.):**

.. autoclass:: model_compression_toolkit.core.KPI
.. autoclass:: model_compression_toolkit.core.ResourceUtilization

6 changes: 3 additions & 3 deletions docsrc/source/api/api_docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@ core
- :ref:`QuantizationConfig<ug-QuantizationConfig>`: Module to configure the quantization process.
- :ref:`QuantizationErrorMethod<ug-QuantizationErrorMethod>`: Select a method for quantization parameters' selection.
- :ref:`MixedPrecisionQuantizationConfig<ug-MixedPrecisionQuantizationConfig>`: Module to configure the quantization process when using mixed-precision PTQ.
- :ref:`KPI<ug-KPI>`: Module to configure resources to use when searching for a configuration for the optimized model.
- :ref:`ResourceUtilization<ug-ResourceUtilization>`: Module to configure resources to use when searching for a configuration for the optimized model.
- :ref:`MpDistanceWeighting<ug-MpDistanceWeighting>`: Mixed precision distance metric weighting methods.
- :ref:`network_editor<ug-network_editor>`: Module to modify the optimization process for troubleshooting.
- :ref:`FolderImageLoader<ug-FolderImageLoader>`: Class to use an images directory as a representative dataset.
- :ref:`pytorch_kpi_data<ug-pytorch_kpi_data>`: A function to compute KPI data that can be used to calculate the desired target KPI for PyTorch models.
- :ref:`keras_kpi_data<ug-keras_kpi_data>`: A function to compute KPI data that can be used to calculate the desired target KPI for Keras models.
- :ref:`pytorch_resource_utilization_data<ug-pytorch_resource_utilization_data>`: A function to compute Resource Utilization data that can be used to calculate the desired target resource utilization for PyTorch models.
- :ref:`keras_resource_utilization_data<ug-keras_resource_utilization_data>`: A function to compute Resource Utilization data that can be used to calculate the desired target resource utilization for Keras models.


data_generation
Expand Down
10 changes: 5 additions & 5 deletions docsrc/source/api/api_docs/methods/keras_kpi_data.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
:orphan:

.. _ug-keras_kpi_data:
.. _ug-keras_resource_utilization_data:


=======================================
Get KPI information for Keras Models
=======================================
=======================================================
Get Resource Utilization information for Keras Models
=======================================================

.. autofunction:: model_compression_toolkit.core.keras_kpi_data
.. autofunction:: model_compression_toolkit.core.keras_resource_utilization_data
10 changes: 5 additions & 5 deletions docsrc/source/api/api_docs/methods/pytorch_kpi_data.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
:orphan:

.. _ug-pytorch_kpi_data:
.. _ug-pytorch_resource_utilization_data:


=======================================
Get KPI information for PyTorch Models
=======================================
============================================================
Get Resource Utilization information for PyTorch Models
============================================================

.. autofunction:: model_compression_toolkit.core.pytorch_kpi_data
.. autofunction:: model_compression_toolkit.core.pytorch_resource_utilization_data
2 changes: 1 addition & 1 deletion model_compression_toolkit/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
DEC_RANGE_BOTTOM = 0.97
DEC_RANGE_UPPER = 1.03

# KPI computation parameters
# Resource utilization computation parameters
BITS_TO_BYTES = 8.0

# Default threshold for Softmax layer
Expand Down
6 changes: 3 additions & 3 deletions model_compression_toolkit/core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
from model_compression_toolkit.core.common.mixed_precision import mixed_precision_quantization_config
from model_compression_toolkit.core.common.quantization.quantization_config import QuantizationConfig, QuantizationErrorMethod, DEFAULTCONFIG
from model_compression_toolkit.core.common.quantization.core_config import CoreConfig
from model_compression_toolkit.core.common.mixed_precision.kpi_tools.kpi import KPI
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
from model_compression_toolkit.core.common.mixed_precision.mixed_precision_quantization_config import MixedPrecisionQuantizationConfig
from model_compression_toolkit.core.keras.kpi_data_facade import keras_kpi_data
from model_compression_toolkit.core.pytorch.kpi_data_facade import pytorch_kpi_data
from model_compression_toolkit.core.keras.resource_utilization_data_facade import keras_resource_utilization_data
from model_compression_toolkit.core.pytorch.resource_utilization_data_facade import pytorch_resource_utilization_data
from model_compression_toolkit.core.common.mixed_precision.distance_weighting import MpDistanceWeighting

Original file line number Diff line number Diff line change
Expand Up @@ -113,14 +113,14 @@ def __init__(self, origin_node: BaseNode, activation_class: type, fw_attr: dict)
class VirtualActivationWeightsNode(BaseNode):
"""
A node that represents a composition of pair of sequential activation node and weights (kernel) node.
This structure is used for mixed-precision search with bit-operation KPI.
This structure is used for mixed-precision search with bit-operation constraint.
The node's candidates are the cartesian product of both nodes' candidates.
Important: note that not like regular BaseNode or FunctionalNode, in VirtualActivationWeightsNode the activation
candidates config refer to the quantization config of the activation that precedes the linear operation! instead of
the output of the linear operation.
It is ok, since this node is not meant to be used in a graph for creating an actual model, but only a virtual
representation of the model's graph only for allowing to compute the bit-operations KPI in mixed-precision.
representation of the model's graph only for allowing to compute the bit-operations constraint in mixed-precision.
"""

def __init__(self,
Expand Down
112 changes: 0 additions & 112 deletions model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi.py

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit ed0d604

Please sign in to comment.