blob: a15a8638922ec830431105edcb98d9cdabe84c40 [file] [log] [blame]
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
Matteo Martincigh49124022019-01-11 13:25:59 +00005
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00006#pragma once
7
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00008#include <armnn/TypesUtils.hpp>
9
Matteo Martincigh49124022019-01-11 13:25:59 +000010#include <backendsCommon/Workload.hpp>
11
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +000012namespace armnn
13{
14
15template <armnn::DataType DataType>
16class RefDebugWorkload : public TypedWorkload<DebugQueueDescriptor, DataType>
17{
18public:
Nattapat Chaimanowong317cae52019-03-28 10:29:12 +000019 RefDebugWorkload(const DebugQueueDescriptor& descriptor, const WorkloadInfo& info)
20 : TypedWorkload<DebugQueueDescriptor, DataType>(descriptor, info)
21 , m_Callback(nullptr) {}
22
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +000023 static const std::string& GetName()
24 {
25 static const std::string name = std::string("RefDebug") + GetDataTypeName(DataType) + "Workload";
26 return name;
27 }
28
29 using TypedWorkload<DebugQueueDescriptor, DataType>::m_Data;
30 using TypedWorkload<DebugQueueDescriptor, DataType>::TypedWorkload;
31
32 void Execute() const override;
Nattapat Chaimanowong317cae52019-03-28 10:29:12 +000033
34 void RegisterDebugCallback(const DebugCallbackFunction& func) override;
35
36private:
37 DebugCallbackFunction m_Callback;
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +000038};
39
Keith Davis5204aa82020-01-27 15:24:59 +000040using RefDebugFloat16Workload = RefDebugWorkload<DataType::Float16>;
41using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>;
42using RefDebugQAsymm8Workload = RefDebugWorkload<DataType::QAsymmU8>;
43using RefDebugQSymm16Workload = RefDebugWorkload<DataType::QSymmS16>;
44using RefDebugQSymm8Workload = RefDebugWorkload<DataType::QSymmS8>;
Narumol Prangnawaratd2d917d2020-01-09 10:16:39 +000045using RefDebugSigned32Workload = RefDebugWorkload<DataType::Signed32>;
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +000046
Matteo Martincigh49124022019-01-11 13:25:59 +000047} // namespace armnn