blob: 85932d3f9a0e1e79555a477ef221289264084273 [file] [log] [blame]
Nattapat Chaimanowong77140882018-10-17 11:12:19 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Matthew Benthamd80a7122019-01-08 17:52:37 +00008#include <backendsCommon/Workload.hpp>
9
10#include <arm_compute/runtime/IFunction.h>
11#include <arm_compute/runtime/Tensor.h>
12
13#include <memory>
Nattapat Chaimanowong77140882018-10-17 11:12:19 +010014
15namespace armnn
16{
17
18arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& input,
19 const TensorInfo& output,
20 const DepthwiseConvolution2dDescriptor& descriptor,
21 const TensorInfo& weights,
22 const Optional<TensorInfo>& biases);
23
24class NeonDepthwiseConvolutionWorkload : public BaseWorkload<DepthwiseConvolution2dQueueDescriptor>
25{
26public:
27 NeonDepthwiseConvolutionWorkload(const DepthwiseConvolution2dQueueDescriptor& descriptor,
28 const WorkloadInfo& info);
29
30 virtual void Execute() const override;
31
32private:
33 mutable std::unique_ptr<arm_compute::IFunction> m_pDepthwiseConvolutionLayer;
34
35 std::unique_ptr<arm_compute::Tensor> m_KernelTensor;
36 std::unique_ptr<arm_compute::Tensor> m_BiasTensor;
37
38 void FreeUnusedTensors();
39};
40
41} // namespace armnn