aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mlia/api.py18
-rw-r--r--src/mlia/cli/commands.py4
-rw-r--r--src/mlia/cli/options.py3
-rw-r--r--src/mlia/devices/cortexa/operators.py8
-rw-r--r--src/mlia/devices/ethosu/operators.py2
-rw-r--r--src/mlia/devices/tosa/operators.py8
6 files changed, 38 insertions, 5 deletions
diff --git a/src/mlia/api.py b/src/mlia/api.py
index fc61af0..6af7db2 100644
--- a/src/mlia/api.py
+++ b/src/mlia/api.py
@@ -13,11 +13,13 @@ from mlia.core.common import AdviceCategory
from mlia.core.context import ExecutionContext
from mlia.core.typing import PathOrFileLike
from mlia.devices.cortexa.advisor import configure_and_get_cortexa_advisor
+from mlia.devices.cortexa.operators import report as cortex_a_report
from mlia.devices.ethosu.advisor import configure_and_get_ethosu_advisor
+from mlia.devices.ethosu.operators import report as ethos_u_report
from mlia.devices.tosa.advisor import configure_and_get_tosa_advisor
+from mlia.devices.tosa.operators import report as tosa_report
from mlia.utils.filesystem import get_target
-
logger = logging.getLogger(__name__)
@@ -121,3 +123,17 @@ def get_advisor(
output,
**extra_args,
)
+
+
+def generate_supported_operators_report(target_profile: str) -> None:
+ """Generate a supported operators report based on given target profile."""
+ generators_map = {
+ "ethos-u55": ethos_u_report,
+ "ethos-u65": ethos_u_report,
+ "cortex-a": cortex_a_report,
+ "tosa": tosa_report,
+ }
+
+ target = get_target(target_profile)
+
+ generators_map[target]()
diff --git a/src/mlia/cli/commands.py b/src/mlia/cli/commands.py
index e044e1a..72ae4bb 100644
--- a/src/mlia/cli/commands.py
+++ b/src/mlia/cli/commands.py
@@ -23,11 +23,11 @@ from pathlib import Path
from typing import cast
from mlia.api import ExecutionContext
+from mlia.api import generate_supported_operators_report
from mlia.api import get_advice
from mlia.api import PathOrFileLike
from mlia.cli.config import get_installation_manager
from mlia.cli.options import parse_optimization_parameters
-from mlia.devices.ethosu.operators import generate_supported_operators_report
from mlia.utils.console import create_section_header
from mlia.utils.types import only_one_selected
@@ -129,7 +129,7 @@ def operators(
"model.tflite")
"""
if supported_ops_report:
- generate_supported_operators_report()
+ generate_supported_operators_report(target_profile)
logger.info("Report saved into SUPPORTED_OPS.md")
return
diff --git a/src/mlia/cli/options.py b/src/mlia/cli/options.py
index e5e85f0..b28fa8f 100644
--- a/src/mlia/cli/options.py
+++ b/src/mlia/cli/options.py
@@ -124,7 +124,8 @@ def add_custom_supported_operators_options(parser: argparse.ArgumentParser) -> N
default=False,
help=(
"Generate the SUPPORTED_OPS.md file in the "
- "current working directory and exit"
+ "current working directory and exit "
+ "(Ethos-U target profiles only)"
),
)
diff --git a/src/mlia/devices/cortexa/operators.py b/src/mlia/devices/cortexa/operators.py
index 8fd2571..d46b107 100644
--- a/src/mlia/devices/cortexa/operators.py
+++ b/src/mlia/devices/cortexa/operators.py
@@ -29,3 +29,11 @@ def get_cortex_a_compatibility_info(
) -> CortexACompatibilityInfo | None:
"""Return list of model's operators."""
return None
+
+
+def report() -> None:
+ """Generate supported operators report."""
+ raise Exception(
+ "Generating a supported operators report is not "
+ "currently supported with Cortex-A target profile."
+ )
diff --git a/src/mlia/devices/ethosu/operators.py b/src/mlia/devices/ethosu/operators.py
index ff0d99f..1a4ce8d 100644
--- a/src/mlia/devices/ethosu/operators.py
+++ b/src/mlia/devices/ethosu/operators.py
@@ -9,6 +9,6 @@ from mlia.tools import vela_wrapper
logger = logging.getLogger(__name__)
-def generate_supported_operators_report() -> None:
+def report() -> None:
"""Generate supported operators report."""
vela_wrapper.generate_supported_operators_report()
diff --git a/src/mlia/devices/tosa/operators.py b/src/mlia/devices/tosa/operators.py
index 6cfb87f..03f6fb8 100644
--- a/src/mlia/devices/tosa/operators.py
+++ b/src/mlia/devices/tosa/operators.py
@@ -68,3 +68,11 @@ def get_tosa_checker(tflite_model_path: PathOrFileLike) -> TOSAChecker | None:
checker = tc.TOSAChecker(str(tflite_model_path))
return cast(TOSAChecker, checker)
+
+
+def report() -> None:
+ """Generate supported operators report."""
+ raise Exception(
+ "Generating a supported operators report is not "
+ "currently supported with TOSA target profile."
+ )