diff options
author | Dmitrii Agibov <dmitrii.agibov@arm.com> | 2022-09-08 14:24:39 +0100 |
---|---|---|
committer | Dmitrii Agibov <dmitrii.agibov@arm.com> | 2022-09-09 17:21:48 +0100 |
commit | f5b293d0927506c2a979a091bf0d07ecc78fa181 (patch) | |
tree | 4de585b7cb6ed34da8237063752270189a730a41 /src/mlia/devices/ethosu/performance.py | |
parent | cde0c6ee140bd108849bff40467d8f18ffc332ef (diff) | |
download | mlia-f5b293d0927506c2a979a091bf0d07ecc78fa181.tar.gz |
MLIA-386 Simplify typing in the source code
- Enable deferred annotations evaluation
- Use builtin types for type hints whenever possible
- Use | syntax for union types
- Rename mlia.core._typing into mlia.core.typing
Change-Id: I3f6ffc02fa069c589bdd9e8bddbccd504285427a
Diffstat (limited to 'src/mlia/devices/ethosu/performance.py')
-rw-r--r-- | src/mlia/devices/ethosu/performance.py | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/mlia/devices/ethosu/performance.py b/src/mlia/devices/ethosu/performance.py index a73045a..e89a65a 100644 --- a/src/mlia/devices/ethosu/performance.py +++ b/src/mlia/devices/ethosu/performance.py @@ -1,13 +1,12 @@ # SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates. # SPDX-License-Identifier: Apache-2.0 """Performance estimation.""" +from __future__ import annotations + import logging from dataclasses import dataclass from enum import Enum from pathlib import Path -from typing import List -from typing import Optional -from typing import Tuple from typing import Union import mlia.backend.manager as backend_manager @@ -49,11 +48,11 @@ class MemorySizeType(Enum): class MemoryUsage: """Memory usage metrics.""" - sram_memory_area_size: Union[int, float] - dram_memory_area_size: Union[int, float] - unknown_memory_area_size: Union[int, float] - on_chip_flash_memory_area_size: Union[int, float] - off_chip_flash_memory_area_size: Union[int, float] + sram_memory_area_size: int | float + dram_memory_area_size: int | float + unknown_memory_area_size: int | float + on_chip_flash_memory_area_size: int | float + off_chip_flash_memory_area_size: int | float memory_size_type: MemorySizeType = MemorySizeType.BYTES _default_columns = [ @@ -64,7 +63,7 @@ class MemoryUsage: "Off chip flash used", ] - def in_kilobytes(self) -> "MemoryUsage": + def in_kilobytes(self) -> MemoryUsage: """Return memory usage with values in kilobytes.""" if self.memory_size_type == MemorySizeType.KILOBYTES: return self @@ -91,10 +90,10 @@ class PerformanceMetrics: """Performance metrics.""" device: EthosUConfiguration - npu_cycles: Optional[NPUCycles] - memory_usage: Optional[MemoryUsage] + npu_cycles: NPUCycles | None + memory_usage: MemoryUsage | None - def in_kilobytes(self) -> "PerformanceMetrics": + def in_kilobytes(self) -> PerformanceMetrics: """Return metrics with memory usage in KiB.""" if self.memory_usage is None: return PerformanceMetrics(self.device, self.npu_cycles, self.memory_usage) @@ -109,8 +108,8 @@ class OptimizationPerformanceMetrics: """Optimization performance metrics.""" original_perf_metrics: PerformanceMetrics - optimizations_perf_metrics: List[ - Tuple[List[OptimizationSettings], PerformanceMetrics] + optimizations_perf_metrics: list[ + tuple[list[OptimizationSettings], PerformanceMetrics] ] @@ -124,7 +123,7 @@ class VelaPerformanceEstimator( self.context = context self.device = device - def estimate(self, model: Union[Path, ModelConfiguration]) -> MemoryUsage: + def estimate(self, model: Path | ModelConfiguration) -> MemoryUsage: """Estimate performance.""" logger.info("Getting the memory usage metrics ...") @@ -160,7 +159,7 @@ class CorstonePerformanceEstimator( self.device = device self.backend = backend - def estimate(self, model: Union[Path, ModelConfiguration]) -> NPUCycles: + def estimate(self, model: Path | ModelConfiguration) -> NPUCycles: """Estimate performance.""" logger.info("Getting the performance metrics for '%s' ...", self.backend) logger.info( @@ -212,7 +211,7 @@ class EthosUPerformanceEstimator( self, context: Context, device: EthosUConfiguration, - backends: Optional[List[str]] = None, + backends: list[str] | None = None, ) -> None: """Init performance estimator.""" self.context = context @@ -228,7 +227,7 @@ class EthosUPerformanceEstimator( ) self.backends = set(backends) - def estimate(self, model: Union[Path, ModelConfiguration]) -> PerformanceMetrics: + def estimate(self, model: Path | ModelConfiguration) -> PerformanceMetrics: """Estimate performance.""" model_path = ( Path(model.model_path) if isinstance(model, ModelConfiguration) else model |