aboutsummaryrefslogtreecommitdiff
path: root/src/backends/cl/workloads
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/cl/workloads')
-rw-r--r--src/backends/cl/workloads/CMakeLists.txt2
-rw-r--r--src/backends/cl/workloads/ClFillWorkload.cpp35
-rw-r--r--src/backends/cl/workloads/ClFillWorkload.hpp24
-rw-r--r--src/backends/cl/workloads/ClWorkloads.hpp1
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"