aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/target/tosa/data_analysis.py
diff options
context:
space:
mode:
authorDmitrii Agibov <dmitrii.agibov@arm.com>2022-11-18 17:21:09 +0000
committerDmitrii Agibov <dmitrii.agibov@arm.com>2022-11-29 14:44:13 +0000
commit6a88ee5315b4ce5b023370c1e55e48bf9f2b6f67 (patch)
tree88edabf90228724f4fe2944b0ab23859d824a880 /src/mlia/target/tosa/data_analysis.py
parenta34163c9d9a5cc0416bcaea2ebf8383bda9d505c (diff)
downloadmlia-6a88ee5315b4ce5b023370c1e55e48bf9f2b6f67.tar.gz
Rename modules
- Rename module "mlia.devices" into "mlia.target" - Rename module "mlia.target.ethosu" into "mlia.target.ethos_u" - Rename module "mlia.target.cortexa" into "mlia.target.cortex_a" - Rename and update tests Change-Id: I6dca7c8646d881f739fb6b5914d1cc7e45e63dc2
Diffstat (limited to 'src/mlia/target/tosa/data_analysis.py')
-rw-r--r--src/mlia/target/tosa/data_analysis.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/mlia/target/tosa/data_analysis.py b/src/mlia/target/tosa/data_analysis.py
new file mode 100644
index 0000000..7cbd61d
--- /dev/null
+++ b/src/mlia/target/tosa/data_analysis.py
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
+# SPDX-License-Identifier: Apache-2.0
+"""TOSA data analysis module."""
+from dataclasses import dataclass
+from functools import singledispatchmethod
+
+from mlia.backend.tosa_checker.compat import TOSACompatibilityInfo
+from mlia.core.common import DataItem
+from mlia.core.data_analysis import Fact
+from mlia.core.data_analysis import FactExtractor
+
+
+@dataclass
+class ModelIsTOSACompatible(Fact):
+ """Model is completely TOSA compatible."""
+
+
+@dataclass
+class ModelIsNotTOSACompatible(Fact):
+ """Model is not TOSA compatible."""
+
+
+class TOSADataAnalyzer(FactExtractor):
+ """TOSA data analyzer."""
+
+ @singledispatchmethod
+ def analyze_data(self, data_item: DataItem) -> None: # type: ignore
+ """Analyse the data."""
+
+ @analyze_data.register
+ def analyze_tosa_compatibility(self, data_item: TOSACompatibilityInfo) -> None:
+ """Analyse TOSA compatibility information."""
+ if data_item.tosa_compatible:
+ self.add_fact(ModelIsTOSACompatible())
+ else:
+ self.add_fact(ModelIsNotTOSACompatible())