blob: 2985699f7b28e7fddf75d02c979d7e8469258994 [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
40using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>;
41using RefDebugUint8Workload = RefDebugWorkload<DataType::QuantisedAsymm8>;
42
Matteo Martincigh49124022019-01-11 13:25:59 +000043} // namespace armnn