aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Verhaard <louis.verhaard@arm.com>2020-11-27 08:24:03 +0100
committerLouis Verhaard <louis.verhaard@arm.com>2020-11-27 10:37:43 +0100
commit061eeb4c6a1af7780992ae6d3967905b03e2433a (patch)
treedd720db6124b1e1b1a53106efa06f0e8d7c6598a
parentd2665804871d76a16d5962952ba95500e3977c56 (diff)
downloadethos-u-vela-061eeb4c6a1af7780992ae6d3967905b03e2433a.tar.gz
MLBEDSW-3424 Arch cache
Default arch instances are cached as they are expensive to create, and they are created often when using the external APIs. Change-Id: I16802fa767e6750da4227c6266d7c4453c047001 Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
-rw-r--r--ethosu/vela/architecture_features.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/ethosu/vela/architecture_features.py b/ethosu/vela/architecture_features.py
index 64005bf..f7dcc8c 100644
--- a/ethosu/vela/architecture_features.py
+++ b/ethosu/vela/architecture_features.py
@@ -802,16 +802,22 @@ class ArchitectureFeatures:
return result
+# Cache for default arch instances, as these are expensive to create
+default_arch_cache = dict()
+
+
def create_default_arch(accelerator: Accelerator) -> ArchitectureFeatures:
"""Creates architecture features object using default settings"""
- return ArchitectureFeatures(
- vela_config_files=None,
- accelerator_config=accelerator.value,
- system_config=ArchitectureFeatures.DEFAULT_CONFIG,
- memory_mode=ArchitectureFeatures.DEFAULT_CONFIG,
- override_block_config=None,
- block_config_limit=None,
- max_blockdep=ArchitectureFeatures.MAX_BLOCKDEP,
- weight_estimation_scaling=1.0,
- verbose_config=False,
- )
+ if accelerator not in default_arch_cache:
+ default_arch_cache[accelerator] = ArchitectureFeatures(
+ vela_config_files=None,
+ accelerator_config=accelerator.value,
+ system_config=ArchitectureFeatures.DEFAULT_CONFIG,
+ memory_mode=ArchitectureFeatures.DEFAULT_CONFIG,
+ override_block_config=None,
+ block_config_limit=None,
+ max_blockdep=ArchitectureFeatures.MAX_BLOCKDEP,
+ weight_estimation_scaling=1.0,
+ verbose_config=False,
+ )
+ return default_arch_cache[accelerator]