IVGCVSW-1946: Remove armnn/src from the include paths
[platform/upstream/armnn.git] / src / backends / cl / workloads / ClDepthwiseConvolutionWorkload.hpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5
6 #pragma once
7
8 #include <backendsCommon/Workload.hpp>
9
10 #include <arm_compute/runtime/IFunction.h>
11 #include <arm_compute/core/Error.h>
12 #include <arm_compute/runtime/CL/CLTensor.h>
13
14 namespace armnn
15 {
16
17 arm_compute::Status ClDepthwiseConvolutionWorkloadValidate(const TensorInfo& input,
18                                                            const TensorInfo& output,
19                                                            const DepthwiseConvolution2dDescriptor& descriptor,
20                                                            const TensorInfo& weights,
21                                                            const Optional<TensorInfo>& biases);
22
23 class ClDepthwiseConvolutionWorkload : public BaseWorkload<DepthwiseConvolution2dQueueDescriptor>
24 {
25 public:
26     using BaseWorkload<DepthwiseConvolution2dQueueDescriptor>::m_Data;
27
28     ClDepthwiseConvolutionWorkload(const DepthwiseConvolution2dQueueDescriptor& descriptor,
29                                    const WorkloadInfo& info);
30
31     void Execute() const override;
32
33 protected:
34     std::unique_ptr<arm_compute::IFunction> m_DepthwiseConvolutionLayer;
35
36     std::unique_ptr<arm_compute::CLTensor> m_KernelTensor;
37     std::unique_ptr<arm_compute::CLTensor> m_BiasTensor;
38
39     void FreeUnusedTensors();
40 };
41
42 } //namespace armnn