blob: 5d4b483fa74d0c86d4cc293a38fb7a85538c8d4a [file] [log] [blame]
Ruomei Yan495852f2019-05-23 11:37:33 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
Finn Williams73c547d2022-02-15 20:47:34 +00005#include "RefBaseWorkload.hpp"
Colm Donelan0c479742021-12-10 12:43:54 +00006#include <armnn/backends/WorkloadData.hpp>
Ruomei Yan495852f2019-05-23 11:37:33 +01007#include "Decoders.hpp"
8#include "Encoders.hpp"
9
10#include <armnn/TypesUtils.hpp>
11
12namespace armnn
13{
14
Finn Williams73c547d2022-02-15 20:47:34 +000015class RefDepthwiseConvolution2dWorkload : public RefBaseWorkload<DepthwiseConvolution2dQueueDescriptor> {
Ruomei Yan495852f2019-05-23 11:37:33 +010016public:
17 explicit RefDepthwiseConvolution2dWorkload(const DepthwiseConvolution2dQueueDescriptor &descriptor,
18 const WorkloadInfo &info);
19
Ruomei Yan495852f2019-05-23 11:37:33 +010020
Finn Williamsb8181f72021-04-07 10:23:21 +010021 void Execute() const override;
22 void ExecuteAsync(WorkingMemDescriptor& workingMemDescriptor) override;
Ruomei Yan495852f2019-05-23 11:37:33 +010023
24private:
Finn Williamsb8181f72021-04-07 10:23:21 +010025 void Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const;
Ruomei Yan495852f2019-05-23 11:37:33 +010026
James Conroy1f58f032021-04-27 17:13:27 +010027 std::unique_ptr <ScopedTensorHandle> m_Weight;
28 std::unique_ptr <ScopedTensorHandle> m_Bias;
Ruomei Yan495852f2019-05-23 11:37:33 +010029
Ruomei Yan495852f2019-05-23 11:37:33 +010030 std::unique_ptr <Decoder<float>> m_FilterDecoder;
31 std::unique_ptr <Decoder<float>> m_BiasDecoder;
32
Ruomei Yan495852f2019-05-23 11:37:33 +010033 TensorShape m_FilterShape;
34};
35
36} //namespace armnn