From 2f2778f36e59537bbd47fb8b21e73c6c5a949584 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Mon, 27 May 2019 10:37:05 +0100 Subject: IVGCVSW-3145 Refactor Reference Reshape workloads * Removed reference reshape workloads for float32 and uint8 * Added RefReshapeWorkload * Added check for supported datatypes for reshape in WorkloadData * Added check for supported datatypes for reshape in RefLayerSupport * Updated CMakeLists.txt * Updated references to reshape workloads Signed-off-by: Nina Drozd Change-Id: I9941659067b022f8f7686ab0ff14776944dca3e5 --- src/backends/reference/workloads/CMakeLists.txt | 6 ++--- .../workloads/RefReshapeFloat32Workload.cpp | 27 ---------------------- .../workloads/RefReshapeFloat32Workload.hpp | 21 ----------------- .../workloads/RefReshapeUint8Workload.cpp | 27 ---------------------- .../workloads/RefReshapeUint8Workload.hpp | 21 ----------------- .../reference/workloads/RefReshapeWorkload.cpp | 25 ++++++++++++++++++++ .../reference/workloads/RefReshapeWorkload.hpp | 21 +++++++++++++++++ src/backends/reference/workloads/RefWorkloads.hpp | 3 +-- 8 files changed, 49 insertions(+), 102 deletions(-) delete mode 100644 src/backends/reference/workloads/RefReshapeFloat32Workload.cpp delete mode 100644 src/backends/reference/workloads/RefReshapeFloat32Workload.hpp delete mode 100644 src/backends/reference/workloads/RefReshapeUint8Workload.cpp delete mode 100644 src/backends/reference/workloads/RefReshapeUint8Workload.hpp create mode 100644 src/backends/reference/workloads/RefReshapeWorkload.cpp create mode 100644 src/backends/reference/workloads/RefReshapeWorkload.hpp (limited to 'src/backends/reference/workloads') diff --git a/src/backends/reference/workloads/CMakeLists.txt b/src/backends/reference/workloads/CMakeLists.txt index 7f26d78c7e..508dfdc293 100644 --- a/src/backends/reference/workloads/CMakeLists.txt +++ b/src/backends/reference/workloads/CMakeLists.txt @@ -91,10 +91,8 @@ list(APPEND armnnRefBackendWorkloads_sources RefPooling2dUint8Workload.hpp RefQuantizeWorkload.cpp RefQuantizeWorkload.hpp - RefReshapeFloat32Workload.cpp - RefReshapeFloat32Workload.hpp - RefReshapeUint8Workload.cpp - RefReshapeUint8Workload.hpp + RefReshapeWorkload.cpp + RefReshapeWorkload.hpp RefResizeBilinearFloat32Workload.cpp RefResizeBilinearFloat32Workload.hpp RefResizeBilinearUint8Workload.cpp diff --git a/src/backends/reference/workloads/RefReshapeFloat32Workload.cpp b/src/backends/reference/workloads/RefReshapeFloat32Workload.cpp deleted file mode 100644 index 99c94a49a1..0000000000 --- a/src/backends/reference/workloads/RefReshapeFloat32Workload.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "RefReshapeFloat32Workload.hpp" - -#include "RefWorkloadUtils.hpp" - -#include "Profiling.hpp" - -#include - -namespace armnn -{ - -void RefReshapeFloat32Workload::Execute() const -{ - ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefReshapeFloat32Workload_Execute"); - - void* output = GetOutputTensorData(0, m_Data); - const void* input = GetInputTensorData(0, m_Data); - unsigned int numBytes = GetTensorInfo(m_Data.m_Inputs[0]).GetNumBytes(); - memcpy(output, input, numBytes); -} - -} //namespace armnn diff --git a/src/backends/reference/workloads/RefReshapeFloat32Workload.hpp b/src/backends/reference/workloads/RefReshapeFloat32Workload.hpp deleted file mode 100644 index 75024b3db6..0000000000 --- a/src/backends/reference/workloads/RefReshapeFloat32Workload.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include -#include - -namespace armnn -{ - -class RefReshapeFloat32Workload : public Float32Workload -{ -public: - using Float32Workload::Float32Workload; - virtual void Execute() const override; -}; - -} //namespace armnn diff --git a/src/backends/reference/workloads/RefReshapeUint8Workload.cpp b/src/backends/reference/workloads/RefReshapeUint8Workload.cpp deleted file mode 100644 index 8f475f3db3..0000000000 --- a/src/backends/reference/workloads/RefReshapeUint8Workload.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "RefReshapeUint8Workload.hpp" - -#include "RefWorkloadUtils.hpp" - -#include "Profiling.hpp" - -#include - -namespace armnn -{ - -void RefReshapeUint8Workload::Execute() const -{ - ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefReshapeUint8Workload_Execute"); - - void* output = GetOutputTensorData(0, m_Data); - const void* input = GetInputTensorData(0, m_Data); - unsigned int numBytes = GetTensorInfo(m_Data.m_Inputs[0]).GetNumBytes(); - memcpy(output, input, numBytes); -} - -} //namespace armnn diff --git a/src/backends/reference/workloads/RefReshapeUint8Workload.hpp b/src/backends/reference/workloads/RefReshapeUint8Workload.hpp deleted file mode 100644 index c3d31f8a73..0000000000 --- a/src/backends/reference/workloads/RefReshapeUint8Workload.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include -#include - -namespace armnn -{ - -class RefReshapeUint8Workload : public Uint8Workload -{ -public: - using Uint8Workload::Uint8Workload; - virtual void Execute() const override; -}; - -} //namespace armnn diff --git a/src/backends/reference/workloads/RefReshapeWorkload.cpp b/src/backends/reference/workloads/RefReshapeWorkload.cpp new file mode 100644 index 0000000000..6d29781937 --- /dev/null +++ b/src/backends/reference/workloads/RefReshapeWorkload.cpp @@ -0,0 +1,25 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "RefReshapeWorkload.hpp" +#include "RefWorkloadUtils.hpp" +#include "Profiling.hpp" + +#include + +namespace armnn +{ + +void RefReshapeWorkload::Execute() const +{ + ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefReshapeWorkload_Execute"); + + void* output = GetOutputTensorData(0, m_Data); + const void* input = GetInputTensorData(0, m_Data); + unsigned int numBytes = GetTensorInfo(m_Data.m_Inputs[0]).GetNumBytes(); + memcpy(output, input, numBytes); +} + +} //namespace armnn diff --git a/src/backends/reference/workloads/RefReshapeWorkload.hpp b/src/backends/reference/workloads/RefReshapeWorkload.hpp new file mode 100644 index 0000000000..7359ff9cde --- /dev/null +++ b/src/backends/reference/workloads/RefReshapeWorkload.hpp @@ -0,0 +1,21 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include +#include + +namespace armnn +{ + +class RefReshapeWorkload : public BaseWorkload +{ +public: + using BaseWorkload::BaseWorkload; + virtual void Execute() const override; +}; + +} //namespace armnn diff --git a/src/backends/reference/workloads/RefWorkloads.hpp b/src/backends/reference/workloads/RefWorkloads.hpp index 54bc5c7f01..20649d93ce 100644 --- a/src/backends/reference/workloads/RefWorkloads.hpp +++ b/src/backends/reference/workloads/RefWorkloads.hpp @@ -23,14 +23,12 @@ #include "TensorBufferArrayView.hpp" #include "RefBatchNormalizationFloat32Workload.hpp" #include "Splitter.hpp" -#include "RefReshapeFloat32Workload.hpp" #include "RefDepthwiseConvolution2dWorkload.hpp" #include "FullyConnected.hpp" #include "Gather.hpp" #include "RefFloorFloat32Workload.hpp" #include "RefSoftmaxFloat32Workload.hpp" #include "RefSoftmaxUint8Workload.hpp" -#include "RefReshapeUint8Workload.hpp" #include "RefResizeBilinearFloat32Workload.hpp" #include "RefBatchNormalizationUint8Workload.hpp" #include "ResizeBilinear.hpp" @@ -59,3 +57,4 @@ #include "RefRsqrtFloat32Workload.hpp" #include "RefDequantizeWorkload.hpp" #include "RefQuantizeWorkload.hpp" +#include "RefReshapeWorkload.hpp" -- cgit v1.2.1