aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/devices/ethosu/config.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/devices/ethosu/config.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/devices/ethosu/config.py')
-rw-r--r--src/mlia/devices/ethosu/config.py90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/mlia/devices/ethosu/config.py b/src/mlia/devices/ethosu/config.py
deleted file mode 100644
index f2e867e..0000000
--- a/src/mlia/devices/ethosu/config.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
-# SPDX-License-Identifier: Apache-2.0
-"""Ethos-U configuration."""
-from __future__ import annotations
-
-import logging
-from typing import Any
-
-from mlia.backend.vela.compiler import resolve_compiler_config
-from mlia.backend.vela.compiler import VelaCompilerOptions
-from mlia.devices.config import IPConfiguration
-from mlia.utils.filesystem import get_profile
-from mlia.utils.filesystem import get_vela_config
-
-
-logger = logging.getLogger(__name__)
-
-
-class EthosUConfiguration(IPConfiguration):
- """Ethos-U configuration."""
-
- def __init__(self, target_profile: str) -> None:
- """Init Ethos-U target configuration."""
- target_data = get_profile(target_profile)
- _check_target_data_complete(target_data)
-
- target = target_data["target"]
- super().__init__(target)
-
- mac = target_data["mac"]
- _check_device_options_valid(target, mac)
-
- self.mac = mac
- self.compiler_options = VelaCompilerOptions(
- system_config=target_data["system_config"],
- memory_mode=target_data["memory_mode"],
- config_files=str(get_vela_config()),
- accelerator_config=f"{self.target}-{mac}", # type: ignore
- )
-
- @property
- def resolved_compiler_config(self) -> dict[str, Any]:
- """Resolve compiler configuration."""
- return resolve_compiler_config(self.compiler_options)
-
- def __str__(self) -> str:
- """Return string representation."""
- return (
- f"Ethos-U target={self.target} "
- f"mac={self.mac} "
- f"compiler_options={self.compiler_options}"
- )
-
- def __repr__(self) -> str:
- """Return string representation."""
- return f"<Ethos-U configuration target={self.target}>"
-
-
-def get_target(target_profile: str) -> EthosUConfiguration:
- """Get target instance based on provided params."""
- if not target_profile:
- raise Exception("No target profile given")
-
- return EthosUConfiguration(target_profile)
-
-
-def _check_target_data_complete(target_data: dict[str, Any]) -> None:
- """Check if profile contains all needed data."""
- mandatory_keys = {"target", "mac", "system_config", "memory_mode"}
- missing_keys = sorted(mandatory_keys - target_data.keys())
-
- if missing_keys:
- raise Exception(f"Mandatory fields missing from target profile: {missing_keys}")
-
-
-def _check_device_options_valid(target: str, mac: int) -> None:
- """Check if mac is valid for selected device."""
- target_mac_ranges = {
- "ethos-u55": [32, 64, 128, 256],
- "ethos-u65": [256, 512],
- }
-
- if target not in target_mac_ranges:
- raise Exception(f"Unsupported target: {target}")
-
- target_mac_range = target_mac_ranges[target]
- if mac not in target_mac_range:
- raise Exception(
- f"Mac value for selected device should be in {target_mac_range}"
- )