diff options
Diffstat (limited to 'src/mlia/devices/cortexa/data_analysis.py')
-rw-r--r-- | src/mlia/devices/cortexa/data_analysis.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/mlia/devices/cortexa/data_analysis.py b/src/mlia/devices/cortexa/data_analysis.py new file mode 100644 index 0000000..dff95ce --- /dev/null +++ b/src/mlia/devices/cortexa/data_analysis.py @@ -0,0 +1,38 @@ +# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates. +# SPDX-License-Identifier: Apache-2.0 +"""Cortex-A data analysis module.""" +from dataclasses import dataclass +from functools import singledispatchmethod + +from mlia.core.common import DataItem +from mlia.core.data_analysis import Fact +from mlia.core.data_analysis import FactExtractor +from mlia.devices.cortexa.operators import CortexACompatibilityInfo + + +class CortexADataAnalyzer(FactExtractor): + """Cortex-A data analyzer.""" + + @singledispatchmethod + def analyze_data(self, data_item: DataItem) -> None: + """Analyse the data.""" + + @analyze_data.register + def analyze_operator_compatibility( + self, data_item: CortexACompatibilityInfo + ) -> None: + """Analyse operator compatibility information.""" + if data_item.cortex_a_compatible: + self.add_fact(ModelIsCortexACompatible()) + else: + self.add_fact(ModelIsNotCortexACompatible()) + + +@dataclass +class ModelIsCortexACompatible(Fact): + """Model is completely compatible with Cortex-A.""" + + +@dataclass +class ModelIsNotCortexACompatible(Fact): + """Model is not compatible with Cortex-A.""" |