blob: 93cfd1f2b142cf571b1fa861198b23a69a3f004a [file] [log] [blame]
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "BaseIterator.hpp"
9
Finn Williams73c547d2022-02-15 20:47:34 +000010#include "RefBaseWorkload.hpp"
Colm Donelan0c479742021-12-10 12:43:54 +000011#include <armnn/backends/WorkloadData.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010012
13namespace armnn
14{
15
Finn Williams73c547d2022-02-15 20:47:34 +000016class RefComparisonWorkload : public RefBaseWorkload<ComparisonQueueDescriptor>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010017{
18public:
Finn Williams73c547d2022-02-15 20:47:34 +000019 using RefBaseWorkload<ComparisonQueueDescriptor>::m_Data;
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010020
21 RefComparisonWorkload(const ComparisonQueueDescriptor& descriptor, const WorkloadInfo& info);
22 void PostAllocationConfigure() override;
23 void Execute() const override;
Finn Williamsb8181f72021-04-07 10:23:21 +010024 void ExecuteAsync(WorkingMemDescriptor& workingMemDescriptor) override;
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010025
26private:
Finn Williamsb8181f72021-04-07 10:23:21 +010027 void PostAllocationConfigure(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs);
28 void Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const;
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010029 using InType = float;
30 using OutType = bool;
31
32 std::unique_ptr<Decoder<InType>> m_Input0;
33 std::unique_ptr<Decoder<InType>> m_Input1;
34 std::unique_ptr<Encoder<OutType>> m_Output;
35};
36
37} // namespace armnn