diff options
author | Louis Verhaard <louis.verhaard@arm.com> | 2020-11-27 08:24:03 +0100 |
---|---|---|
committer | Louis Verhaard <louis.verhaard@arm.com> | 2020-11-27 10:37:43 +0100 |
commit | 061eeb4c6a1af7780992ae6d3967905b03e2433a (patch) | |
tree | dd720db6124b1e1b1a53106efa06f0e8d7c6598a | |
parent | d2665804871d76a16d5962952ba95500e3977c56 (diff) | |
download | ethos-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.py | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/ethosu/vela/architecture_features.py b/ethosu/vela/architecture_features.py index 64005bf5..f7dcc8ce 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] |