aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/architecture_features.py
diff options
context:
space:
mode:
Diffstat (limited to 'ethosu/vela/architecture_features.py')
-rw-r--r--ethosu/vela/architecture_features.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/ethosu/vela/architecture_features.py b/ethosu/vela/architecture_features.py
index 7b6c3bed..18846cfd 100644
--- a/ethosu/vela/architecture_features.py
+++ b/ethosu/vela/architecture_features.py
@@ -21,6 +21,7 @@ from configparser import ConfigParser
import numpy as np
+from .api import NpuAccelerator
from .errors import CliOptionError
from .errors import ConfigOptionError
from .ethos_u55_regs.ethos_u55_regs import resampling_mode
@@ -131,6 +132,20 @@ class Accelerator(enum.Enum):
def member_list(cls):
return [e.value for e in cls]
+ @classmethod
+ def from_npu_accelerator(cls, npu_accelerator: NpuAccelerator) -> "Accelerator":
+ """Converts the given public API object to Accelerator (used internally)"""
+ accelerator_map = {
+ NpuAccelerator.Ethos_U55_32: cls.Ethos_U55_32,
+ NpuAccelerator.Ethos_U55_64: cls.Ethos_U55_64,
+ NpuAccelerator.Ethos_U55_128: cls.Ethos_U55_128,
+ NpuAccelerator.Ethos_U55_256: cls.Ethos_U55_256,
+ NpuAccelerator.Ethos_U65_256: cls.Ethos_U65_256,
+ NpuAccelerator.Ethos_U65_512: cls.Ethos_U65_512,
+ }
+ assert npu_accelerator in accelerator_map, f"Unsupported accelerator {npu_accelerator}"
+ return accelerator_map[npu_accelerator]
+
@enum.unique
class MemPort(enum.Enum):