blob: 54020918934ccfd32549f22e2d1ada24edb2d066 [file] [log] [blame]
Nattapat Chaimanowong77140882018-10-17 11:12:19 +01001//
Teresa Charlin588cbdf2022-01-19 15:55:37 +00002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Nattapat Chaimanowong77140882018-10-17 11:12:19 +01003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Teresa Charlin588cbdf2022-01-19 15:55:37 +00008#include "NeonBaseWorkload.hpp"
Matthew Benthamd80a7122019-01-08 17:52:37 +00009
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,
Mike Kelly07810fc2020-11-12 10:58:48 +000022 const Optional<TensorInfo>& biases,
23 const ActivationDescriptor* activationDescriptor
24 = nullptr);
Nattapat Chaimanowong77140882018-10-17 11:12:19 +010025
Teresa Charlin588cbdf2022-01-19 15:55:37 +000026class NeonDepthwiseConvolutionWorkload : public NeonBaseWorkload<DepthwiseConvolution2dQueueDescriptor>
Nattapat Chaimanowong77140882018-10-17 11:12:19 +010027{
28public:
29 NeonDepthwiseConvolutionWorkload(const DepthwiseConvolution2dQueueDescriptor& descriptor,
30 const WorkloadInfo& info);
31
32 virtual void Execute() const override;
33
34private:
35 mutable std::unique_ptr<arm_compute::IFunction> m_pDepthwiseConvolutionLayer;
Nattapat Chaimanowong77140882018-10-17 11:12:19 +010036};
37
38} // namespace armnn