IVGCVSW-3478 Refactor armnn to make new Lstm parameters available in android-nn-drive...
authorFerran Balaguer <ferran.balaguer@arm.com>
Wed, 10 Jul 2019 11:43:58 +0000 (12:43 +0100)
committerFerran Balaguer <ferran.balaguer@arm.com>
Tue, 16 Jul 2019 10:57:58 +0000 (11:57 +0100)
!android-nn-driver:1506

Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
Change-Id: Ia9904bd355c72a84f07d0a26faf143a4d6aead9c

Android.mk
CMakeLists.txt
include/armnn/ArmNN.hpp
include/armnn/BackendHelper.hpp [new file with mode: 0644]
src/armnn/BackendHelper.cpp [new file with mode: 0644]

index b9cc6e5..8ad790e 100644 (file)
@@ -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 \
index 7c163dc..dbb212f 100644 (file)
@@ -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
index de5ea3e..884a3ca 100644 (file)
@@ -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 (file)
index 0000000..6a6c8b9
--- /dev/null
@@ -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 (file)
index 0000000..2514038
--- /dev/null
@@ -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();
+}
+
+}