aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads
diff options
context:
space:
mode:
authornarpra01 <narumol.prangnawarat@arm.com>2019-01-23 15:23:11 +0000
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-01-23 17:13:15 +0000
commitdb2b160bf9e7759d0157dfa57ee940290f5170e3 (patch)
tree536fa36ebc9eb8442b96b486a10cadab28d32647 /src/backends/reference/workloads
parentc625f000198218fc8d03130ee5658f73b94b2683 (diff)
downloadarmnn-db2b160bf9e7759d0157dfa57ee940290f5170e3.tar.gz
IVGCVSW-2511 Add end to end Gather layer test
* Add end to end test for Gather operator * Add Support for int32 to Constant layer for Ref * Add Int32Workload * Add RefConstantWorkload as template for float, uint8, int32 * Remove unused RefBaseConstantWorkload * Remove unused RefConstantFloat32Workload * Remove unused RefConstantUint8Workload * Add support check for int32 in LayerSupport functions Change-Id: Ic970588a49ebe2aafb12be8adef52371feacaa7b
Diffstat (limited to 'src/backends/reference/workloads')
-rw-r--r--src/backends/reference/workloads/CMakeLists.txt8
-rw-r--r--src/backends/reference/workloads/RefConstantFloat32Workload.cpp19
-rw-r--r--src/backends/reference/workloads/RefConstantFloat32Workload.hpp20
-rw-r--r--src/backends/reference/workloads/RefConstantUint8Workload.cpp19
-rw-r--r--src/backends/reference/workloads/RefConstantUint8Workload.hpp20
-rw-r--r--src/backends/reference/workloads/RefConstantWorkload.cpp (renamed from src/backends/reference/workloads/RefBaseConstantWorkload.cpp)13
-rw-r--r--src/backends/reference/workloads/RefConstantWorkload.hpp (renamed from src/backends/reference/workloads/RefBaseConstantWorkload.hpp)13
-rw-r--r--src/backends/reference/workloads/RefWorkloads.hpp4
8 files changed, 21 insertions, 95 deletions
diff --git a/src/backends/reference/workloads/CMakeLists.txt b/src/backends/reference/workloads/CMakeLists.txt
index 583c89a5b4..f95fda08d1 100644
--- a/src/backends/reference/workloads/CMakeLists.txt
+++ b/src/backends/reference/workloads/CMakeLists.txt
@@ -32,8 +32,6 @@ list(APPEND armnnRefBackendWorkloads_sources
RefActivationFloat32Workload.hpp
RefActivationUint8Workload.cpp
RefActivationUint8Workload.hpp
- RefBaseConstantWorkload.cpp
- RefBaseConstantWorkload.hpp
RefBatchNormalizationFloat32Workload.cpp
RefBatchNormalizationFloat32Workload.hpp
RefBatchNormalizationUint8Workload.cpp
@@ -42,10 +40,8 @@ list(APPEND armnnRefBackendWorkloads_sources
RefBatchToSpaceNdFloat32Workload.hpp
RefBatchToSpaceNdUint8Workload.cpp
RefBatchToSpaceNdUint8Workload.hpp
- RefConstantFloat32Workload.cpp
- RefConstantFloat32Workload.hpp
- RefConstantUint8Workload.cpp
- RefConstantUint8Workload.hpp
+ RefConstantWorkload.cpp
+ RefConstantWorkload.hpp
RefConvertFp16ToFp32Workload.cpp
RefConvertFp16ToFp32Workload.hpp
RefConvertFp32ToFp16Workload.cpp
diff --git a/src/backends/reference/workloads/RefConstantFloat32Workload.cpp b/src/backends/reference/workloads/RefConstantFloat32Workload.cpp
deleted file mode 100644
index 074e8ccaae..0000000000
--- a/src/backends/reference/workloads/RefConstantFloat32Workload.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefConstantFloat32Workload.hpp"
-
-#include "Profiling.hpp"
-
-namespace armnn
-{
-
-void RefConstantFloat32Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefConstantFloat32Workload_Execute");
- RefBaseConstantWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/reference/workloads/RefConstantFloat32Workload.hpp b/src/backends/reference/workloads/RefConstantFloat32Workload.hpp
deleted file mode 100644
index 76e3a42026..0000000000
--- a/src/backends/reference/workloads/RefConstantFloat32Workload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "RefBaseConstantWorkload.hpp"
-
-namespace armnn
-{
-
-class RefConstantFloat32Workload : public RefBaseConstantWorkload<DataType::Float32>
-{
-public:
- using RefBaseConstantWorkload<DataType::Float32>::RefBaseConstantWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/reference/workloads/RefConstantUint8Workload.cpp b/src/backends/reference/workloads/RefConstantUint8Workload.cpp
deleted file mode 100644
index 07e4719d54..0000000000
--- a/src/backends/reference/workloads/RefConstantUint8Workload.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefConstantUint8Workload.hpp"
-
-#include "Profiling.hpp"
-
-namespace armnn
-{
-
-void RefConstantUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefConstantUint8Workload_Execute");
- RefBaseConstantWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/reference/workloads/RefConstantUint8Workload.hpp b/src/backends/reference/workloads/RefConstantUint8Workload.hpp
deleted file mode 100644
index 02552ac80b..0000000000
--- a/src/backends/reference/workloads/RefConstantUint8Workload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "RefBaseConstantWorkload.hpp"
-
-namespace armnn
-{
-
-class RefConstantUint8Workload : public RefBaseConstantWorkload<DataType::QuantisedAsymm8>
-{
-public:
- using RefBaseConstantWorkload<DataType::QuantisedAsymm8>::RefBaseConstantWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/reference/workloads/RefBaseConstantWorkload.cpp b/src/backends/reference/workloads/RefConstantWorkload.cpp
index 647677b4fb..e074c6fb04 100644
--- a/src/backends/reference/workloads/RefBaseConstantWorkload.cpp
+++ b/src/backends/reference/workloads/RefConstantWorkload.cpp
@@ -1,9 +1,9 @@
-//
+//
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
-#include "RefBaseConstantWorkload.hpp"
+#include "RefConstantWorkload.hpp"
#include "RefWorkloadUtils.hpp"
@@ -17,7 +17,7 @@ namespace armnn
{
template <armnn::DataType DataType>
-void RefBaseConstantWorkload<DataType>::Execute() const
+void RefConstantWorkload<DataType>::Execute() const
{
// Considering the reference backend independently, it could be possible to initialise the intermediate tensor
// created by the layer output handler at workload construction time, rather than at workload execution time.
@@ -27,6 +27,8 @@ void RefBaseConstantWorkload<DataType>::Execute() const
// could have a non-owning reference to the layer output tensor managed by the const input layer); again, this is
// not an option for other backends, and the extra complexity required to make this work for the reference backend
// may not be worth the effort (skipping a memory copy in the first inference).
+ ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefConstantWorkload_Execute");
+
if (!m_RanOnce)
{
const ConstantQueueDescriptor& data = this->m_Data;
@@ -43,7 +45,8 @@ void RefBaseConstantWorkload<DataType>::Execute() const
}
}
-template class RefBaseConstantWorkload<DataType::Float32>;
-template class RefBaseConstantWorkload<DataType::QuantisedAsymm8>;
+template class RefConstantWorkload<DataType::Float32>;
+template class RefConstantWorkload<DataType::QuantisedAsymm8>;
+template class RefConstantWorkload<DataType::Signed32>;
} //namespace armnn
diff --git a/src/backends/reference/workloads/RefBaseConstantWorkload.hpp b/src/backends/reference/workloads/RefConstantWorkload.hpp
index 82ee11f6ec..75d7ecce26 100644
--- a/src/backends/reference/workloads/RefBaseConstantWorkload.hpp
+++ b/src/backends/reference/workloads/RefConstantWorkload.hpp
@@ -1,4 +1,4 @@
-//
+//
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -15,19 +15,26 @@ namespace armnn
// Base class template providing an implementation of the Constant layer common to all data types.
template <armnn::DataType DataType>
-class RefBaseConstantWorkload : public TypedWorkload<ConstantQueueDescriptor, DataType>
+class RefConstantWorkload : public TypedWorkload<ConstantQueueDescriptor, DataType>
{
public:
- RefBaseConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info)
+ RefConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info)
: TypedWorkload<ConstantQueueDescriptor, DataType>(descriptor, info)
, m_RanOnce(false)
{
}
+ using TypedWorkload<ConstantQueueDescriptor, DataType>::m_Data;
+ using TypedWorkload<ConstantQueueDescriptor, DataType>::TypedWorkload;
+
virtual void Execute() const override;
private:
mutable bool m_RanOnce;
};
+using RefConstantFloat32Workload = RefConstantWorkload<DataType::Float32>;
+using RefConstantUint8Workload = RefConstantWorkload<DataType::QuantisedAsymm8>;
+using RefConstantInt32Workload = RefConstantWorkload<DataType::Signed32>;
+
} //namespace armnn
diff --git a/src/backends/reference/workloads/RefWorkloads.hpp b/src/backends/reference/workloads/RefWorkloads.hpp
index 8550ee583e..1cbceb366b 100644
--- a/src/backends/reference/workloads/RefWorkloads.hpp
+++ b/src/backends/reference/workloads/RefWorkloads.hpp
@@ -5,11 +5,10 @@
#pragma once
-#include "RefConstantUint8Workload.hpp"
#include "ElementwiseFunction.hpp"
#include "RefElementwiseWorkload.hpp"
#include "ConvImpl.hpp"
-#include "RefBaseConstantWorkload.hpp"
+#include "RefConstantWorkload.hpp"
#include "RefConvolution2dUint8Workload.hpp"
#include "RefSplitterUint8Workload.hpp"
#include "RefResizeBilinearUint8Workload.hpp"
@@ -46,7 +45,6 @@
#include "RefSpaceToBatchNdWorkload.hpp"
#include "RefSplitterFloat32Workload.hpp"
#include "RefStridedSliceWorkload.hpp"
-#include "RefConstantFloat32Workload.hpp"
#include "RefActivationFloat32Workload.hpp"
#include "RefConvolution2dFloat32Workload.hpp"
#include "Pooling2d.hpp"