blob: d7e3cd9947abaf43a1fe671c015e35f05ec10933 [file] [log] [blame]
Laurent Carlier749294b2020-06-01 09:03:17 +01001//
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00002// 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
Narumol Prangnawarat403a1852020-03-12 14:24:13 +000040using RefDebugBFloat16Workload = RefDebugWorkload<DataType::BFloat16>;
Keith Davis0c2eeac2020-02-11 16:51:50 +000041using RefDebugFloat16Workload = RefDebugWorkload<DataType::Float16>;
42using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>;
43using RefDebugQAsymmU8Workload = RefDebugWorkload<DataType::QAsymmU8>;
Keith Davis67e6c542020-02-19 10:08:33 +000044using RefDebugQAsymmS8Workload = RefDebugWorkload<DataType::QAsymmS8>;
Keith Davis0c2eeac2020-02-11 16:51:50 +000045using RefDebugQSymmS16Workload = RefDebugWorkload<DataType::QSymmS16>;
46using RefDebugQSymmS8Workload = RefDebugWorkload<DataType::QSymmS8>;
47using RefDebugSigned32Workload = RefDebugWorkload<DataType::Signed32>;
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +000048
Matteo Martincigh49124022019-01-11 13:25:59 +000049} // namespace armnn