blob: 75d7ecce264dfc64c6154bcbd6369c99e971af2c [file] [log] [blame]
narpra01db2b1602019-01-23 15:23:11 +00001//
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#include <backendsCommon/WorkloadData.hpp>
10
11#include <armnn/Types.hpp>
12
13namespace armnn
14{
15
16// Base class template providing an implementation of the Constant layer common to all data types.
17template <armnn::DataType DataType>
18class RefConstantWorkload : public TypedWorkload<ConstantQueueDescriptor, DataType>
19{
20public:
21 RefConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info)
22 : TypedWorkload<ConstantQueueDescriptor, DataType>(descriptor, info)
23 , m_RanOnce(false)
24 {
25 }
26
27 using TypedWorkload<ConstantQueueDescriptor, DataType>::m_Data;
28 using TypedWorkload<ConstantQueueDescriptor, DataType>::TypedWorkload;
29
30 virtual void Execute() const override;
31
32private:
33 mutable bool m_RanOnce;
34};
35
36using RefConstantFloat32Workload = RefConstantWorkload<DataType::Float32>;
37using RefConstantUint8Workload = RefConstantWorkload<DataType::QuantisedAsymm8>;
38using RefConstantInt32Workload = RefConstantWorkload<DataType::Signed32>;
39
40} //namespace armnn