diff options
author | Mike Kelly <mike.kelly@arm.com> | 2021-06-27 22:39:21 +0100 |
---|---|---|
committer | mike.kelly <mike.kelly@arm.com> | 2021-06-30 10:38:30 +0000 |
commit | 0d677db72eb7945e304fc49cedf744f0c34ed330 (patch) | |
tree | ee85b7f50e4ad9d5e568b46df46777513a2197cd /src/armnn/Network.cpp | |
parent | 6f24b1aac9cbf5dfb3918cb59a7e903ddcec420e (diff) | |
download | armnn-0d677db72eb7945e304fc49cedf744f0c34ed330.tar.gz |
IVGCVSW-6114 Create multiple LoadedNetworks from one OptimizedNetwork
* Added IOptimizedNetwork constructor that takes another
IOptimizedNetwork and a ModelOptions.
* Changed PreCompiledLayer to use shared_ptr rather than unique_ptr
to store the PreCompiledObject (no interface changes).
* Added unit tests to ensure that PreCompiledLayer::Clone() clones
the pointer to the PreCompiledObject correctly.
Signed-off-by: Mike Kelly <mike.kelly@arm.com>
Change-Id: I3ef56055e0d189ffce9e651882d34da16c70a240
Diffstat (limited to 'src/armnn/Network.cpp')
-rw-r--r-- | src/armnn/Network.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index 71f19313b8..74c195f676 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -543,6 +543,8 @@ void INetwork::Destroy(INetwork* network) delete network; } +IOptimizedNetwork::IOptimizedNetwork(const IOptimizedNetwork& other, const ModelOptions& modelOptions) + : pOptimizedNetworkImpl(new OptimizedNetworkImpl(*other.pOptimizedNetworkImpl.get(), modelOptions)) {} IOptimizedNetwork::IOptimizedNetwork(std::unique_ptr<Graph> graph) : pOptimizedNetworkImpl(new OptimizedNetworkImpl(std::move(graph))) {} @@ -2621,6 +2623,13 @@ void NetworkImpl::ExecuteStrategy(IStrategy& strategy) const }; } +OptimizedNetworkImpl::OptimizedNetworkImpl(const OptimizedNetworkImpl& other, const ModelOptions& modelOptions) + : m_Graph(new Graph(*other.m_Graph.get())) + , m_Guid(profiling::ProfilingService::GetNextGuid()) + , m_ModelOptions(modelOptions) +{ +} + OptimizedNetworkImpl::OptimizedNetworkImpl(std::unique_ptr<Graph> graph) : m_Graph(std::move(graph)), m_Guid(profiling::ProfilingService::GetNextGuid()) { |