aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarovir01 <Aron.Virginas-Tar@arm.com>2018-10-04 10:46:04 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:58 +0100
commit4424b0a12b88bbefecd6b17b5baf174e7d8e1fe5 (patch)
tree7d606f9f8f02247e21b0407848ff7af8f77ae4a5
parente97c6e0b88fd0a17991c1be5fc66e466e29e5b8d (diff)
downloadarmnn-4424b0a12b88bbefecd6b17b5baf174e7d8e1fe5.tar.gz
IVGCVSW-1963: Add implementation classes for Cl, Neon and Ref backends
Change-Id: Ibb2efaf8b001a64a3f35eab2220990dc39889780
-rw-r--r--src/backends/cl/CMakeLists.txt2
-rw-r--r--src/backends/cl/ClBackend.cpp29
-rw-r--r--src/backends/cl/ClBackend.hpp33
-rw-r--r--src/backends/cl/ClLayerSupport.hpp6
-rw-r--r--src/backends/cl/backend.mk1
-rw-r--r--src/backends/neon/CMakeLists.txt2
-rw-r--r--src/backends/neon/NeonBackend.cpp29
-rw-r--r--src/backends/neon/NeonBackend.hpp33
-rw-r--r--src/backends/neon/NeonLayerSupport.hpp5
-rw-r--r--src/backends/neon/backend.mk1
-rw-r--r--src/backends/reference/CMakeLists.txt2
-rw-r--r--src/backends/reference/RefBackend.cpp29
-rw-r--r--src/backends/reference/RefBackend.hpp33
-rw-r--r--src/backends/reference/RefLayerSupport.hpp5
-rw-r--r--src/backends/reference/backend.mk1
15 files changed, 211 insertions, 0 deletions
diff --git a/src/backends/cl/CMakeLists.txt b/src/backends/cl/CMakeLists.txt
index 80ca0acc08..a7ce893f20 100644
--- a/src/backends/cl/CMakeLists.txt
+++ b/src/backends/cl/CMakeLists.txt
@@ -4,6 +4,8 @@
#
list(APPEND armnnClBackend_sources
+ ClBackend.cpp
+ ClBackend.hpp
ClContextControl.cpp
ClContextControl.hpp
ClLayerSupport.cpp
diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp
new file mode 100644
index 0000000000..5de9d31234
--- /dev/null
+++ b/src/backends/cl/ClBackend.cpp
@@ -0,0 +1,29 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "ClBackend.hpp"
+
+namespace armnn
+{
+
+const std::string ClBackend::s_Id = "arm_compute_cl";
+
+const std::string& ClBackend::GetId() const
+{
+ return s_Id;
+}
+
+const ILayerSupport& ClBackend::GetLayerSupport() const
+{
+ return m_LayerSupport;
+}
+
+std::unique_ptr<IWorkloadFactory> ClBackend::CreateWorkloadFactory() const
+{
+ // TODO implement
+ return nullptr;
+}
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/cl/ClBackend.hpp b/src/backends/cl/ClBackend.hpp
new file mode 100644
index 0000000000..7e67f5e9ad
--- /dev/null
+++ b/src/backends/cl/ClBackend.hpp
@@ -0,0 +1,33 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "backends/IBackendInternal.hpp"
+
+#include "ClLayerSupport.hpp"
+
+namespace armnn
+{
+
+class ClBackend : public IBackendInternal
+{
+public:
+ ClBackend() = default;
+ ~ClBackend() = default;
+
+ const std::string& GetId() const override;
+
+ const ILayerSupport& GetLayerSupport() const override;
+
+ std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const override;
+
+private:
+ static const std::string s_Id;
+
+ // TODO initialize
+ ClLayerSupport m_LayerSupport;
+};
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/cl/ClLayerSupport.hpp b/src/backends/cl/ClLayerSupport.hpp
index 700d71801d..80e8488b3b 100644
--- a/src/backends/cl/ClLayerSupport.hpp
+++ b/src/backends/cl/ClLayerSupport.hpp
@@ -13,6 +13,12 @@
namespace armnn
{
+
+class ClLayerSupport : public ILayerSupport
+{
+ // TODO implement
+};
+
bool IsClDirectConvolution2dSupported(const TensorInfo& weightInfo, const Convolution2dDescriptor& desc);
bool IsClDepthwiseConvolution2dDescParamsSupported(std::string* reasonIfUnsupported,
const DepthwiseConvolution2dDescriptor& parameters,
diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk
index 057089ebdb..81540cc251 100644
--- a/src/backends/cl/backend.mk
+++ b/src/backends/cl/backend.mk
@@ -8,6 +8,7 @@
# file in the root of ArmNN
BACKEND_SOURCES := \
+ ClBackend.cpp \
ClContextControl.cpp \
ClLayerSupport.cpp \
ClWorkloadFactory.cpp \
diff --git a/src/backends/neon/CMakeLists.txt b/src/backends/neon/CMakeLists.txt
index c748825464..c6492bc076 100644
--- a/src/backends/neon/CMakeLists.txt
+++ b/src/backends/neon/CMakeLists.txt
@@ -5,6 +5,8 @@
if(ARMCOMPUTENEON)
list(APPEND armnnNeonBackend_sources
+ NeonBackend.cpp
+ NeonBackend.hpp
NeonLayerSupport.cpp
NeonLayerSupport.hpp
NeonWorkloadFactory.cpp
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp
new file mode 100644
index 0000000000..1137145aa2
--- /dev/null
+++ b/src/backends/neon/NeonBackend.cpp
@@ -0,0 +1,29 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "NeonBackend.hpp"
+
+namespace armnn
+{
+
+const std::string NeonBackend::s_Id = "arm_compute_neon";
+
+const std::string& NeonBackend::GetId() const
+{
+ return s_Id;
+}
+
+const ILayerSupport& NeonBackend::GetLayerSupport() const
+{
+ return m_LayerSupport;
+}
+
+std::unique_ptr<IWorkloadFactory> NeonBackend::CreateWorkloadFactory() const
+{
+ // TODO implement
+ return nullptr;
+}
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/neon/NeonBackend.hpp b/src/backends/neon/NeonBackend.hpp
new file mode 100644
index 0000000000..86fccf0e51
--- /dev/null
+++ b/src/backends/neon/NeonBackend.hpp
@@ -0,0 +1,33 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "backends/IBackendInternal.hpp"
+
+#include "NeonLayerSupport.hpp"
+
+namespace armnn
+{
+
+class NeonBackend : public IBackendInternal
+{
+public:
+ NeonBackend() = default;
+ ~NeonBackend() = default;
+
+ const std::string& GetId() const override;
+
+ const ILayerSupport& GetLayerSupport() const override;
+
+ std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const override;
+
+private:
+ static const std::string s_Id;
+
+ // TODO initialize
+ NeonLayerSupport m_LayerSupport;
+};
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/neon/NeonLayerSupport.hpp b/src/backends/neon/NeonLayerSupport.hpp
index 419c226b3c..590f4d64c6 100644
--- a/src/backends/neon/NeonLayerSupport.hpp
+++ b/src/backends/neon/NeonLayerSupport.hpp
@@ -13,6 +13,11 @@
namespace armnn
{
+class NeonLayerSupport : public ILayerSupport
+{
+ // TODO implement
+};
+
bool IsNeonDirectConvolutionPreferred(const TensorInfo& weightInfo, const Convolution2dDescriptor& desc);
bool IsNeonNormalizationDescParamsSupported(std::string* reasonIfUnsupported,
diff --git a/src/backends/neon/backend.mk b/src/backends/neon/backend.mk
index a59966fb39..b041bca6d7 100644
--- a/src/backends/neon/backend.mk
+++ b/src/backends/neon/backend.mk
@@ -8,6 +8,7 @@
# file in the root of ArmNN
BACKEND_SOURCES := \
+ NeonBackend.cpp \
NeonLayerSupport.cpp \
NeonWorkloadFactory.cpp \
workloads/NeonActivationFloatWorkload.cpp \
diff --git a/src/backends/reference/CMakeLists.txt b/src/backends/reference/CMakeLists.txt
index 526baaa1a8..9810cf86e2 100644
--- a/src/backends/reference/CMakeLists.txt
+++ b/src/backends/reference/CMakeLists.txt
@@ -4,6 +4,8 @@
#
list(APPEND armnnRefBackend_sources
+ RefBackend.cpp
+ RefBackend.hpp
RefLayerSupport.cpp
RefLayerSupport.hpp
RefWorkloadFactory.cpp
diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp
new file mode 100644
index 0000000000..1799abfc33
--- /dev/null
+++ b/src/backends/reference/RefBackend.cpp
@@ -0,0 +1,29 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "RefBackend.hpp"
+
+namespace armnn
+{
+
+const std::string RefBackend::s_Id = "arm_reference";
+
+const std::string& RefBackend::GetId() const
+{
+ return s_Id;
+}
+
+const ILayerSupport& RefBackend::GetLayerSupport() const
+{
+ return m_LayerSupport;
+}
+
+std::unique_ptr<IWorkloadFactory> RefBackend::CreateWorkloadFactory() const
+{
+ // TODO implement
+ return nullptr;
+}
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/reference/RefBackend.hpp b/src/backends/reference/RefBackend.hpp
new file mode 100644
index 0000000000..c3797158a6
--- /dev/null
+++ b/src/backends/reference/RefBackend.hpp
@@ -0,0 +1,33 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "backends/IBackendInternal.hpp"
+
+#include "RefLayerSupport.hpp"
+
+namespace armnn
+{
+
+class RefBackend : public IBackendInternal
+{
+public:
+ RefBackend() = default;
+ ~RefBackend() = default;
+
+ const std::string& GetId() const override;
+
+ const ILayerSupport& GetLayerSupport() const override;
+
+ std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const override;
+
+private:
+ static const std::string s_Id;
+
+ // TODO initialize
+ RefLayerSupport m_LayerSupport;
+};
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/reference/RefLayerSupport.hpp b/src/backends/reference/RefLayerSupport.hpp
index d29e95645f..e819b6665a 100644
--- a/src/backends/reference/RefLayerSupport.hpp
+++ b/src/backends/reference/RefLayerSupport.hpp
@@ -15,6 +15,11 @@
namespace armnn
{
+class RefLayerSupport : public ILayerSupport
+{
+ // TODO implement
+};
+
bool IsActivationSupportedRef(const TensorInfo& input,
const TensorInfo& output,
const ActivationDescriptor& descriptor,
diff --git a/src/backends/reference/backend.mk b/src/backends/reference/backend.mk
index e5345c07d5..365faa684c 100644
--- a/src/backends/reference/backend.mk
+++ b/src/backends/reference/backend.mk
@@ -8,6 +8,7 @@
# file in the root of ArmNN
BACKEND_SOURCES := \
+ RefBackend.cpp \
RefLayerSupport.cpp \
RefWorkloadFactory.cpp \
workloads/Activation.cpp \