diff options
author | Benjamin Klimczak <benjamin.klimczak@arm.com> | 2023-02-02 14:02:05 +0000 |
---|---|---|
committer | Benjamin Klimczak <benjamin.klimczak@arm.com> | 2023-02-10 13:45:18 +0000 |
commit | 7a661257b6adad0c8f53e32b42ced56a1e7d952f (patch) | |
tree | 938ad8578c5b9edc0573e810ce64ce0a5bda3d8c /src/mlia/backend | |
parent | 50271dee0a84bfc481ce798184f07b5b0b4bc64d (diff) | |
download | mlia-7a661257b6adad0c8f53e32b42ced56a1e7d952f.tar.gz |
MLIA-769 Expand use of target/backend registries
- Use the target/backend registries to avoid hard-coded names.
- Cache target profiles to avoid re-loading them
Change-Id: I474b7c9ef23894e1d8a3ea06d13a37652054c62e
Diffstat (limited to 'src/mlia/backend')
-rw-r--r-- | src/mlia/backend/corstone/__init__.py | 30 | ||||
-rw-r--r-- | src/mlia/backend/manager.py | 13 |
2 files changed, 26 insertions, 17 deletions
diff --git a/src/mlia/backend/corstone/__init__.py b/src/mlia/backend/corstone/__init__.py index 36f74ee..b59ab65 100644 --- a/src/mlia/backend/corstone/__init__.py +++ b/src/mlia/backend/corstone/__init__.py @@ -7,24 +7,20 @@ from mlia.backend.config import System from mlia.backend.registry import registry from mlia.core.common import AdviceCategory -registry.register( - "Corstone-300", - BackendConfiguration( - supported_advice=[AdviceCategory.PERFORMANCE, AdviceCategory.OPTIMIZATION], - supported_systems=[System.LINUX_AMD64], - backend_type=BackendType.CUSTOM, - ), -) -registry.register( - "Corstone-310", - BackendConfiguration( - supported_advice=[AdviceCategory.PERFORMANCE, AdviceCategory.OPTIMIZATION], - supported_systems=[System.LINUX_AMD64], - backend_type=BackendType.CUSTOM, - ), -) +# List of mutually exclusive Corstone backends ordered by priority +CORSTONE_PRIORITY = ("Corstone-310", "Corstone-300") + +for corstone_name in CORSTONE_PRIORITY: + registry.register( + corstone_name, + BackendConfiguration( + supported_advice=[AdviceCategory.PERFORMANCE, AdviceCategory.OPTIMIZATION], + supported_systems=[System.LINUX_AMD64], + backend_type=BackendType.CUSTOM, + ), + ) def is_corstone_backend(backend_name: str) -> bool: """Check if backend belongs to Corstone.""" - return backend_name in ["Corstone-300", "Corstone-310"] + return backend_name in CORSTONE_PRIORITY diff --git a/src/mlia/backend/manager.py b/src/mlia/backend/manager.py index b0fa919..d953b2d 100644 --- a/src/mlia/backend/manager.py +++ b/src/mlia/backend/manager.py @@ -9,11 +9,13 @@ from abc import abstractmethod 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 @@ -279,3 +281,14 @@ def get_installation_manager(noninteractive: bool = False) -> InstallationManage backends.append(get_tosa_backend_installation()) return DefaultInstallationManager(backends, noninteractive=noninteractive) + + +def get_available_backends() -> list[str]: + """Return list of the available backends.""" + manager = get_installation_manager() + available_backends = [ + backend + for backend, cfg in backend_registry.items.items() + if cfg.type == BackendType.BUILTIN or manager.backend_installed(backend) + ] + return available_backends |