From 66aecb0bcab0de55afd6a9f217b17fa6107dd308 Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Wed, 24 Jun 2020 11:42:20 +0100 Subject: IVGCVSW-4621 Add CL FILL Workload * Add CL workload for Fill Operator * Enabled Fill operator tests on CL * CLFill function does not have validate() function yet IsLayerSupported() function return true at the moment * Enabled int32 to tests on backends Signed-off-by: Sadik Armagan Change-Id: I9f8cc6d1c86f832ba46a8d170572f4cfcde9ab17 --- src/backends/cl/workloads/CMakeLists.txt | 2 ++ src/backends/cl/workloads/ClFillWorkload.cpp | 35 ++++++++++++++++++++++++++++ src/backends/cl/workloads/ClFillWorkload.hpp | 24 +++++++++++++++++++ src/backends/cl/workloads/ClWorkloads.hpp | 1 + 4 files changed, 62 insertions(+) create mode 100644 src/backends/cl/workloads/ClFillWorkload.cpp create mode 100644 src/backends/cl/workloads/ClFillWorkload.hpp (limited to 'src/backends/cl/workloads') diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt index 6baeae0a80..fe9c9fa5c7 100644 --- a/src/backends/cl/workloads/CMakeLists.txt +++ b/src/backends/cl/workloads/CMakeLists.txt @@ -38,6 +38,8 @@ list(APPEND armnnClBackendWorkloads_sources ClDivisionFloatWorkload.hpp ClExpWorkload.cpp ClExpWorkload.hpp + ClFillWorkload.cpp + ClFillWorkload.hpp ClFloorFloatWorkload.cpp ClFloorFloatWorkload.hpp ClFullyConnectedWorkload.cpp diff --git a/src/backends/cl/workloads/ClFillWorkload.cpp b/src/backends/cl/workloads/ClFillWorkload.cpp new file mode 100644 index 0000000000..47a70bc677 --- /dev/null +++ b/src/backends/cl/workloads/ClFillWorkload.cpp @@ -0,0 +1,35 @@ +// +// Copyright © 2020 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "ClFillWorkload.hpp" + +#include "ClWorkloadUtils.hpp" + +#include +#include +#include + +namespace armnn +{ +using namespace armcomputetensorutils; + +ClFillWorkload::ClFillWorkload(const FillQueueDescriptor& descriptor, const WorkloadInfo& info) + : BaseWorkload(descriptor, info) +{ + m_Data.ValidateInputsOutputs("ClFillWorkload", 1, 1); + + arm_compute::ICLTensor& output = static_cast(this->m_Data.m_Outputs[0])->GetTensor(); + arm_compute::PixelValue pixelValue = GetPixelValue(output, descriptor.m_Parameters.m_Value); + + m_Layer.configure(&output, pixelValue); +} + +void ClFillWorkload::Execute() const +{ + ARMNN_SCOPED_PROFILING_EVENT_CL("ClFillWorkload_Execute"); + RunClFunction(m_Layer, CHECK_LOCATION()); +} + +} // namespace armnn diff --git a/src/backends/cl/workloads/ClFillWorkload.hpp b/src/backends/cl/workloads/ClFillWorkload.hpp new file mode 100644 index 0000000000..8919445d0c --- /dev/null +++ b/src/backends/cl/workloads/ClFillWorkload.hpp @@ -0,0 +1,24 @@ +// +// Copyright © 2020 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include +#include +#include + +namespace armnn { + +class ClFillWorkload : public BaseWorkload +{ +public: + ClFillWorkload(const FillQueueDescriptor& descriptor, const WorkloadInfo& info); + void Execute() const override; + +private: + mutable arm_compute::CLFill m_Layer; +}; + +} //namespace armnn diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp index 5c81079ad7..99f3e62de7 100644 --- a/src/backends/cl/workloads/ClWorkloads.hpp +++ b/src/backends/cl/workloads/ClWorkloads.hpp @@ -18,6 +18,7 @@ #include "ClDequantizeWorkload.hpp" #include "ClDivisionFloatWorkload.hpp" #include "ClExpWorkload.hpp" +#include "ClFillWorkload.hpp" #include "ClFloorFloatWorkload.hpp" #include "ClFullyConnectedWorkload.hpp" #include "ClGatherWorkload.hpp" -- cgit v1.2.1