diff options
author | Cathal Corbett <cathal.corbett@arm.com> | 2021-12-13 13:03:22 +0000 |
---|---|---|
committer | Cathal Corbett <cathal.corbett@arm.com> | 2021-12-14 14:09:55 +0000 |
commit | 18655b8d326f6109c6fedacf42b46dc4bc942324 (patch) | |
tree | 79a4cff6e46ea41f404a693ac3a9de2787498f06 /src/armnn/Network.cpp | |
parent | a097d2a0ed8e30d5aaf6d29ec18d0c39201b7b67 (diff) | |
download | armnn-18655b8d326f6109c6fedacf42b46dc4bc942324.tar.gz |
IVGCVSW-6630 Add new method AddPrecompiledLayer() to INetwork
* Add new method AddPrecompiledLayer() to INetwork
with Comments noting it is for backend users.
* Added unit test to SubgraphViewTests.cpp.
* Bug fix and code refactor in Graph.cpp specifically around
Graph::SubstituteSubgraph(SubgraphView& subgraph,
IConnectableLayer* substituteLayer)
Change-Id: If2d816e5109e48ce920bf92d8823b39130c23a16
Signed-off-by: Cathal Corbett <cathal.corbett@arm.com>
Diffstat (limited to 'src/armnn/Network.cpp')
-rw-r--r-- | src/armnn/Network.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index 54d9ae2028..c6f3f914b5 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -214,6 +214,13 @@ IConnectableLayer* INetwork::AddPooling3dLayer(const Pooling3dDescriptor& poolin return pNetworkImpl->AddPooling3dLayer(pooling3dDescriptor, name); } +IConnectableLayer* INetwork::AddPrecompiledLayer(const PreCompiledDescriptor& preCompiledDescriptor, + CompiledBlobPtr& compiledBlobPtr, + const Optional<BackendId>& backend) +{ + return pNetworkImpl->AddPrecompiledLayer(preCompiledDescriptor, compiledBlobPtr, backend); +} + IConnectableLayer* INetwork::AddActivationLayer(const ActivationDescriptor& activationDescriptor, const char* name) { @@ -2763,6 +2770,30 @@ IConnectableLayer* NetworkImpl::AddUnidirectionalSequenceLstmLayer( return layer; } +IConnectableLayer* NetworkImpl::AddPrecompiledLayer(const PreCompiledDescriptor& preCompiledDescriptor, + CompiledBlobPtr& compiledBlobPtr, + const Optional<BackendId>& backend) +{ + // Method use is for backend users. + const auto layer = m_Graph->AddLayer<PreCompiledLayer>(preCompiledDescriptor, "pre-compiled"); + + // Assign the pre-compiled object to layer + // Pass only one compiled network, Arm NN does not handle multiple + // pre-compiled objects in a single pre-compiled layer currently + layer->SetPreCompiledObject(std::move(compiledBlobPtr)); + + if (backend.has_value()) + { + layer->SetBackendId(backend.value()); + } + else + { + layer->SetBackendId(layer->GetBackendHint().value()); + } + + return layer; +} + ARMNN_NO_DEPRECATE_WARN_BEGIN void NetworkImpl::Accept(ILayerVisitor& visitor) const { |