diff options
author | Ferran Balaguer <ferran.balaguer@arm.com> | 2019-07-10 12:43:58 +0100 |
---|---|---|
committer | Ferran Balaguer <ferran.balaguer@arm.com> | 2019-07-16 11:57:58 +0100 |
commit | f54c9462415850a3e0f0159a619c4ee90fe3cfc9 (patch) | |
tree | a670ac09d24aa7d163f835ba6c8bc78574bdcea6 | |
parent | b5433ee34fd9d38c1453dc062b36348d65677002 (diff) | |
download | armnn-f54c9462415850a3e0f0159a619c4ee90fe3cfc9.tar.gz |
IVGCVSW-3478 Refactor armnn to make new Lstm parameters available in android-nn-driver through ILayerSupport.h
!android-nn-driver:1506
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
Change-Id: Ia9904bd355c72a84f07d0a26faf143a4d6aead9c
-rw-r--r-- | Android.mk | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | include/armnn/ArmNN.hpp | 1 | ||||
-rw-r--r-- | include/armnn/BackendHelper.hpp | 17 | ||||
-rw-r--r-- | src/armnn/BackendHelper.cpp | 27 |
5 files changed, 46 insertions, 1 deletions
diff --git a/Android.mk b/Android.mk index b9cc6e50e2..8ad790e0a0 100644 --- a/Android.mk +++ b/Android.mk @@ -137,6 +137,7 @@ LOCAL_SRC_FILES := \ src/armnn/layers/SubtractionLayer.cpp \ src/armnn/layers/SwitchLayer.cpp \ src/armnn/layers/TransposeConvolution2dLayer.cpp \ + src/armnn/BackendHelper.cpp \ src/armnn/Descriptors.cpp \ src/armnn/Exceptions.cpp \ src/armnn/Graph.cpp \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c163dc3ef..dbb212ff73 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -323,6 +323,7 @@ list(APPEND armnn_sources src/armnn/layers/TransposeConvolution2dLayer.cpp src/armnn/layers/TransposeConvolution2dLayer.hpp src/armnn/BackendSettings.hpp + src/armnn/BackendHelper.cpp src/armnn/CompatibleTypes.hpp src/armnn/Descriptors.cpp src/armnn/DeviceSpec.hpp diff --git a/include/armnn/ArmNN.hpp b/include/armnn/ArmNN.hpp index de5ea3e1c1..884a3ca844 100644 --- a/include/armnn/ArmNN.hpp +++ b/include/armnn/ArmNN.hpp @@ -9,7 +9,6 @@ #include "Exceptions.hpp" #include "INetwork.hpp" #include "IRuntime.hpp" -#include "LayerSupport.hpp" #include "LstmParams.hpp" #include "Optional.hpp" #include "Tensor.hpp" diff --git a/include/armnn/BackendHelper.hpp b/include/armnn/BackendHelper.hpp new file mode 100644 index 0000000000..6a6c8b9c15 --- /dev/null +++ b/include/armnn/BackendHelper.hpp @@ -0,0 +1,17 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <armnn/BackendId.hpp> +#include <armnn/ILayerSupport.hpp> + +namespace armnn +{ + +/// Convenience function to retrieve the ILayerSupport for a backend +std::shared_ptr<ILayerSupport> GetILayerSupportByBackendId(const armnn::BackendId& backend); + +} diff --git a/src/armnn/BackendHelper.cpp b/src/armnn/BackendHelper.cpp new file mode 100644 index 0000000000..2514038863 --- /dev/null +++ b/src/armnn/BackendHelper.cpp @@ -0,0 +1,27 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include <armnn/BackendHelper.hpp> +#include "backendsCommon/BackendRegistry.hpp" +#include "backendsCommon/IBackendInternal.hpp" + +namespace armnn +{ + +std::shared_ptr<ILayerSupport> GetILayerSupportByBackendId(const armnn::BackendId& backend) +{ + BackendRegistry& backendRegistry = armnn::BackendRegistryInstance(); + + if (!backendRegistry.IsBackendRegistered(backend)) + { + return nullptr; + } + + auto factoryFunc = backendRegistry.GetFactory(backend); + auto backendObject = factoryFunc(); + return backendObject->GetLayerSupport(); +} + +} |