aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mlia/backend/armnn_tflite_delegate/__init__.py1
-rw-r--r--src/mlia/backend/config.py5
-rw-r--r--src/mlia/backend/corstone/__init__.py11
-rw-r--r--src/mlia/backend/manager.py8
-rw-r--r--src/mlia/backend/tosa_checker/__init__.py2
-rw-r--r--src/mlia/backend/vela/__init__.py1
-rw-r--r--tests/test_backend_config.py5
-rw-r--r--tests/test_target_config.py1
8 files changed, 25 insertions, 9 deletions
diff --git a/src/mlia/backend/armnn_tflite_delegate/__init__.py b/src/mlia/backend/armnn_tflite_delegate/__init__.py
index 66e5a2a..c190088 100644
--- a/src/mlia/backend/armnn_tflite_delegate/__init__.py
+++ b/src/mlia/backend/armnn_tflite_delegate/__init__.py
@@ -15,6 +15,7 @@ registry.register(
supported_advice=[AdviceCategory.COMPATIBILITY],
supported_systems=None,
backend_type=BackendType.BUILTIN,
+ installation=None,
),
pretty_name=cast(str, ARMNN_TFLITE_DELEGATE["backend"]),
)
diff --git a/src/mlia/backend/config.py b/src/mlia/backend/config.py
index 8d14b28..2e34ffb 100644
--- a/src/mlia/backend/config.py
+++ b/src/mlia/backend/config.py
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
+# SPDX-FileCopyrightText: Copyright 2022-2023, Arm Limited and/or its affiliates.
# SPDX-License-Identifier: Apache-2.0
"""Backend config module."""
from __future__ import annotations
@@ -8,6 +8,7 @@ from enum import auto
from enum import Enum
from typing import cast
+from mlia.backend.install import Installation
from mlia.core.common import AdviceCategory
@@ -59,11 +60,13 @@ class BackendConfiguration:
supported_advice: list[AdviceCategory],
supported_systems: list[System] | None,
backend_type: BackendType,
+ installation: Installation | None,
) -> None:
"""Set up basic information about the backend."""
self.supported_advice = supported_advice
self.supported_systems = supported_systems
self.type = backend_type
+ self.installation = installation
def __str__(self) -> str:
"""List supported advice."""
diff --git a/src/mlia/backend/corstone/__init__.py b/src/mlia/backend/corstone/__init__.py
index 5aa688b..7575ceb 100644
--- a/src/mlia/backend/corstone/__init__.py
+++ b/src/mlia/backend/corstone/__init__.py
@@ -4,19 +4,26 @@
from mlia.backend.config import BackendConfiguration
from mlia.backend.config import BackendType
from mlia.backend.config import System
+from mlia.backend.corstone.install import get_corstone_300_installation
+from mlia.backend.corstone.install import get_corstone_310_installation
from mlia.backend.registry import registry
from mlia.core.common import AdviceCategory
# List of mutually exclusive Corstone backends ordered by priority
-CORSTONE_PRIORITY = ("Corstone-310", "Corstone-300")
+CORSTONE_PRIORITY = {
+ "Corstone-310": get_corstone_310_installation(),
+ "Corstone-300": get_corstone_300_installation(),
+}
-for corstone_name in CORSTONE_PRIORITY:
+
+for corstone_name, installation in CORSTONE_PRIORITY.items():
registry.register(
corstone_name.lower(),
BackendConfiguration(
supported_advice=[AdviceCategory.PERFORMANCE, AdviceCategory.OPTIMIZATION],
supported_systems=[System.LINUX_AMD64],
backend_type=BackendType.CUSTOM,
+ installation=installation,
),
pretty_name=corstone_name,
)
diff --git a/src/mlia/backend/manager.py b/src/mlia/backend/manager.py
index d953b2d..5a60f95 100644
--- a/src/mlia/backend/manager.py
+++ b/src/mlia/backend/manager.py
@@ -10,13 +10,11 @@ from pathlib import Path
from typing import Callable
from mlia.backend.config import BackendType
-from mlia.backend.corstone.install import get_corstone_installations
from mlia.backend.install import DownloadAndInstall
from mlia.backend.install import Installation
from mlia.backend.install import InstallationType
from mlia.backend.install import InstallFromPath
from mlia.backend.registry import registry as backend_registry
-from mlia.backend.tosa_checker.install import get_tosa_backend_installation
from mlia.core.errors import ConfigurationError
from mlia.core.errors import InternalError
from mlia.utils.misc import yes
@@ -277,9 +275,9 @@ class DefaultInstallationManager(InstallationManager, InstallationFiltersMixin):
def get_installation_manager(noninteractive: bool = False) -> InstallationManager:
"""Return installation manager."""
- backends = get_corstone_installations()
- backends.append(get_tosa_backend_installation())
-
+ backends = [
+ cfg.installation for cfg in backend_registry.items.values() if cfg.installation
+ ]
return DefaultInstallationManager(backends, noninteractive=noninteractive)
diff --git a/src/mlia/backend/tosa_checker/__init__.py b/src/mlia/backend/tosa_checker/__init__.py
index d2364cb..08e44d4 100644
--- a/src/mlia/backend/tosa_checker/__init__.py
+++ b/src/mlia/backend/tosa_checker/__init__.py
@@ -5,6 +5,7 @@ from mlia.backend.config import BackendConfiguration
from mlia.backend.config import BackendType
from mlia.backend.config import System
from mlia.backend.registry import registry
+from mlia.backend.tosa_checker.install import get_tosa_backend_installation
from mlia.core.common import AdviceCategory
registry.register(
@@ -13,6 +14,7 @@ registry.register(
supported_advice=[AdviceCategory.COMPATIBILITY],
supported_systems=[System.LINUX_AMD64],
backend_type=BackendType.WHEEL,
+ installation=get_tosa_backend_installation(),
),
pretty_name="TOSA Checker",
)
diff --git a/src/mlia/backend/vela/__init__.py b/src/mlia/backend/vela/__init__.py
index 7325630..b0788b0 100644
--- a/src/mlia/backend/vela/__init__.py
+++ b/src/mlia/backend/vela/__init__.py
@@ -22,6 +22,7 @@ registry.register(
System.WINDOWS_AARCH64,
],
backend_type=BackendType.BUILTIN,
+ installation=None,
),
pretty_name="Vela",
)
diff --git a/tests/test_backend_config.py b/tests/test_backend_config.py
index 700534f..bdea03e 100644
--- a/tests/test_backend_config.py
+++ b/tests/test_backend_config.py
@@ -20,7 +20,10 @@ def test_system() -> None:
def test_backend_config() -> None:
"""Test the class 'BackendConfiguration'."""
cfg = BackendConfiguration(
- [AdviceCategory.COMPATIBILITY], [System.CURRENT], BackendType.CUSTOM
+ [AdviceCategory.COMPATIBILITY],
+ [System.CURRENT],
+ BackendType.CUSTOM,
+ None,
)
assert cfg.supported_advice == [AdviceCategory.COMPATIBILITY]
assert cfg.supported_systems == [System.CURRENT]
diff --git a/tests/test_target_config.py b/tests/test_target_config.py
index 368d394..8055af0 100644
--- a/tests/test_target_config.py
+++ b/tests/test_target_config.py
@@ -112,6 +112,7 @@ def test_target_info(
[AdviceCategory.COMPATIBILITY],
[System.CURRENT],
BackendType.BUILTIN,
+ None,
),
)
monkeypatch.setattr("mlia.target.config.backend_registry", backend_registry)