aboutsummaryrefslogtreecommitdiff
path: root/src/backends
diff options
context:
space:
mode:
authorarovir01 <Aron.Virginas-Tar@arm.com>2018-10-01 17:08:59 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:57 +0100
commit616e775763280992de92287b129dc335be91a24c (patch)
tree5b7ced2fa8005f4371fe8005ee98cb88d16e0e09 /src/backends
parent29cadb3ff3066d6feb1801a921be326bf5ed8f47 (diff)
downloadarmnn-616e775763280992de92287b129dc335be91a24c.tar.gz
IVGCVSW-1913: Fix for ValidationTest.concat_float_3_relaxed
* Added RefPermuteFloat16Workload to serve as a fallback when CL does not support the required permute configuration for FP16 * Move Half.hpp to armnnUtils as the utils library should not be including private header files from the armnn library Change-Id: Ibf0f698451e8406f7ed7cce470dab60b6d16361d
Diffstat (limited to 'src/backends')
-rw-r--r--src/backends/cl/workloads/ClBaseConstantWorkload.cpp3
-rw-r--r--src/backends/cl/workloads/ClWorkloadUtils.hpp4
-rw-r--r--src/backends/neon/workloads/NeonBaseConstantWorkload.hpp2
-rw-r--r--src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp2
-rw-r--r--src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp3
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp2
-rw-r--r--src/backends/reference/RefWorkloadFactory.cpp3
-rw-r--r--src/backends/reference/workloads/RefConvertFp16ToFp32Workload.cpp4
-rw-r--r--src/backends/reference/workloads/RefConvertFp32ToFp16Workload.cpp4
-rw-r--r--src/backends/reference/workloads/RefPermuteWorkload.cpp1
-rw-r--r--src/backends/reference/workloads/RefPermuteWorkload.hpp1
-rw-r--r--src/backends/reference/workloads/RefWorkloadUtils.hpp2
-rw-r--r--src/backends/test/ConvertFp16ToFp32TestImpl.hpp2
-rw-r--r--src/backends/test/ConvertFp32ToFp16TestImpl.hpp4
-rw-r--r--src/backends/test/LayerTests.hpp2
-rw-r--r--src/backends/test/TensorCopyUtils.cpp12
16 files changed, 29 insertions, 22 deletions
diff --git a/src/backends/cl/workloads/ClBaseConstantWorkload.cpp b/src/backends/cl/workloads/ClBaseConstantWorkload.cpp
index 2557020b59..848ab5ade6 100644
--- a/src/backends/cl/workloads/ClBaseConstantWorkload.cpp
+++ b/src/backends/cl/workloads/ClBaseConstantWorkload.cpp
@@ -4,10 +4,11 @@
//
#include "ClBaseConstantWorkload.hpp"
+
+#include <armnnUtils/Half.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <backends/cl/ClTensorHandle.hpp>
#include <backends/CpuTensorHandle.hpp>
-#include <Half.hpp>
#include "ClWorkloadUtils.hpp"
diff --git a/src/backends/cl/workloads/ClWorkloadUtils.hpp b/src/backends/cl/workloads/ClWorkloadUtils.hpp
index 3a8ff00bb6..af4ccd0bb8 100644
--- a/src/backends/cl/workloads/ClWorkloadUtils.hpp
+++ b/src/backends/cl/workloads/ClWorkloadUtils.hpp
@@ -4,11 +4,11 @@
//
#pragma once
-#include "OpenClTimer.hpp"
+#include <armnnUtils/Half.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <backends/CpuTensorHandle.hpp>
-#include <Half.hpp>
+#include "OpenClTimer.hpp"
#define ARMNN_SCOPED_PROFILING_EVENT_CL(name) \
ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::GpuAcc, \
diff --git a/src/backends/neon/workloads/NeonBaseConstantWorkload.hpp b/src/backends/neon/workloads/NeonBaseConstantWorkload.hpp
index 6bb275ac13..828e476d29 100644
--- a/src/backends/neon/workloads/NeonBaseConstantWorkload.hpp
+++ b/src/backends/neon/workloads/NeonBaseConstantWorkload.hpp
@@ -6,12 +6,12 @@
#pragma once
#include <arm_compute/core/Types.h>
+#include <armnnUtils/Half.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
#include <backends/neon/NeonTensorHandle.hpp>
#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
#include <backends/CpuTensorHandle.hpp>
#include <backends/Workload.hpp>
-#include <Half.hpp>
#include <boost/cast.hpp>
diff --git a/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp b/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp
index 84e341fe64..c8a3f27352 100644
--- a/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp
+++ b/src/backends/neon/workloads/NeonConvertFp16ToFp32Workload.cpp
@@ -4,9 +4,9 @@
//
#include "NeonConvertFp16ToFp32Workload.hpp"
-#include <Half.hpp>
#include <FloatingPointConverter.hpp>
+#include <armnnUtils/Half.hpp>
#include <backends/WorkloadUtils.hpp>
namespace armnn
diff --git a/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp b/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp
index 261de3d0ce..6bcf6e082c 100644
--- a/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp
+++ b/src/backends/neon/workloads/NeonConvertFp32ToFp16Workload.cpp
@@ -5,9 +5,8 @@
#include "NeonConvertFp32ToFp16Workload.hpp"
-#include <Half.hpp>
+#include <armnnUtils/Half.hpp>
#include <FloatingPointConverter.hpp>
-
#include <Profiling.hpp>
#include <backends/WorkloadUtils.hpp>
diff --git a/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp
index 547f563d59..3b9626d7d3 100644
--- a/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp
+++ b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp
@@ -10,7 +10,7 @@
#include "NeonConvolution2dBaseWorkload.hpp"
#include <armnn/Types.hpp>
-#include <Half.hpp>
+#include <armnnUtils/Half.hpp>
namespace armnn
{
diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp
index 582c691a18..d7d2e27d59 100644
--- a/src/backends/reference/RefWorkloadFactory.cpp
+++ b/src/backends/reference/RefWorkloadFactory.cpp
@@ -114,7 +114,8 @@ std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreateFullyConnected(
std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkload<RefPermuteFloat32Workload, RefPermuteUint8Workload>(descriptor, info);
+ return armnn::MakeWorkload<RefPermuteFloat16Workload, RefPermuteFloat32Workload, RefPermuteUint8Workload>
+ (descriptor, info);
}
std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor,
diff --git a/src/backends/reference/workloads/RefConvertFp16ToFp32Workload.cpp b/src/backends/reference/workloads/RefConvertFp16ToFp32Workload.cpp
index e148bf6a9d..b01246b1e9 100644
--- a/src/backends/reference/workloads/RefConvertFp16ToFp32Workload.cpp
+++ b/src/backends/reference/workloads/RefConvertFp16ToFp32Workload.cpp
@@ -4,10 +4,12 @@
//
#include "RefConvertFp16ToFp32Workload.hpp"
-#include "Half.hpp"
+
#include "RefWorkloadUtils.hpp"
#include "FloatingPointConverter.hpp"
+#include <armnnUtils/Half.hpp>
+
namespace armnn
{
diff --git a/src/backends/reference/workloads/RefConvertFp32ToFp16Workload.cpp b/src/backends/reference/workloads/RefConvertFp32ToFp16Workload.cpp
index efaaf8e1ad..99e3541dd6 100644
--- a/src/backends/reference/workloads/RefConvertFp32ToFp16Workload.cpp
+++ b/src/backends/reference/workloads/RefConvertFp32ToFp16Workload.cpp
@@ -5,12 +5,12 @@
#include "RefConvertFp32ToFp16Workload.hpp"
-#include "Half.hpp"
#include "FloatingPointConverter.hpp"
#include "RefWorkloadUtils.hpp"
-
#include "Profiling.hpp"
+#include "armnnUtils/Half.hpp"
+
namespace armnn
{
diff --git a/src/backends/reference/workloads/RefPermuteWorkload.cpp b/src/backends/reference/workloads/RefPermuteWorkload.cpp
index 4093ff38f4..df5015636b 100644
--- a/src/backends/reference/workloads/RefPermuteWorkload.cpp
+++ b/src/backends/reference/workloads/RefPermuteWorkload.cpp
@@ -26,6 +26,7 @@ void RefPermuteWorkload<DataType>::Execute() const
armnnUtils::Permute(GetTensorInfo(dst).GetShape(), mappings, GetConstCpuData<T>(src), GetCpuData<T>(dst));
}
+template class RefPermuteWorkload<DataType::Float16>;
template class RefPermuteWorkload<DataType::Float32>;
template class RefPermuteWorkload<DataType::QuantisedAsymm8>;
diff --git a/src/backends/reference/workloads/RefPermuteWorkload.hpp b/src/backends/reference/workloads/RefPermuteWorkload.hpp
index 2cc176d205..841a080dfd 100644
--- a/src/backends/reference/workloads/RefPermuteWorkload.hpp
+++ b/src/backends/reference/workloads/RefPermuteWorkload.hpp
@@ -27,6 +27,7 @@ public:
void Execute() const override;
};
+using RefPermuteFloat16Workload = RefPermuteWorkload<DataType::Float16>;
using RefPermuteFloat32Workload = RefPermuteWorkload<DataType::Float32>;
using RefPermuteUint8Workload = RefPermuteWorkload<DataType::QuantisedAsymm8>;
diff --git a/src/backends/reference/workloads/RefWorkloadUtils.hpp b/src/backends/reference/workloads/RefWorkloadUtils.hpp
index 153c519350..67a1f5e867 100644
--- a/src/backends/reference/workloads/RefWorkloadUtils.hpp
+++ b/src/backends/reference/workloads/RefWorkloadUtils.hpp
@@ -9,7 +9,7 @@
#include <armnn/Tensor.hpp>
#include <armnn/Types.hpp>
-#include <Half.hpp>
+#include <armnnUtils/Half.hpp>
#include <boost/polymorphic_cast.hpp>
diff --git a/src/backends/test/ConvertFp16ToFp32TestImpl.hpp b/src/backends/test/ConvertFp16ToFp32TestImpl.hpp
index b75879dea6..483689df4c 100644
--- a/src/backends/test/ConvertFp16ToFp32TestImpl.hpp
+++ b/src/backends/test/ConvertFp16ToFp32TestImpl.hpp
@@ -8,13 +8,13 @@
#include <armnn/ArmNN.hpp>
#include <armnn/Tensor.hpp>
#include <armnn/TypesUtils.hpp>
+#include <armnnUtils/Half.hpp>
#include <backends/WorkloadInfo.hpp>
#include <backends/CpuTensorHandle.hpp>
#include <test/TensorHelpers.hpp>
-#include <Half.hpp>
LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test(armnn::IWorkloadFactory& workloadFactory)
{
diff --git a/src/backends/test/ConvertFp32ToFp16TestImpl.hpp b/src/backends/test/ConvertFp32ToFp16TestImpl.hpp
index 1325b4b054..e4698a93e5 100644
--- a/src/backends/test/ConvertFp32ToFp16TestImpl.hpp
+++ b/src/backends/test/ConvertFp32ToFp16TestImpl.hpp
@@ -8,13 +8,13 @@
#include <armnn/ArmNN.hpp>
#include <armnn/Tensor.hpp>
#include <armnn/TypesUtils.hpp>
+#include <armnnUtils/Half.hpp>
#include <backends/WorkloadInfo.hpp>
#include <backends/CpuTensorHandle.hpp>
#include <test/TensorHelpers.hpp>
-#include <Half.hpp>
LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(armnn::IWorkloadFactory& workloadFactory)
{
@@ -52,4 +52,4 @@ LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(armnn::IWorkloadFact
CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get());
return ret;
-} \ No newline at end of file
+}
diff --git a/src/backends/test/LayerTests.hpp b/src/backends/test/LayerTests.hpp
index 9dc3afa150..8939903432 100644
--- a/src/backends/test/LayerTests.hpp
+++ b/src/backends/test/LayerTests.hpp
@@ -6,7 +6,7 @@
#include "armnn/ArmNN.hpp"
#include "armnn/Tensor.hpp"
-#include "Half.hpp"
+#include "armnnUtils/Half.hpp"
#include <boost/multi_array.hpp>
#include <boost/assert.hpp>
diff --git a/src/backends/test/TensorCopyUtils.cpp b/src/backends/test/TensorCopyUtils.cpp
index e92469aaa3..7e17e8b9fd 100644
--- a/src/backends/test/TensorCopyUtils.cpp
+++ b/src/backends/test/TensorCopyUtils.cpp
@@ -3,13 +3,11 @@
// SPDX-License-Identifier: MIT
//
-#include <algorithm>
-#include <cstring>
-#include <boost/cast.hpp>
-#include <Half.hpp>
-
#include "TensorCopyUtils.hpp"
+#include <armnnUtils/Half.hpp>
+
+
#ifdef ARMCOMPUTECL_ENABLED
#include <backends/cl/ClTensorHandle.hpp>
#endif
@@ -24,6 +22,10 @@
#include <backends/CpuTensorHandle.hpp>
+#include <boost/cast.hpp>
+#include <algorithm>
+#include <cstring>
+
void CopyDataToITensorHandle(armnn::ITensorHandle* tensorHandle, const void* mem)
{
switch (tensorHandle->GetType())