// // Copyright © 2018-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include "RefBaseWorkload.hpp" namespace armnn { template class RefDebugWorkload : public TypedWorkload { public: RefDebugWorkload(const DebugQueueDescriptor& descriptor, const WorkloadInfo& info) : TypedWorkload(descriptor, info) , m_Callback(nullptr) {} virtual const std::string& GetName() const override { static const std::string name = std::string("RefDebug") + GetDataTypeName(DataType) + "Workload"; return name; } using TypedWorkload::m_Data; using TypedWorkload::TypedWorkload; void Execute() const override; void ExecuteAsync(ExecutionData& executionData) override; void RegisterDebugCallback(const DebugCallbackFunction& func) override; private: void Execute(std::vector inputs) const; DebugCallbackFunction m_Callback; }; using RefDebugBFloat16Workload = RefDebugWorkload; using RefDebugFloat16Workload = RefDebugWorkload; using RefDebugFloat32Workload = RefDebugWorkload; using RefDebugQAsymmU8Workload = RefDebugWorkload; using RefDebugQAsymmS8Workload = RefDebugWorkload; using RefDebugQSymmS16Workload = RefDebugWorkload; using RefDebugQSymmS8Workload = RefDebugWorkload; using RefDebugSigned32Workload = RefDebugWorkload; using RefDebugSigned64Workload = RefDebugWorkload; } // namespace armnn