From f54c9462415850a3e0f0159a619c4ee90fe3cfc9 Mon Sep 17 00:00:00 2001 From: Ferran Balaguer Date: Wed, 10 Jul 2019 12:43:58 +0100 Subject: 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 Change-Id: Ia9904bd355c72a84f07d0a26faf143a4d6aead9c --- Android.mk | 1 + CMakeLists.txt | 1 + include/armnn/ArmNN.hpp | 1 - include/armnn/BackendHelper.hpp | 17 +++++++++++++++++ src/armnn/BackendHelper.cpp | 27 +++++++++++++++++++++++++++ 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 include/armnn/BackendHelper.hpp create mode 100644 src/armnn/BackendHelper.cpp 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 +#include + +namespace armnn +{ + +/// Convenience function to retrieve the ILayerSupport for a backend +std::shared_ptr 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 +#include "backendsCommon/BackendRegistry.hpp" +#include "backendsCommon/IBackendInternal.hpp" + +namespace armnn +{ + +std::shared_ptr 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(); +} + +} -- cgit v1.2.1