aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Beck <david.beck@arm.com>2018-09-24 15:59:27 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:57 +0100
commit0dbe0ee25312b728d77383d11c465156e64ae757 (patch)
treeaf37a9802e3ad551e1bf63f7636508cde7a41643
parentb4540bef0b0327683fe8e63f727c1212800dc2a9 (diff)
downloadarmnn-0dbe0ee25312b728d77383d11c465156e64ae757.tar.gz
IVGCVSW-1899 : Neon backend folder structure
armnn:149855 Change-Id: I26e8cf83422a65049386a5ebdb6d0001627aefaa
-rw-r--r--Android.mk3
-rw-r--r--src/armnn/LayerSupport.cpp2
-rw-r--r--src/armnn/LoadedNetwork.hpp2
-rw-r--r--src/armnn/test/CreateWorkloadClNeon.hpp4
-rw-r--r--src/armnn/test/NeonTimerTest.cpp22
-rw-r--r--src/armnn/test/NetworkTests.cpp2
-rw-r--r--src/backends/CMakeLists.txt14
-rw-r--r--src/backends/ClTensorHandle.hpp2
-rw-r--r--src/backends/ClWorkloadFactory.cpp14
-rw-r--r--src/backends/ClWorkloadFactory.hpp4
-rw-r--r--src/backends/ClWorkloads/backend.cmake2
-rw-r--r--src/backends/CpuTensorHandle.cpp4
-rw-r--r--src/backends/CpuTensorHandle.hpp7
-rw-r--r--src/backends/NeonWorkloads.hpp41
-rw-r--r--src/backends/NeonWorkloads/backend.cmake9
-rw-r--r--src/backends/NeonWorkloads/backend.mk45
-rw-r--r--src/backends/WorkloadData.hpp14
-rw-r--r--src/backends/WorkloadFactory.cpp2
-rw-r--r--src/backends/backends.cmake5
-rw-r--r--src/backends/neon/CMakeLists.txt28
-rw-r--r--src/backends/neon/NeonLayerSupport.cpp (renamed from src/backends/NeonLayerSupport.cpp)30
-rw-r--r--src/backends/neon/NeonLayerSupport.hpp (renamed from src/backends/NeonLayerSupport.hpp)0
-rw-r--r--src/backends/neon/NeonTensorHandle.hpp (renamed from src/backends/NeonTensorHandle.hpp)2
-rw-r--r--src/backends/neon/NeonWorkloadFactory.cpp (renamed from src/backends/NeonWorkloadFactory.cpp)18
-rw-r--r--src/backends/neon/NeonWorkloadFactory.hpp (renamed from src/backends/NeonWorkloadFactory.hpp)4
-rw-r--r--src/backends/neon/backend.cmake13
-rw-r--r--src/backends/neon/backend.mk47
-rw-r--r--src/backends/neon/test/CMakeLists.txt4
-rw-r--r--src/backends/neon/workloads/CMakeLists.txt (renamed from src/backends/NeonWorkloads/CMakeLists.txt)13
-rw-r--r--src/backends/neon/workloads/NeonActivationFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonActivationFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonActivationFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonActivationFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonActivationUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonActivationUint8Workload.cpp)2
-rw-r--r--src/backends/neon/workloads/NeonActivationUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonActivationUint8Workload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonAdditionFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonAdditionFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonAdditionFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonAdditionFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonBaseConstantWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonBaseConstantWorkload.hpp)4
-rw-r--r--src/backends/neon/workloads/NeonBaseMergerWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonBaseMergerWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonBaseSplitterWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonBatchNormalizationFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonBatchNormalizationFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonBatchNormalizationFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonBatchNormalizationFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonConstantFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonConstantFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonConstantFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonConstantFloatWorkload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonConstantUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonConstantUint8Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonConstantUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonConstantUint8Workload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp (renamed from src/backends/NeonWorkloads/NeonConvertFp16ToFp32Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.hpp (renamed from src/backends/NeonWorkloads/NeonConvertFp16ToFp32Workload.hpp)6
-rw-r--r--src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp (renamed from src/backends/NeonWorkloads/NeonConvertFp32ToFp16Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.hpp (renamed from src/backends/NeonWorkloads/NeonConvertFp32ToFp16Workload.hpp)6
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp)2
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dBaseWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp)4
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonConvolution2dFloatWorkload.cpp)2
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonConvolution2dFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonConvolution2dUint8Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonConvolution2dUint8Workload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonDepthwiseConvolutionFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonDepthwiseConvolutionFloatWorkload.cpp)2
-rw-r--r--src/backends/neon/workloads/NeonDepthwiseConvolutionFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonDepthwiseConvolutionFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonDepthwiseConvolutionUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.cpp)2
-rw-r--r--src/backends/neon/workloads/NeonDepthwiseConvolutionUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonFloorFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonFloorFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonFloorFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonFloorFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonFullyConnectedWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonFullyConnectedWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonFullyConnectedWorkload.hpp)4
-rw-r--r--src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonL2NormalizationFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonL2NormalizationFloatWorkload.hpp)5
-rw-r--r--src/backends/neon/workloads/NeonLstmFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonLstmFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonLstmFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonLstmFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonMergerFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonMergerFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonMergerFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonMergerFloatWorkload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonMergerUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonMergerUint8Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonMergerUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonMergerUint8Workload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonMultiplicationFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonMultiplicationFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonMultiplicationFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonMultiplicationFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonNormalizationFloatWorkload.cpp)2
-rw-r--r--src/backends/neon/workloads/NeonNormalizationFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonNormalizationFloatWorkload.hpp)5
-rw-r--r--src/backends/neon/workloads/NeonPermuteWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonPermuteWorkload.cpp)2
-rw-r--r--src/backends/neon/workloads/NeonPermuteWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonPermuteWorkload.hpp)6
-rw-r--r--src/backends/neon/workloads/NeonPooling2dBaseWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonPooling2dBaseWorkload.cpp)4
-rw-r--r--src/backends/neon/workloads/NeonPooling2dBaseWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonPooling2dBaseWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonPooling2dFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonPooling2dFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonPooling2dFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonPooling2dFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonPooling2dUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonPooling2dUint8Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonPooling2dUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonPooling2dUint8Workload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonReshapeFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonReshapeFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonReshapeFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonReshapeFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonReshapeUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonReshapeUint8Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonReshapeUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonReshapeUint8Workload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonSoftmaxBaseWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonSoftmaxBaseWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonSoftmaxBaseWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonSoftmaxBaseWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonSoftmaxFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonSoftmaxFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonSoftmaxFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonSoftmaxFloatWorkload.hpp)5
-rw-r--r--src/backends/neon/workloads/NeonSoftmaxUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonSoftmaxUint8Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonSoftmaxUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonSoftmaxUint8Workload.hpp)5
-rw-r--r--src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonSplitterFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonSplitterFloatWorkload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonSplitterUint8Workload.cpp (renamed from src/backends/NeonWorkloads/NeonSplitterUint8Workload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonSplitterUint8Workload.hpp (renamed from src/backends/NeonWorkloads/NeonSplitterUint8Workload.hpp)0
-rw-r--r--src/backends/neon/workloads/NeonSubtractionFloatWorkload.cpp (renamed from src/backends/NeonWorkloads/NeonSubtractionFloatWorkload.cpp)0
-rw-r--r--src/backends/neon/workloads/NeonSubtractionFloatWorkload.hpp (renamed from src/backends/NeonWorkloads/NeonSubtractionFloatWorkload.hpp)2
-rw-r--r--src/backends/neon/workloads/NeonWorkloadUtils.cpp (renamed from src/backends/NeonWorkloadUtils.cpp)4
-rw-r--r--src/backends/neon/workloads/NeonWorkloadUtils.hpp (renamed from src/backends/NeonWorkloadUtils.hpp)10
-rw-r--r--src/backends/neon/workloads/NeonWorkloads.hpp41
-rw-r--r--src/backends/test/ArmComputeNeon.cpp4
-rw-r--r--src/backends/test/CreateWorkloadNeon.cpp10
-rw-r--r--src/backends/test/IsLayerSupportedTest.cpp2
-rw-r--r--src/backends/test/MemCopyTests.cpp2
-rw-r--r--src/backends/test/TensorCopyUtils.cpp4
108 files changed, 282 insertions, 258 deletions
diff --git a/Android.mk b/Android.mk
index e81165c391..56bc1340e3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -73,9 +73,6 @@ LOCAL_SRC_FILES := \
src/backends/OutputHandler.cpp \
src/backends/StringMapping.cpp \
src/backends/ClLayerSupport.cpp \
- src/backends/NeonLayerSupport.cpp \
- src/backends/NeonWorkloadUtils.cpp \
- src/backends/NeonWorkloadFactory.cpp \
src/armnn/layers/ActivationLayer.cpp \
src/armnn/layers/AdditionLayer.cpp \
src/armnn/layers/ArithmeticBaseLayer.cpp \
diff --git a/src/armnn/LayerSupport.cpp b/src/armnn/LayerSupport.cpp
index 85a03f2e2e..6e7e3e14d6 100644
--- a/src/armnn/LayerSupport.cpp
+++ b/src/armnn/LayerSupport.cpp
@@ -5,7 +5,7 @@
#include <armnn/LayerSupport.hpp>
#include <backends/reference/RefLayerSupport.hpp>
-#include <backends/NeonLayerSupport.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
#include <backends/ClLayerSupport.hpp>
#include <boost/assert.hpp>
diff --git a/src/armnn/LoadedNetwork.hpp b/src/armnn/LoadedNetwork.hpp
index 43faa4e674..51551b395b 100644
--- a/src/armnn/LoadedNetwork.hpp
+++ b/src/armnn/LoadedNetwork.hpp
@@ -12,7 +12,7 @@
#include "Profiling.hpp"
#include <backends/reference/RefWorkloadFactory.hpp>
-#include <backends/NeonWorkloadFactory.hpp>
+#include <backends/neon/NeonWorkloadFactory.hpp>
#include <backends/ClWorkloadFactory.hpp>
#include <backends/Workload.hpp>
#include <backends/WorkloadFactory.hpp>
diff --git a/src/armnn/test/CreateWorkloadClNeon.hpp b/src/armnn/test/CreateWorkloadClNeon.hpp
index de9a79513f..6d02c95740 100644
--- a/src/armnn/test/CreateWorkloadClNeon.hpp
+++ b/src/armnn/test/CreateWorkloadClNeon.hpp
@@ -8,11 +8,11 @@
#include <backends/reference/RefWorkloadFactory.hpp>
#if ARMCOMPUTECL_ENABLED
-#include "backends/ClTensorHandle.hpp"
+#include <backends/ClTensorHandle.hpp>
#endif
#if ARMCOMPUTENEON_ENABLED
-#include "backends/NeonTensorHandle.hpp"
+#include <backends/neon/NeonTensorHandle.hpp>
#endif
diff --git a/src/armnn/test/NeonTimerTest.cpp b/src/armnn/test/NeonTimerTest.cpp
index 74cdabcaa9..f82924e993 100644
--- a/src/armnn/test/NeonTimerTest.cpp
+++ b/src/armnn/test/NeonTimerTest.cpp
@@ -3,19 +3,19 @@
// SPDX-License-Identifier: MIT
//
-#include "NeonTimer.hpp"
+#include <NeonTimer.hpp>
#include "TensorHelpers.hpp"
-#include "armnn/ArmNN.hpp"
-#include "armnn/Tensor.hpp"
-#include "armnn/TypesUtils.hpp"
-#include "backends/CpuTensorHandle.hpp"
-#include "backends/NeonWorkloadFactory.hpp"
-#include "backends/WorkloadInfo.hpp"
-#include "backends/WorkloadFactory.hpp"
-#include "backends/test/LayerTests.hpp"
-#include "backends/test/TensorCopyUtils.hpp"
-#include "backends/test/WorkloadTestUtils.hpp"
+#include <armnn/ArmNN.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/TypesUtils.hpp>
+#include <backends/CpuTensorHandle.hpp>
+#include <backends/neon/NeonWorkloadFactory.hpp>
+#include <backends/WorkloadInfo.hpp>
+#include <backends/WorkloadFactory.hpp>
+#include <backends/test/LayerTests.hpp>
+#include <backends/test/TensorCopyUtils.hpp>
+#include <backends/test/WorkloadTestUtils.hpp>
#include <boost/test/unit_test.hpp>
#include <cstdlib>
diff --git a/src/armnn/test/NetworkTests.cpp b/src/armnn/test/NetworkTests.cpp
index 0fff76e82e..11c26da8b4 100644
--- a/src/armnn/test/NetworkTests.cpp
+++ b/src/armnn/test/NetworkTests.cpp
@@ -8,8 +8,8 @@
#include <Network.hpp>
#include <Graph.hpp>
#include <backends/reference/RefWorkloadFactory.hpp>
+#include <backends/neon/NeonWorkloadFactory.hpp>
#include <backends/ClWorkloadFactory.hpp>
-#include <backends/NeonWorkloadFactory.hpp>
#include "GraphUtils.hpp"
diff --git a/src/backends/CMakeLists.txt b/src/backends/CMakeLists.txt
index 39d6e8d834..f806caac27 100644
--- a/src/backends/CMakeLists.txt
+++ b/src/backends/CMakeLists.txt
@@ -18,11 +18,6 @@ list(APPEND armnnBackendsCommon_sources
MakeWorkloadHelper.hpp
MemCopyWorkload.cpp
MemCopyWorkload.hpp
- NeonLayerSupport.cpp
- NeonLayerSupport.hpp
- NeonWorkloadFactory.cpp
- NeonWorkloadFactory.hpp
- NeonWorkloads.hpp
OutputHandler.cpp
OutputHandler.hpp
StringMapping.cpp
@@ -38,15 +33,6 @@ list(APPEND armnnBackendsCommon_sources
WorkloadUtils.hpp
)
-if(ARMCOMPUTENEON)
- # Additionally include source files for ARM Compute NEON backend
- list(APPEND armnnBackendsCommon_sources
- NeonWorkloadUtils.cpp
- NeonWorkloadUtils.hpp
- NeonTensorHandle.hpp
- )
-endif()
-
if(ARMCOMPUTECL)
# Additionally include source files for ARM Compute OpenCL backend
list(APPEND armnnBackendsCommon_sources
diff --git a/src/backends/ClTensorHandle.hpp b/src/backends/ClTensorHandle.hpp
index a4e72c14e4..556e4479b6 100644
--- a/src/backends/ClTensorHandle.hpp
+++ b/src/backends/ClTensorHandle.hpp
@@ -4,7 +4,7 @@
//
#pragma once
-#include "OutputHandler.hpp"
+#include <backends/OutputHandler.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <arm_compute/runtime/CL/CLTensor.h>
diff --git a/src/backends/ClWorkloadFactory.cpp b/src/backends/ClWorkloadFactory.cpp
index 328c22174d..6aee233ca4 100644
--- a/src/backends/ClWorkloadFactory.cpp
+++ b/src/backends/ClWorkloadFactory.cpp
@@ -4,12 +4,12 @@
//
#include "ClWorkloadFactory.hpp"
-#include "armnn/Exceptions.hpp"
-#include "armnn/Utils.hpp"
+#include <armnn/Exceptions.hpp>
+#include <armnn/Utils.hpp>
#include <string>
-#include "CpuTensorHandle.hpp"
-#include "Layer.hpp"
+#include <backends/CpuTensorHandle.hpp>
+#include <Layer.hpp>
#ifdef ARMCOMPUTECL_ENABLED
#include <arm_compute/core/CL/CLKernelLibrary.h>
@@ -18,10 +18,10 @@
#include "ClWorkloads.hpp"
-#include "backends/MemCopyWorkload.hpp"
-#include "backends/ClTensorHandle.hpp"
+#include <backends/MemCopyWorkload.hpp>
+#include <backends/ClTensorHandle.hpp>
-#include "memory/IPoolManager.hpp"
+#include <memory/IPoolManager.hpp>
#endif
#include "MakeWorkloadHelper.hpp"
diff --git a/src/backends/ClWorkloadFactory.hpp b/src/backends/ClWorkloadFactory.hpp
index d0bf4160f6..59ae3b343a 100644
--- a/src/backends/ClWorkloadFactory.hpp
+++ b/src/backends/ClWorkloadFactory.hpp
@@ -4,9 +4,9 @@
//
#pragma once
-#include "OutputHandler.hpp"
+#include <backends/OutputHandler.hpp>
-#include "armnn/IRuntime.hpp"
+#include <armnn/IRuntime.hpp>
#include <boost/optional.hpp>
#include "memory/BaseMemoryManager.hpp"
diff --git a/src/backends/ClWorkloads/backend.cmake b/src/backends/ClWorkloads/backend.cmake
index 6f8eda1628..e6b4673781 100644
--- a/src/backends/ClWorkloads/backend.cmake
+++ b/src/backends/ClWorkloads/backend.cmake
@@ -6,4 +6,6 @@
if(ARMCOMPUTECL)
add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/ClWorkloads)
list(APPEND armnnLibraries armnnClBackend)
+else()
+ message("CL backend is disabled")
endif()
diff --git a/src/backends/CpuTensorHandle.cpp b/src/backends/CpuTensorHandle.cpp
index 1a264531e5..4059a1d565 100644
--- a/src/backends/CpuTensorHandle.cpp
+++ b/src/backends/CpuTensorHandle.cpp
@@ -2,8 +2,8 @@
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
-#include "armnn/Exceptions.hpp"
-#include "CpuTensorHandle.hpp"
+#include <armnn/Exceptions.hpp>
+#include <backends/CpuTensorHandle.hpp>
#include <cstring>
diff --git a/src/backends/CpuTensorHandle.hpp b/src/backends/CpuTensorHandle.hpp
index 541beefde6..2a686fe07f 100644
--- a/src/backends/CpuTensorHandle.hpp
+++ b/src/backends/CpuTensorHandle.hpp
@@ -3,11 +3,10 @@
// SPDX-License-Identifier: MIT
//
#pragma once
-#include "CpuTensorHandleFwd.hpp"
-
-#include "armnn/TypesUtils.hpp"
-#include "OutputHandler.hpp"
+#include "CpuTensorHandleFwd.hpp"
+#include <armnn/TypesUtils.hpp>
+#include <backends/OutputHandler.hpp>
#include <algorithm>
diff --git a/src/backends/NeonWorkloads.hpp b/src/backends/NeonWorkloads.hpp
deleted file mode 100644
index e471bbcf35..0000000000
--- a/src/backends/NeonWorkloads.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-#include "backends/NeonWorkloads/NeonActivationFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonActivationUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonAdditionFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonBaseConstantWorkload.hpp"
-#include "backends/NeonWorkloads/NeonBaseMergerWorkload.hpp"
-#include "backends/NeonWorkloads/NeonBaseSplitterWorkload.hpp"
-#include "backends/NeonWorkloads/NeonBatchNormalizationFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonConstantFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonConstantUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonConvertFp16ToFp32Workload.hpp"
-#include "backends/NeonWorkloads/NeonConvertFp32ToFp16Workload.hpp"
-#include "backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp"
-#include "backends/NeonWorkloads/NeonConvolution2dFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonConvolution2dUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonDepthwiseConvolutionFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonFloorFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonFullyConnectedWorkload.hpp"
-#include "backends/NeonWorkloads/NeonL2NormalizationFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonLstmFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonMergerFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonMergerUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonMultiplicationFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonNormalizationFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonPermuteWorkload.hpp"
-#include "backends/NeonWorkloads/NeonPooling2dBaseWorkload.hpp"
-#include "backends/NeonWorkloads/NeonPooling2dFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonPooling2dUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonReshapeFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonReshapeUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonSoftmaxFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonSoftmaxUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonSplitterFloatWorkload.hpp"
-#include "backends/NeonWorkloads/NeonSplitterUint8Workload.hpp"
-#include "backends/NeonWorkloads/NeonSubtractionFloatWorkload.hpp"
diff --git a/src/backends/NeonWorkloads/backend.cmake b/src/backends/NeonWorkloads/backend.cmake
deleted file mode 100644
index f0908c5496..0000000000
--- a/src/backends/NeonWorkloads/backend.cmake
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Copyright © 2017 Arm Ltd. All rights reserved.
-# SPDX-License-Identifier: MIT
-#
-
-if(ARMCOMPUTENEON)
- add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/NeonWorkloads)
- list(APPEND armnnLibraries armnnNeonBackend)
-endif()
diff --git a/src/backends/NeonWorkloads/backend.mk b/src/backends/NeonWorkloads/backend.mk
deleted file mode 100644
index 7b7f87be6a..0000000000
--- a/src/backends/NeonWorkloads/backend.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Copyright © 2017 ARM Ltd. All rights reserved.
-# SPDX-License-Identifier: MIT
-#
-
-# BACKEND_SOURCES contains the list of files to be included
-# in the Android build and it is picked up by the Android.mk
-# file in the root of ArmNN
-
-BACKEND_SOURCES := \
- NeonActivationFloatWorkload.cpp \
- NeonActivationUint8Workload.cpp \
- NeonAdditionFloatWorkload.cpp \
- NeonBatchNormalizationFloatWorkload.cpp \
- NeonConstantFloatWorkload.cpp \
- NeonConstantUint8Workload.cpp \
- NeonConvertFp16ToFp32Workload.cpp \
- NeonConvertFp32ToFp16Workload.cpp \
- NeonConvolution2dBaseWorkload.cpp \
- NeonConvolution2dFloatWorkload.cpp \
- NeonConvolution2dUint8Workload.cpp \
- NeonDepthwiseConvolutionBaseWorkload.cpp \
- NeonDepthwiseConvolutionFloatWorkload.cpp \
- NeonDepthwiseConvolutionUint8Workload.cpp \
- NeonFloorFloatWorkload.cpp \
- NeonFullyConnectedWorkload.cpp \
- NeonL2NormalizationFloatWorkload.cpp \
- NeonLstmFloatWorkload.cpp \
- NeonMergerFloatWorkload.cpp \
- NeonMergerUint8Workload.cpp \
- NeonMultiplicationFloatWorkload.cpp \
- NeonNormalizationFloatWorkload.cpp \
- NeonPermuteWorkload.cpp \
- NeonPooling2dBaseWorkload.cpp \
- NeonPooling2dFloatWorkload.cpp \
- NeonPooling2dUint8Workload.cpp \
- NeonReshapeFloatWorkload.cpp \
- NeonReshapeUint8Workload.cpp \
- NeonSoftmaxBaseWorkload.cpp \
- NeonSoftmaxFloatWorkload.cpp \
- NeonSoftmaxUint8Workload.cpp \
- NeonSplitterFloatWorkload.cpp \
- NeonSplitterUint8Workload.cpp \
- NeonSubtractionFloatWorkload.cpp
-
diff --git a/src/backends/WorkloadData.hpp b/src/backends/WorkloadData.hpp
index 8c1cbd4964..ff5916e21e 100644
--- a/src/backends/WorkloadData.hpp
+++ b/src/backends/WorkloadData.hpp
@@ -6,12 +6,14 @@
#include "WorkloadDataFwd.hpp"
-#include "armnn/Types.hpp"
-#include "armnn/Tensor.hpp"
-#include "armnn/Descriptors.hpp"
-#include "armnn/Exceptions.hpp"
-#include "InternalTypes.hpp"
-#include "OutputHandler.hpp"
+#include <armnn/Types.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Descriptors.hpp>
+#include <armnn/Exceptions.hpp>
+
+#include <InternalTypes.hpp>
+#include <backends/OutputHandler.hpp>
+
#include "CpuTensorHandleFwd.hpp"
namespace armnn
diff --git a/src/backends/WorkloadFactory.cpp b/src/backends/WorkloadFactory.cpp
index 8b3ab8366b..d23ac83230 100644
--- a/src/backends/WorkloadFactory.cpp
+++ b/src/backends/WorkloadFactory.cpp
@@ -4,7 +4,7 @@
//
#include "WorkloadFactory.hpp"
#include <backends/reference/RefWorkloadFactory.hpp>
-#include "NeonWorkloadFactory.hpp"
+#include <backends/neon/NeonWorkloadFactory.hpp>
#include "ClWorkloadFactory.hpp"
#include <armnn/Types.hpp>
diff --git a/src/backends/backends.cmake b/src/backends/backends.cmake
index 6f76106b6b..f6f69bd11e 100644
--- a/src/backends/backends.cmake
+++ b/src/backends/backends.cmake
@@ -12,6 +12,7 @@ FILE(GLOB commonIncludes ${PROJECT_SOURCE_DIR}/src/backends/*/common.cmake)
FILE(GLOB backendIncludes ${PROJECT_SOURCE_DIR}/src/backends/*/backend.cmake)
# prefer to include common code first so backends can depend on them
-foreach(backendInclude ${commonIncludes} ${backendIncludes})
- include(${backendInclude})
+foreach(includeFile ${commonIncludes} ${backendIncludes})
+ message("Including backend into the build: ${includeFile}")
+ include(${includeFile})
endforeach()
diff --git a/src/backends/neon/CMakeLists.txt b/src/backends/neon/CMakeLists.txt
new file mode 100644
index 0000000000..c748825464
--- /dev/null
+++ b/src/backends/neon/CMakeLists.txt
@@ -0,0 +1,28 @@
+#
+# Copyright © 2017 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+if(ARMCOMPUTENEON)
+ list(APPEND armnnNeonBackend_sources
+ NeonLayerSupport.cpp
+ NeonLayerSupport.hpp
+ NeonWorkloadFactory.cpp
+ NeonWorkloadFactory.hpp
+ NeonTensorHandle.hpp
+ )
+
+ add_subdirectory(workloads test)
+else()
+ list(APPEND armnnNeonBackend_sources
+ NeonLayerSupport.cpp
+ NeonLayerSupport.hpp
+ NeonWorkloadFactory.cpp
+ NeonWorkloadFactory.hpp
+ )
+endif()
+
+add_library(armnnNeonBackend STATIC ${armnnNeonBackend_sources})
+target_include_directories(armnnNeonBackend PRIVATE ${PROJECT_SOURCE_DIR}/src)
+target_include_directories(armnnNeonBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
+target_include_directories(armnnNeonBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
diff --git a/src/backends/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp
index f06db1747d..dfaea5c81c 100644
--- a/src/backends/NeonLayerSupport.cpp
+++ b/src/backends/neon/NeonLayerSupport.cpp
@@ -5,8 +5,8 @@
#include "NeonLayerSupport.hpp"
-#include "LayerSupportCommon.hpp"
-#include "InternalTypes.hpp"
+#include <LayerSupportCommon.hpp>
+#include <InternalTypes.hpp>
#include <armnn/Descriptors.hpp>
#include <armnn/Types.hpp>
@@ -15,19 +15,19 @@
#include <boost/core/ignore_unused.hpp>
#ifdef ARMCOMPUTENEON_ENABLED
-#include "NeonWorkloads/NeonAdditionFloatWorkload.hpp"
-#include "NeonWorkloads/NeonActivationFloatWorkload.hpp"
-#include "NeonWorkloads/NeonBatchNormalizationFloatWorkload.hpp"
-#include "NeonWorkloads/NeonConvolution2dBaseWorkload.hpp"
-#include "NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp"
-#include "NeonWorkloads/NeonL2NormalizationFloatWorkload.hpp"
-#include "NeonWorkloads/NeonMultiplicationFloatWorkload.hpp"
-#include "NeonWorkloads/NeonNormalizationFloatWorkload.hpp"
-#include "NeonWorkloads/NeonFullyConnectedWorkload.hpp"
-#include "NeonWorkloads/NeonPermuteWorkload.hpp"
-#include "NeonWorkloads/NeonPooling2dBaseWorkload.hpp"
-#include "NeonWorkloads/NeonSoftmaxBaseWorkload.hpp"
-#include "NeonWorkloads/NeonSubtractionFloatWorkload.hpp"
+#include "workloads/NeonAdditionFloatWorkload.hpp"
+#include "workloads/NeonActivationFloatWorkload.hpp"
+#include "workloads/NeonBatchNormalizationFloatWorkload.hpp"
+#include "workloads/NeonConvolution2dBaseWorkload.hpp"
+#include "workloads/NeonDepthwiseConvolutionBaseWorkload.hpp"
+#include "workloads/NeonL2NormalizationFloatWorkload.hpp"
+#include "workloads/NeonMultiplicationFloatWorkload.hpp"
+#include "workloads/NeonNormalizationFloatWorkload.hpp"
+#include "workloads/NeonFullyConnectedWorkload.hpp"
+#include "workloads/NeonPermuteWorkload.hpp"
+#include "workloads/NeonPooling2dBaseWorkload.hpp"
+#include "workloads/NeonSoftmaxBaseWorkload.hpp"
+#include "workloads/NeonSubtractionFloatWorkload.hpp"
#endif
using namespace boost;
diff --git a/src/backends/NeonLayerSupport.hpp b/src/backends/neon/NeonLayerSupport.hpp
index 95b14b3ba6..95b14b3ba6 100644
--- a/src/backends/NeonLayerSupport.hpp
+++ b/src/backends/neon/NeonLayerSupport.hpp
diff --git a/src/backends/NeonTensorHandle.hpp b/src/backends/neon/NeonTensorHandle.hpp
index 9045b8f17b..655427859b 100644
--- a/src/backends/NeonTensorHandle.hpp
+++ b/src/backends/neon/NeonTensorHandle.hpp
@@ -4,7 +4,7 @@
//
#pragma once
-#include "OutputHandler.hpp"
+#include <backends/OutputHandler.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <arm_compute/runtime/MemoryGroup.h>
diff --git a/src/backends/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp
index 3b994bf049..dd91b152f2 100644
--- a/src/backends/NeonWorkloadFactory.cpp
+++ b/src/backends/neon/NeonWorkloadFactory.cpp
@@ -3,22 +3,22 @@
// SPDX-License-Identifier: MIT
//
#include "NeonWorkloadFactory.hpp"
-#include "armnn/Utils.hpp"
-#include "CpuTensorHandle.hpp"
-#include "Layer.hpp"
+#include <armnn/Utils.hpp>
+#include <backends/CpuTensorHandle.hpp>
+#include <Layer.hpp>
#ifdef ARMCOMPUTENEON_ENABLED
-#include "arm_compute/runtime/Allocator.h"
+#include <arm_compute/runtime/Allocator.h>
-#include "MemCopyWorkload.hpp"
+#include <backends/MemCopyWorkload.hpp>
#include "NeonTensorHandle.hpp"
-#include "NeonWorkloadUtils.hpp"
-#include "NeonWorkloads.hpp"
+#include "workloads/NeonWorkloadUtils.hpp"
+#include "workloads/NeonWorkloads.hpp"
-#include "memory/IPoolManager.hpp"
+#include <memory/IPoolManager.hpp>
#endif
-#include "MakeWorkloadHelper.hpp"
+#include <backends/MakeWorkloadHelper.hpp>
#include <boost/polymorphic_cast.hpp>
diff --git a/src/backends/NeonWorkloadFactory.hpp b/src/backends/neon/NeonWorkloadFactory.hpp
index 45d1c2c8c0..440bba672a 100644
--- a/src/backends/NeonWorkloadFactory.hpp
+++ b/src/backends/neon/NeonWorkloadFactory.hpp
@@ -4,9 +4,9 @@
//
#pragma once
-#include "OutputHandler.hpp"
+#include <backends/OutputHandler.hpp>
-#include "memory/BaseMemoryManager.hpp"
+#include <memory/BaseMemoryManager.hpp>
#include <boost/core/ignore_unused.hpp>
#include <boost/optional.hpp>
diff --git a/src/backends/neon/backend.cmake b/src/backends/neon/backend.cmake
new file mode 100644
index 0000000000..5f02c845ed
--- /dev/null
+++ b/src/backends/neon/backend.cmake
@@ -0,0 +1,13 @@
+#
+# Copyright © 2017 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+if(ARMCOMPUTENEON)
+ add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/neon)
+ list(APPEND armnnLibraries armnnNeonBackend armnnNeonBackendWorkloads)
+else()
+ message("NEON backend is disabled")
+ add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/neon)
+ list(APPEND armnnLibraries armnnNeonBackend)
+endif()
diff --git a/src/backends/neon/backend.mk b/src/backends/neon/backend.mk
new file mode 100644
index 0000000000..a59966fb39
--- /dev/null
+++ b/src/backends/neon/backend.mk
@@ -0,0 +1,47 @@
+#
+# Copyright © 2017 ARM Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+# BACKEND_SOURCES contains the list of files to be included
+# in the Android build and it is picked up by the Android.mk
+# file in the root of ArmNN
+
+BACKEND_SOURCES := \
+ NeonLayerSupport.cpp \
+ NeonWorkloadFactory.cpp \
+ workloads/NeonActivationFloatWorkload.cpp \
+ workloads/NeonActivationUint8Workload.cpp \
+ workloads/NeonAdditionFloatWorkload.cpp \
+ workloads/NeonBatchNormalizationFloatWorkload.cpp \
+ workloads/NeonConstantFloatWorkload.cpp \
+ workloads/NeonConstantUint8Workload.cpp \
+ workloads/NeonConvertFp16ToFp32Workload.cpp \
+ workloads/NeonConvertFp32ToFp16Workload.cpp \
+ workloads/NeonConvolution2dBaseWorkload.cpp \
+ workloads/NeonConvolution2dFloatWorkload.cpp \
+ workloads/NeonConvolution2dUint8Workload.cpp \
+ workloads/NeonDepthwiseConvolutionBaseWorkload.cpp \
+ workloads/NeonDepthwiseConvolutionFloatWorkload.cpp \
+ workloads/NeonDepthwiseConvolutionUint8Workload.cpp \
+ workloads/NeonFloorFloatWorkload.cpp \
+ workloads/NeonFullyConnectedWorkload.cpp \
+ workloads/NeonL2NormalizationFloatWorkload.cpp \
+ workloads/NeonLstmFloatWorkload.cpp \
+ workloads/NeonMergerFloatWorkload.cpp \
+ workloads/NeonMergerUint8Workload.cpp \
+ workloads/NeonMultiplicationFloatWorkload.cpp \
+ workloads/NeonNormalizationFloatWorkload.cpp \
+ workloads/NeonPermuteWorkload.cpp \
+ workloads/NeonPooling2dBaseWorkload.cpp \
+ workloads/NeonPooling2dFloatWorkload.cpp \
+ workloads/NeonPooling2dUint8Workload.cpp \
+ workloads/NeonReshapeFloatWorkload.cpp \
+ workloads/NeonReshapeUint8Workload.cpp \
+ workloads/NeonSoftmaxBaseWorkload.cpp \
+ workloads/NeonSoftmaxFloatWorkload.cpp \
+ workloads/NeonSoftmaxUint8Workload.cpp \
+ workloads/NeonSplitterFloatWorkload.cpp \
+ workloads/NeonSplitterUint8Workload.cpp \
+ workloads/NeonSubtractionFloatWorkload.cpp \
+ workloads/NeonWorkloadUtils.cpp
diff --git a/src/backends/neon/test/CMakeLists.txt b/src/backends/neon/test/CMakeLists.txt
new file mode 100644
index 0000000000..f41a074999
--- /dev/null
+++ b/src/backends/neon/test/CMakeLists.txt
@@ -0,0 +1,4 @@
+#
+# Copyright © 2017 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/backends/NeonWorkloads/CMakeLists.txt b/src/backends/neon/workloads/CMakeLists.txt
index ca44bcc1e1..850c65cb4e 100644
--- a/src/backends/NeonWorkloads/CMakeLists.txt
+++ b/src/backends/neon/workloads/CMakeLists.txt
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: MIT
#
-list(APPEND armnnNeonBackend_sources
+list(APPEND armnnNeonBackendWorkloads_sources
NeonActivationFloatWorkload.cpp
NeonActivationFloatWorkload.hpp
NeonActivationUint8Workload.cpp
@@ -75,9 +75,12 @@ list(APPEND armnnNeonBackend_sources
NeonSplitterUint8Workload.hpp
NeonSubtractionFloatWorkload.cpp
NeonSubtractionFloatWorkload.hpp
+ NeonWorkloads.hpp
+ NeonWorkloadUtils.cpp
+ NeonWorkloadUtils.hpp
)
-add_library(armnnNeonBackend STATIC ${armnnNeonBackend_sources})
-target_include_directories(armnnNeonBackend PRIVATE ${PROJECT_SOURCE_DIR}/src)
-target_include_directories(armnnNeonBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
-target_include_directories(armnnNeonBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
+add_library(armnnNeonBackendWorkloads STATIC ${armnnNeonBackendWorkloads_sources})
+target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src)
+target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
+target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
diff --git a/src/backends/NeonWorkloads/NeonActivationFloatWorkload.cpp b/src/backends/neon/workloads/NeonActivationFloatWorkload.cpp
index 1d6bf70431..1d6bf70431 100644
--- a/src/backends/NeonWorkloads/NeonActivationFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonActivationFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonActivationFloatWorkload.hpp b/src/backends/neon/workloads/NeonActivationFloatWorkload.hpp
index f8d25ca47d..4d2f51fb4f 100644
--- a/src/backends/NeonWorkloads/NeonActivationFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonActivationFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonActivationUint8Workload.cpp b/src/backends/neon/workloads/NeonActivationUint8Workload.cpp
index a5bba48156..4aed6b510f 100644
--- a/src/backends/NeonWorkloads/NeonActivationUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonActivationUint8Workload.cpp
@@ -5,7 +5,7 @@
#include "NeonActivationUint8Workload.hpp"
#include <backends/aclCommon/ArmComputeUtils.hpp>
-#include <backends/NeonLayerSupport.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonActivationUint8Workload.hpp b/src/backends/neon/workloads/NeonActivationUint8Workload.hpp
index 405e600691..56e3544379 100644
--- a/src/backends/NeonWorkloads/NeonActivationUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonActivationUint8Workload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonAdditionFloatWorkload.cpp b/src/backends/neon/workloads/NeonAdditionFloatWorkload.cpp
index 445e32ea44..445e32ea44 100644
--- a/src/backends/NeonWorkloads/NeonAdditionFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonAdditionFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonAdditionFloatWorkload.hpp b/src/backends/neon/workloads/NeonAdditionFloatWorkload.hpp
index 154e4f33d1..769492e949 100644
--- a/src/backends/NeonWorkloads/NeonAdditionFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonAdditionFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonBaseConstantWorkload.hpp b/src/backends/neon/workloads/NeonBaseConstantWorkload.hpp
index 59afc7022a..6bb275ac13 100644
--- a/src/backends/NeonWorkloads/NeonBaseConstantWorkload.hpp
+++ b/src/backends/neon/workloads/NeonBaseConstantWorkload.hpp
@@ -7,9 +7,9 @@
#include <arm_compute/core/Types.h>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
+#include <backends/neon/NeonTensorHandle.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include <backends/CpuTensorHandle.hpp>
-#include <backends/NeonTensorHandle.hpp>
-#include <backends/NeonWorkloadUtils.hpp>
#include <backends/Workload.hpp>
#include <Half.hpp>
diff --git a/src/backends/NeonWorkloads/NeonBaseMergerWorkload.hpp b/src/backends/neon/workloads/NeonBaseMergerWorkload.hpp
index 603e7f3544..9ff09f6c7c 100644
--- a/src/backends/NeonWorkloads/NeonBaseMergerWorkload.hpp
+++ b/src/backends/neon/workloads/NeonBaseMergerWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include <backends/Workload.hpp>
namespace armnn
diff --git a/src/backends/NeonWorkloads/NeonBaseSplitterWorkload.hpp b/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp
index 9288d4427e..dcee93363d 100644
--- a/src/backends/NeonWorkloads/NeonBaseSplitterWorkload.hpp
+++ b/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp
@@ -6,7 +6,7 @@
#pragma once
#include <backends/Workload.hpp>
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonBatchNormalizationFloatWorkload.cpp b/src/backends/neon/workloads/NeonBatchNormalizationFloatWorkload.cpp
index 2383e78df3..2383e78df3 100644
--- a/src/backends/NeonWorkloads/NeonBatchNormalizationFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonBatchNormalizationFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonBatchNormalizationFloatWorkload.hpp b/src/backends/neon/workloads/NeonBatchNormalizationFloatWorkload.hpp
index 7982541748..59c7404c44 100644
--- a/src/backends/NeonWorkloads/NeonBatchNormalizationFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonBatchNormalizationFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonConstantFloatWorkload.cpp b/src/backends/neon/workloads/NeonConstantFloatWorkload.cpp
index dbdd057101..dbdd057101 100644
--- a/src/backends/NeonWorkloads/NeonConstantFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonConstantFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonConstantFloatWorkload.hpp b/src/backends/neon/workloads/NeonConstantFloatWorkload.hpp
index c35b5fda3e..c35b5fda3e 100644
--- a/src/backends/NeonWorkloads/NeonConstantFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonConstantFloatWorkload.hpp
diff --git a/src/backends/NeonWorkloads/NeonConstantUint8Workload.cpp b/src/backends/neon/workloads/NeonConstantUint8Workload.cpp
index c607d86844..c607d86844 100644
--- a/src/backends/NeonWorkloads/NeonConstantUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonConstantUint8Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonConstantUint8Workload.hpp b/src/backends/neon/workloads/NeonConstantUint8Workload.hpp
index 2cb9516afe..2cb9516afe 100644
--- a/src/backends/NeonWorkloads/NeonConstantUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonConstantUint8Workload.hpp
diff --git a/src/backends/NeonWorkloads/NeonConvertFp16ToFp32Workload.cpp b/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp
index 86ec31c71d..86ec31c71d 100644
--- a/src/backends/NeonWorkloads/NeonConvertFp16ToFp32Workload.cpp
+++ b/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonConvertFp16ToFp32Workload.hpp b/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.hpp
index d70401b5f2..dcf6998c64 100644
--- a/src/backends/NeonWorkloads/NeonConvertFp16ToFp32Workload.hpp
+++ b/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.hpp
@@ -5,9 +5,9 @@
#pragma once
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-#include "backends/NeonWorkloadUtils.hpp"
+#include <backends/Workload.hpp>
+#include <backends/WorkloadData.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonConvertFp32ToFp16Workload.cpp b/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp
index 0f4fbe4e93..0f4fbe4e93 100644
--- a/src/backends/NeonWorkloads/NeonConvertFp32ToFp16Workload.cpp
+++ b/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonConvertFp32ToFp16Workload.hpp b/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.hpp
index eb839fdd9d..b819a8c542 100644
--- a/src/backends/NeonWorkloads/NeonConvertFp32ToFp16Workload.hpp
+++ b/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.hpp
@@ -5,9 +5,9 @@
#pragma once
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-#include "backends/NeonWorkloadUtils.hpp"
+#include <backends/Workload.hpp>
+#include <backends/WorkloadData.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp
index ee69088691..547f563d59 100644
--- a/src/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp
+++ b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp
@@ -5,7 +5,7 @@
#include <backends/CpuTensorHandle.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
-#include <backends/NeonLayerSupport.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
#include "NeonConvolution2dBaseWorkload.hpp"
diff --git a/src/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.hpp
index 93f71c3ac2..6af89c1f01 100644
--- a/src/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp
+++ b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.hpp
@@ -7,8 +7,8 @@
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <backends/CpuTensorHandle.hpp>
-#include <backends/NeonLayerSupport.hpp>
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include <backends/Workload.hpp>
#include <arm_compute/runtime/MemoryManagerOnDemand.h>
diff --git a/src/backends/NeonWorkloads/NeonConvolution2dFloatWorkload.cpp b/src/backends/neon/workloads/NeonConvolution2dFloatWorkload.cpp
index ea7a843468..cd26f8d536 100644
--- a/src/backends/NeonWorkloads/NeonConvolution2dFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonConvolution2dFloatWorkload.cpp
@@ -6,7 +6,7 @@
#include "NeonConvolution2dFloatWorkload.hpp"
#include <backends/CpuTensorHandle.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
-#include <backends/NeonLayerSupport.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonConvolution2dFloatWorkload.hpp b/src/backends/neon/workloads/NeonConvolution2dFloatWorkload.hpp
index dd8ef55f43..14c77c8bd0 100644
--- a/src/backends/NeonWorkloads/NeonConvolution2dFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonConvolution2dFloatWorkload.hpp
@@ -6,7 +6,7 @@
#pragma once
#include "NeonConvolution2dBaseWorkload.hpp"
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include "arm_compute/runtime/MemoryManagerOnDemand.h"
diff --git a/src/backends/NeonWorkloads/NeonConvolution2dUint8Workload.cpp b/src/backends/neon/workloads/NeonConvolution2dUint8Workload.cpp
index 5affe682b4..5affe682b4 100644
--- a/src/backends/NeonWorkloads/NeonConvolution2dUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonConvolution2dUint8Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonConvolution2dUint8Workload.hpp b/src/backends/neon/workloads/NeonConvolution2dUint8Workload.hpp
index ef60fc3e84..ef60fc3e84 100644
--- a/src/backends/NeonWorkloads/NeonConvolution2dUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonConvolution2dUint8Workload.hpp
diff --git a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.cpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp
index ef60b3238d..ef60b3238d 100644
--- a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.cpp
+++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp
index eec432be86..982992a363 100644
--- a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp
+++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include "backends/NeonWorkloadUtils.hpp"
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include <boost/optional.hpp>
diff --git a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionFloatWorkload.cpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionFloatWorkload.cpp
index db8e27ab23..742a768b94 100644
--- a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionFloatWorkload.cpp
@@ -4,7 +4,7 @@
//
#include "NeonDepthwiseConvolutionFloatWorkload.hpp"
-#include <backends/NeonLayerSupport.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
#include <backends/CpuTensorHandle.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
diff --git a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionFloatWorkload.hpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionFloatWorkload.hpp
index 4ec8c1dc37..0109ea10cb 100644
--- a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.cpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionUint8Workload.cpp
index 3efc5b0834..722b778eba 100644
--- a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionUint8Workload.cpp
@@ -4,7 +4,7 @@
//
#include "NeonDepthwiseConvolutionUint8Workload.hpp"
-#include <backends/NeonLayerSupport.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
#include <backends/CpuTensorHandle.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
diff --git a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.hpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionUint8Workload.hpp
index a0be512f9b..90cf8b0091 100644
--- a/src/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionUint8Workload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonFloorFloatWorkload.cpp b/src/backends/neon/workloads/NeonFloorFloatWorkload.cpp
index a08ba8a6ec..a08ba8a6ec 100644
--- a/src/backends/NeonWorkloads/NeonFloorFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonFloorFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonFloorFloatWorkload.hpp b/src/backends/neon/workloads/NeonFloorFloatWorkload.hpp
index ad9f44bbf9..478aa94ca4 100644
--- a/src/backends/NeonWorkloads/NeonFloorFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonFloorFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonFullyConnectedWorkload.cpp b/src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp
index 8cebb4f48f..8cebb4f48f 100644
--- a/src/backends/NeonWorkloads/NeonFullyConnectedWorkload.cpp
+++ b/src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonFullyConnectedWorkload.hpp b/src/backends/neon/workloads/NeonFullyConnectedWorkload.hpp
index 11991f87b5..9ffac96a86 100644
--- a/src/backends/NeonWorkloads/NeonFullyConnectedWorkload.hpp
+++ b/src/backends/neon/workloads/NeonFullyConnectedWorkload.hpp
@@ -5,9 +5,9 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
-#include "arm_compute/runtime/MemoryManagerOnDemand.h"
+#include <arm_compute/runtime/MemoryManagerOnDemand.h>
#include <memory>
diff --git a/src/backends/NeonWorkloads/NeonL2NormalizationFloatWorkload.cpp b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp
index dee789af85..dee789af85 100644
--- a/src/backends/NeonWorkloads/NeonL2NormalizationFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonL2NormalizationFloatWorkload.hpp b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.hpp
index 078c4d140f..c1221fb98c 100644
--- a/src/backends/NeonWorkloads/NeonL2NormalizationFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonL2NormalizationFloatWorkload.hpp
@@ -5,9 +5,8 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
-
-#include "arm_compute/runtime/MemoryManagerOnDemand.h"
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
+#include <arm_compute/runtime/MemoryManagerOnDemand.h>
#include <memory>
diff --git a/src/backends/NeonWorkloads/NeonLstmFloatWorkload.cpp b/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp
index 8b2b58d9b1..8b2b58d9b1 100644
--- a/src/backends/NeonWorkloads/NeonLstmFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonLstmFloatWorkload.hpp b/src/backends/neon/workloads/NeonLstmFloatWorkload.hpp
index 6064a017f9..4a5394f0a0 100644
--- a/src/backends/NeonWorkloads/NeonLstmFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonLstmFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonMergerFloatWorkload.cpp b/src/backends/neon/workloads/NeonMergerFloatWorkload.cpp
index 79039aa51a..79039aa51a 100644
--- a/src/backends/NeonWorkloads/NeonMergerFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonMergerFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonMergerFloatWorkload.hpp b/src/backends/neon/workloads/NeonMergerFloatWorkload.hpp
index e7088b8c2f..e7088b8c2f 100644
--- a/src/backends/NeonWorkloads/NeonMergerFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonMergerFloatWorkload.hpp
diff --git a/src/backends/NeonWorkloads/NeonMergerUint8Workload.cpp b/src/backends/neon/workloads/NeonMergerUint8Workload.cpp
index 3989702bd3..3989702bd3 100644
--- a/src/backends/NeonWorkloads/NeonMergerUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonMergerUint8Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonMergerUint8Workload.hpp b/src/backends/neon/workloads/NeonMergerUint8Workload.hpp
index 73c0fd55ad..73c0fd55ad 100644
--- a/src/backends/NeonWorkloads/NeonMergerUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonMergerUint8Workload.hpp
diff --git a/src/backends/NeonWorkloads/NeonMultiplicationFloatWorkload.cpp b/src/backends/neon/workloads/NeonMultiplicationFloatWorkload.cpp
index c4241ece19..c4241ece19 100644
--- a/src/backends/NeonWorkloads/NeonMultiplicationFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonMultiplicationFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonMultiplicationFloatWorkload.hpp b/src/backends/neon/workloads/NeonMultiplicationFloatWorkload.hpp
index 4b187b2d42..0a99c8cedc 100644
--- a/src/backends/NeonWorkloads/NeonMultiplicationFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonMultiplicationFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonNormalizationFloatWorkload.cpp b/src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp
index ee9785686b..472c75f222 100644
--- a/src/backends/NeonWorkloads/NeonNormalizationFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp
@@ -4,7 +4,7 @@
//
#include "NeonNormalizationFloatWorkload.hpp"
-#include <backends/NeonLayerSupport.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
#include <backends/aclCommon/ArmComputeUtils.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
diff --git a/src/backends/NeonWorkloads/NeonNormalizationFloatWorkload.hpp b/src/backends/neon/workloads/NeonNormalizationFloatWorkload.hpp
index 633944ddc9..c6f64c6c15 100644
--- a/src/backends/NeonWorkloads/NeonNormalizationFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonNormalizationFloatWorkload.hpp
@@ -5,9 +5,8 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
-
-#include "arm_compute/runtime/MemoryManagerOnDemand.h"
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
+#include <arm_compute/runtime/MemoryManagerOnDemand.h>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonPermuteWorkload.cpp b/src/backends/neon/workloads/NeonPermuteWorkload.cpp
index 7a20c70cfa..0bf4aa1319 100644
--- a/src/backends/NeonWorkloads/NeonPermuteWorkload.cpp
+++ b/src/backends/neon/workloads/NeonPermuteWorkload.cpp
@@ -4,7 +4,7 @@
//
#include "NeonPermuteWorkload.hpp"
-#include <backends/NeonTensorHandle.hpp>
+#include <backends/neon/NeonTensorHandle.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <arm_compute/core/Error.h>
diff --git a/src/backends/NeonWorkloads/NeonPermuteWorkload.hpp b/src/backends/neon/workloads/NeonPermuteWorkload.hpp
index 1fe05b1645..a85816be38 100644
--- a/src/backends/NeonWorkloads/NeonPermuteWorkload.hpp
+++ b/src/backends/neon/workloads/NeonPermuteWorkload.hpp
@@ -5,9 +5,9 @@
#pragma once
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-#include "backends/NeonWorkloadUtils.hpp"
+#include <backends/Workload.hpp>
+#include <backends/WorkloadData.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include <armnn/TypesUtils.hpp>
#include <arm_compute/runtime/NEON/functions/NEPermute.h>
diff --git a/src/backends/NeonWorkloads/NeonPooling2dBaseWorkload.cpp b/src/backends/neon/workloads/NeonPooling2dBaseWorkload.cpp
index 95286f48c8..109e856506 100644
--- a/src/backends/NeonWorkloads/NeonPooling2dBaseWorkload.cpp
+++ b/src/backends/neon/workloads/NeonPooling2dBaseWorkload.cpp
@@ -4,8 +4,8 @@
//
#include "NeonPooling2dBaseWorkload.hpp"
-#include <backends/NeonLayerSupport.hpp>
-#include <backends/NeonTensorHandle.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
+#include <backends/neon/NeonTensorHandle.hpp>
#include <backends/aclCommon/ArmComputeUtils.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
diff --git a/src/backends/NeonWorkloads/NeonPooling2dBaseWorkload.hpp b/src/backends/neon/workloads/NeonPooling2dBaseWorkload.hpp
index 77d6bf2f06..8ea41fe18a 100644
--- a/src/backends/NeonWorkloads/NeonPooling2dBaseWorkload.hpp
+++ b/src/backends/neon/workloads/NeonPooling2dBaseWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonPooling2dFloatWorkload.cpp b/src/backends/neon/workloads/NeonPooling2dFloatWorkload.cpp
index 46996b088c..46996b088c 100644
--- a/src/backends/NeonWorkloads/NeonPooling2dFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonPooling2dFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonPooling2dFloatWorkload.hpp b/src/backends/neon/workloads/NeonPooling2dFloatWorkload.hpp
index 78a35748bb..9b0eebdc2b 100644
--- a/src/backends/NeonWorkloads/NeonPooling2dFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonPooling2dFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include "NeonPooling2dBaseWorkload.hpp"
namespace armnn
diff --git a/src/backends/NeonWorkloads/NeonPooling2dUint8Workload.cpp b/src/backends/neon/workloads/NeonPooling2dUint8Workload.cpp
index 8f99a2be86..8f99a2be86 100644
--- a/src/backends/NeonWorkloads/NeonPooling2dUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonPooling2dUint8Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonPooling2dUint8Workload.hpp b/src/backends/neon/workloads/NeonPooling2dUint8Workload.hpp
index d475c5f721..d475c5f721 100644
--- a/src/backends/NeonWorkloads/NeonPooling2dUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonPooling2dUint8Workload.hpp
diff --git a/src/backends/NeonWorkloads/NeonReshapeFloatWorkload.cpp b/src/backends/neon/workloads/NeonReshapeFloatWorkload.cpp
index 2dae9466bb..2dae9466bb 100644
--- a/src/backends/NeonWorkloads/NeonReshapeFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonReshapeFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonReshapeFloatWorkload.hpp b/src/backends/neon/workloads/NeonReshapeFloatWorkload.hpp
index 066765adeb..bdef862419 100644
--- a/src/backends/NeonWorkloads/NeonReshapeFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonReshapeFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonReshapeUint8Workload.cpp b/src/backends/neon/workloads/NeonReshapeUint8Workload.cpp
index 41aa07fe49..41aa07fe49 100644
--- a/src/backends/NeonWorkloads/NeonReshapeUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonReshapeUint8Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonReshapeUint8Workload.hpp b/src/backends/neon/workloads/NeonReshapeUint8Workload.hpp
index 3f7c470323..4951873f0b 100644
--- a/src/backends/NeonWorkloads/NeonReshapeUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonReshapeUint8Workload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonSoftmaxBaseWorkload.cpp b/src/backends/neon/workloads/NeonSoftmaxBaseWorkload.cpp
index 0e11d8249f..0e11d8249f 100644
--- a/src/backends/NeonWorkloads/NeonSoftmaxBaseWorkload.cpp
+++ b/src/backends/neon/workloads/NeonSoftmaxBaseWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonSoftmaxBaseWorkload.hpp b/src/backends/neon/workloads/NeonSoftmaxBaseWorkload.hpp
index 24910df7c7..446392cd03 100644
--- a/src/backends/NeonWorkloads/NeonSoftmaxBaseWorkload.hpp
+++ b/src/backends/neon/workloads/NeonSoftmaxBaseWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include "backends/NeonWorkloadUtils.hpp"
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonSoftmaxFloatWorkload.cpp b/src/backends/neon/workloads/NeonSoftmaxFloatWorkload.cpp
index 92e5139c1a..92e5139c1a 100644
--- a/src/backends/NeonWorkloads/NeonSoftmaxFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonSoftmaxFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonSoftmaxFloatWorkload.hpp b/src/backends/neon/workloads/NeonSoftmaxFloatWorkload.hpp
index 47745c658f..83f29222eb 100644
--- a/src/backends/NeonWorkloads/NeonSoftmaxFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonSoftmaxFloatWorkload.hpp
@@ -5,9 +5,8 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
-
-#include "arm_compute/runtime/MemoryManagerOnDemand.h"
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
+#include <arm_compute/runtime/MemoryManagerOnDemand.h>
#include <memory>
diff --git a/src/backends/NeonWorkloads/NeonSoftmaxUint8Workload.cpp b/src/backends/neon/workloads/NeonSoftmaxUint8Workload.cpp
index cff869c9b7..cff869c9b7 100644
--- a/src/backends/NeonWorkloads/NeonSoftmaxUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonSoftmaxUint8Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonSoftmaxUint8Workload.hpp b/src/backends/neon/workloads/NeonSoftmaxUint8Workload.hpp
index f894c5a958..0d72514ec0 100644
--- a/src/backends/NeonWorkloads/NeonSoftmaxUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonSoftmaxUint8Workload.hpp
@@ -5,9 +5,8 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
-
-#include "arm_compute/runtime/MemoryManagerOnDemand.h"
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
+#include <arm_compute/runtime/MemoryManagerOnDemand.h>
namespace armnn
{
diff --git a/src/backends/NeonWorkloads/NeonSplitterFloatWorkload.cpp b/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp
index 39ed5b7cbc..39ed5b7cbc 100644
--- a/src/backends/NeonWorkloads/NeonSplitterFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonSplitterFloatWorkload.hpp b/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp
index 744a4fe216..744a4fe216 100644
--- a/src/backends/NeonWorkloads/NeonSplitterFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp
diff --git a/src/backends/NeonWorkloads/NeonSplitterUint8Workload.cpp b/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp
index 4b2cf8fc91..4b2cf8fc91 100644
--- a/src/backends/NeonWorkloads/NeonSplitterUint8Workload.cpp
+++ b/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp
diff --git a/src/backends/NeonWorkloads/NeonSplitterUint8Workload.hpp b/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp
index f219cfaa7d..f219cfaa7d 100644
--- a/src/backends/NeonWorkloads/NeonSplitterUint8Workload.hpp
+++ b/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp
diff --git a/src/backends/NeonWorkloads/NeonSubtractionFloatWorkload.cpp b/src/backends/neon/workloads/NeonSubtractionFloatWorkload.cpp
index 2acb829e3d..2acb829e3d 100644
--- a/src/backends/NeonWorkloads/NeonSubtractionFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonSubtractionFloatWorkload.cpp
diff --git a/src/backends/NeonWorkloads/NeonSubtractionFloatWorkload.hpp b/src/backends/neon/workloads/NeonSubtractionFloatWorkload.hpp
index 18988a35ca..98aeb4cfc5 100644
--- a/src/backends/NeonWorkloads/NeonSubtractionFloatWorkload.hpp
+++ b/src/backends/neon/workloads/NeonSubtractionFloatWorkload.hpp
@@ -5,7 +5,7 @@
#pragma once
-#include <backends/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
namespace armnn
{
diff --git a/src/backends/NeonWorkloadUtils.cpp b/src/backends/neon/workloads/NeonWorkloadUtils.cpp
index e388949d10..195f090171 100644
--- a/src/backends/NeonWorkloadUtils.cpp
+++ b/src/backends/neon/workloads/NeonWorkloadUtils.cpp
@@ -5,8 +5,9 @@
#include "NeonWorkloadUtils.hpp"
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <backends/aclCommon/ArmComputeUtils.hpp>
+#include <backends/neon/NeonTensorHandle.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
#include <backends/CpuTensorHandle.hpp>
-#include <backends/NeonTensorHandle.hpp>
#include <armnn/Utils.hpp>
#include <armnn/Exceptions.hpp>
@@ -18,7 +19,6 @@
#include "Profiling.hpp"
-#include "NeonLayerSupport.hpp"
#include <armnn/Types.hpp>
#include <Half.hpp>
diff --git a/src/backends/NeonWorkloadUtils.hpp b/src/backends/neon/workloads/NeonWorkloadUtils.hpp
index f3c8866f6d..22668f6f4b 100644
--- a/src/backends/NeonWorkloadUtils.hpp
+++ b/src/backends/neon/workloads/NeonWorkloadUtils.hpp
@@ -4,14 +4,14 @@
//
#pragma once
-#include "Workload.hpp"
+#include <backends/Workload.hpp>
+#include <backends/neon/NeonTensorHandle.hpp>
-#include "backends/NeonTensorHandle.hpp"
#include "NeonTimer.hpp"
-#include "arm_compute/core/Types.h"
-#include "arm_compute/core/Helpers.h"
-#include "arm_compute/runtime/NEON/NEFunctions.h"
+#include <arm_compute/core/Types.h>
+#include <arm_compute/core/Helpers.h>
+#include <arm_compute/runtime/NEON/NEFunctions.h>
#include <arm_compute/runtime/SubTensor.h>
#include <boost/cast.hpp>
diff --git a/src/backends/neon/workloads/NeonWorkloads.hpp b/src/backends/neon/workloads/NeonWorkloads.hpp
new file mode 100644
index 0000000000..a4ab6b2cac
--- /dev/null
+++ b/src/backends/neon/workloads/NeonWorkloads.hpp
@@ -0,0 +1,41 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+#include "NeonActivationFloatWorkload.hpp"
+#include "NeonActivationUint8Workload.hpp"
+#include "NeonAdditionFloatWorkload.hpp"
+#include "NeonBaseConstantWorkload.hpp"
+#include "NeonBaseMergerWorkload.hpp"
+#include "NeonBaseSplitterWorkload.hpp"
+#include "NeonBatchNormalizationFloatWorkload.hpp"
+#include "NeonConstantFloatWorkload.hpp"
+#include "NeonConstantUint8Workload.hpp"
+#include "NeonConvertFp16ToFp32Workload.hpp"
+#include "NeonConvertFp32ToFp16Workload.hpp"
+#include "NeonConvolution2dBaseWorkload.hpp"
+#include "NeonConvolution2dFloatWorkload.hpp"
+#include "NeonConvolution2dUint8Workload.hpp"
+#include "NeonDepthwiseConvolutionFloatWorkload.hpp"
+#include "NeonDepthwiseConvolutionUint8Workload.hpp"
+#include "NeonFloorFloatWorkload.hpp"
+#include "NeonFullyConnectedWorkload.hpp"
+#include "NeonL2NormalizationFloatWorkload.hpp"
+#include "NeonLstmFloatWorkload.hpp"
+#include "NeonMergerFloatWorkload.hpp"
+#include "NeonMergerUint8Workload.hpp"
+#include "NeonMultiplicationFloatWorkload.hpp"
+#include "NeonNormalizationFloatWorkload.hpp"
+#include "NeonPermuteWorkload.hpp"
+#include "NeonPooling2dBaseWorkload.hpp"
+#include "NeonPooling2dFloatWorkload.hpp"
+#include "NeonPooling2dUint8Workload.hpp"
+#include "NeonReshapeFloatWorkload.hpp"
+#include "NeonReshapeUint8Workload.hpp"
+#include "NeonSoftmaxFloatWorkload.hpp"
+#include "NeonSoftmaxUint8Workload.hpp"
+#include "NeonSplitterFloatWorkload.hpp"
+#include "NeonSplitterUint8Workload.hpp"
+#include "NeonSubtractionFloatWorkload.hpp"
diff --git a/src/backends/test/ArmComputeNeon.cpp b/src/backends/test/ArmComputeNeon.cpp
index e8af6b32d2..4844cc21f6 100644
--- a/src/backends/test/ArmComputeNeon.cpp
+++ b/src/backends/test/ArmComputeNeon.cpp
@@ -8,8 +8,8 @@
#include "LayerTests.hpp"
#include <backends/CpuTensorHandle.hpp>
-#include <backends/NeonLayerSupport.hpp>
-#include <backends/NeonWorkloadFactory.hpp>
+#include <backends/neon/NeonLayerSupport.hpp>
+#include <backends/neon/NeonWorkloadFactory.hpp>
#include <backends/reference/RefWorkloadFactory.hpp>
#include <backends/test/TensorCopyUtils.hpp>
#include "ActivationFixture.hpp"
diff --git a/src/backends/test/CreateWorkloadNeon.cpp b/src/backends/test/CreateWorkloadNeon.cpp
index ce62a02537..36ad9a4b77 100644
--- a/src/backends/test/CreateWorkloadNeon.cpp
+++ b/src/backends/test/CreateWorkloadNeon.cpp
@@ -2,11 +2,11 @@
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
-#include "backends/NeonWorkloadFactory.hpp"
-#include "backends/NeonWorkloadUtils.hpp"
-#include "backends/NeonWorkloads.hpp"
-#include "backends/MemCopyWorkload.hpp"
-#include "backends/NeonTensorHandle.hpp"
+#include <backends/neon/NeonWorkloadFactory.hpp>
+#include <backends/neon/NeonTensorHandle.hpp>
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
+#include <backends/neon/workloads/NeonWorkloads.hpp>
+#include <backends/MemCopyWorkload.hpp>
#include "test/CreateWorkloadClNeon.hpp"
diff --git a/src/backends/test/IsLayerSupportedTest.cpp b/src/backends/test/IsLayerSupportedTest.cpp
index 51bf11ebfa..7117e20db5 100644
--- a/src/backends/test/IsLayerSupportedTest.cpp
+++ b/src/backends/test/IsLayerSupportedTest.cpp
@@ -9,11 +9,11 @@
#include <backends/CpuTensorHandle.hpp>
#include <backends/reference/RefWorkloadFactory.hpp>
+#include <backends/neon/NeonWorkloadFactory.hpp>
#include <string>
#include <iostream>
#include <backends/ClWorkloadFactory.hpp>
-#include <backends/NeonWorkloadFactory.hpp>
#include "IsLayerSupportedTestImpl.hpp"
#include "ClContextControlFixture.hpp"
diff --git a/src/backends/test/MemCopyTests.cpp b/src/backends/test/MemCopyTests.cpp
index 4fbe9e717e..a1dc34a6ec 100644
--- a/src/backends/test/MemCopyTests.cpp
+++ b/src/backends/test/MemCopyTests.cpp
@@ -11,7 +11,7 @@
#include <backends/ClWorkloadFactory.hpp>
#endif
#if ARMCOMPUTENEON_ENABLED
-#include <backends/NeonWorkloadFactory.hpp>
+#include <backends/neon/NeonWorkloadFactory.hpp>
#endif
#include <backends/CpuTensorHandle.hpp>
#include "test/TensorHelpers.hpp"
diff --git a/src/backends/test/TensorCopyUtils.cpp b/src/backends/test/TensorCopyUtils.cpp
index 530dc79eb0..b2a9efc01e 100644
--- a/src/backends/test/TensorCopyUtils.cpp
+++ b/src/backends/test/TensorCopyUtils.cpp
@@ -11,11 +11,11 @@
#include "TensorCopyUtils.hpp"
#ifdef ARMCOMPUTECL_ENABLED
-#include "backends/ClTensorHandle.hpp"
+#include <backends/ClTensorHandle.hpp>
#endif
#if ARMCOMPUTENEON_ENABLED
-#include "backends/NeonTensorHandle.hpp"
+#include <backends/neon/NeonTensorHandle.hpp>
#endif
#if ARMCOMPUTECLENABLED || ARMCOMPUTENEON_ENABLED