Release 18.08
[platform/upstream/armnn.git] / src / armnn / backends / ClWorkloads / ClActivationUint8Workload.cpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // See LICENSE file in the project root for full license information.
4 //
5
6 #include "ClActivationUint8Workload.hpp"
7 #include "backends/ClLayerSupport.hpp"
8
9 #include "backends/ArmComputeUtils.hpp"
10 #include "backends/ClTensorHandle.hpp"
11 #include "backends/CpuTensorHandle.hpp"
12 namespace armnn
13 {
14
15 ClActivationUint8Workload::ClActivationUint8Workload(const ActivationQueueDescriptor& descriptor,
16                                                      const WorkloadInfo& info)
17     : Uint8Workload<ActivationQueueDescriptor>(descriptor, info)
18 {
19     auto activation = ConvertActivationFunctionToAclActivationFunction(m_Data.m_Parameters.m_Function);
20     arm_compute::ActivationLayerInfo layerInfo(activation,
21                                                m_Data.m_Parameters.m_A,
22                                                m_Data.m_Parameters.m_B);
23
24     m_Data.ValidateInputsOutputs("ClActivationUint8Workload", 1, 1);
25
26     arm_compute::ICLTensor& input  = static_cast<ClTensorHandle*>(m_Data.m_Inputs[0])->GetTensor();
27     arm_compute::ICLTensor& output = static_cast<ClTensorHandle*>(m_Data.m_Outputs[0])->GetTensor();
28
29     m_ActivationLayer.configure(&input, &output, layerInfo);
30 }
31
32 void ClActivationUint8Workload::Execute() const
33 {
34     ARMNN_SCOPED_PROFILING_EVENT_CL("ClActivationUint8Workload_Execute");
35
36     m_ActivationLayer.run();
37 }
38
39 } //namespace Armnn
40
41