aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerran Balaguer <ferran.balaguer@arm.com>2019-07-10 12:43:58 +0100
committerFerran Balaguer <ferran.balaguer@arm.com>2019-07-16 11:57:58 +0100
commitf54c9462415850a3e0f0159a619c4ee90fe3cfc9 (patch)
treea670ac09d24aa7d163f835ba6c8bc78574bdcea6
parentb5433ee34fd9d38c1453dc062b36348d65677002 (diff)
downloadarmnn-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.mk1
-rw-r--r--CMakeLists.txt1
-rw-r--r--include/armnn/ArmNN.hpp1
-rw-r--r--include/armnn/BackendHelper.hpp17
-rw-r--r--src/armnn/BackendHelper.cpp27
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();
+}
+
+}