diff options
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" |