blob: 5a2a1cdf1b6d04402d33dccd028b70cdcbbeb844 [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 Davis0c2eeac2020-02-11 16:51:50 +000040using RefDebugFloat16Workload = RefDebugWorkload<DataType::Float16>;
41using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>;
42using RefDebugQAsymmU8Workload = RefDebugWorkload<DataType::QAsymmU8>;
Keith Davis67e6c542020-02-19 10:08:33 +000043using RefDebugQAsymmS8Workload = RefDebugWorkload<DataType::QAsymmS8>;
Keith Davis0c2eeac2020-02-11 16:51:50 +000044using RefDebugQSymmS16Workload = RefDebugWorkload<DataType::QSymmS16>;
45using RefDebugQSymmS8Workload = RefDebugWorkload<DataType::QSymmS8>;
46using RefDebugSigned32Workload = RefDebugWorkload<DataType::Signed32>;
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +000047
Matteo Martincigh49124022019-01-11 13:25:59 +000048} // namespace armnn