diff options
-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(); +} + +} |