diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2020-06-24 11:42:20 +0100 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2020-06-24 10:44:09 +0000 |
commit | 66aecb0bcab0de55afd6a9f217b17fa6107dd308 (patch) | |
tree | 34ae00ad11750123e8105a244a3c0ccaf11979f3 /src/backends/cl/workloads | |
parent | 307fd34ba8b19a36ddfe70eb6c70e5386ed99b34 (diff) | |
download | armnn-66aecb0bcab0de55afd6a9f217b17fa6107dd308.tar.gz |
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 <sadik.armagan@arm.com>
Change-Id: I9f8cc6d1c86f832ba46a8d170572f4cfcde9ab17
Diffstat (limited to 'src/backends/cl/workloads')
-rw-r--r-- | src/backends/cl/workloads/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClFillWorkload.cpp | 35 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClFillWorkload.hpp | 24 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClWorkloads.hpp | 1 |
4 files changed, 62 insertions, 0 deletions
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 <cl/ClTensorHandle.hpp> +#include <aclCommon/ArmComputeTensorUtils.hpp> +#include <arm_compute/core/Types.h> + +namespace armnn +{ +using namespace armcomputetensorutils; + +ClFillWorkload::ClFillWorkload(const FillQueueDescriptor& descriptor, const WorkloadInfo& info) + : BaseWorkload<FillQueueDescriptor>(descriptor, info) +{ + m_Data.ValidateInputsOutputs("ClFillWorkload", 1, 1); + + arm_compute::ICLTensor& output = static_cast<IClTensorHandle*>(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 <backendsCommon/WorkloadData.hpp> +#include <backendsCommon/Workload.hpp> +#include <arm_compute/runtime/CL/functions/CLFill.h> + +namespace armnn { + +class ClFillWorkload : public BaseWorkload<FillQueueDescriptor> +{ +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" |