ArmNN
 21.02
RefDebugWorkload< DataType > Class Template Reference

#include <RefDebugWorkload.hpp>

Inheritance diagram for RefDebugWorkload< DataType >:
TypedWorkload< DebugQueueDescriptor, DataType > BaseWorkload< DebugQueueDescriptor > IWorkload

Public Member Functions

 RefDebugWorkload (const DebugQueueDescriptor &descriptor, const WorkloadInfo &info)
 
void Execute () const override
 
void RegisterDebugCallback (const DebugCallbackFunction &func) override
 
- Public Member Functions inherited from TypedWorkload< DebugQueueDescriptor, DataType >
 TypedWorkload (const DebugQueueDescriptor &descriptor, const WorkloadInfo &info)
 
- Public Member Functions inherited from BaseWorkload< DebugQueueDescriptor >
 BaseWorkload (const DebugQueueDescriptor &descriptor, const WorkloadInfo &info)
 
void PostAllocationConfigure () override
 
const DebugQueueDescriptorGetData () const
 
profiling::ProfilingGuid GetGuid () const final
 
- Public Member Functions inherited from IWorkload
virtual ~IWorkload ()
 

Static Public Member Functions

static const std::string & GetName ()
 

Additional Inherited Members

- Protected Attributes inherited from BaseWorkload< DebugQueueDescriptor >
const DebugQueueDescriptor m_Data
 
const profiling::ProfilingGuid m_Guid
 

Detailed Description

template<armnn::DataType DataType>
class armnn::RefDebugWorkload< DataType >

Definition at line 16 of file RefDebugWorkload.hpp.

Constructor & Destructor Documentation

◆ RefDebugWorkload()

RefDebugWorkload ( const DebugQueueDescriptor descriptor,
const WorkloadInfo info 
)
inline

Definition at line 19 of file RefDebugWorkload.hpp.

20  : TypedWorkload<DebugQueueDescriptor, DataType>(descriptor, info)
21  , m_Callback(nullptr) {}

Member Function Documentation

◆ Execute()

void Execute ( ) const
overridevirtual

Implements IWorkload.

Definition at line 18 of file RefDebugWorkload.cpp.

References ARMNN_SCOPED_PROFILING_EVENT, armnn::CpuRef, armnn::Debug(), TensorInfo::GetNumElements(), and armnn::GetTensorInfo().

Referenced by RefDebugWorkload< DataType >::GetName().

19 {
20  using T = ResolveType<DataType>;
21 
23 
24  const TensorInfo& inputInfo = GetTensorInfo(m_Data.m_Inputs[0]);
25 
26  const T* inputData = GetInputTensorData<T>(0, m_Data);
27  T* outputData = GetOutputTensorData<T>(0, m_Data);
28 
29  if (m_Callback)
30  {
31  m_Callback(m_Data.m_Guid, m_Data.m_SlotIndex, m_Data.m_Inputs[0]);
32  }
33  else
34  {
35  Debug(inputInfo, inputData, m_Data.m_Guid, m_Data.m_LayerName, m_Data.m_SlotIndex);
36  }
37 
38  std::memcpy(outputData, inputData, inputInfo.GetNumElements()*sizeof(T));
39 }
CPU Execution: Reference C++ kernels.
static const std::string & GetName()
const DebugQueueDescriptor m_Data
Definition: Workload.hpp:46
#define ARMNN_SCOPED_PROFILING_EVENT(backendId, name)
Definition: Profiling.hpp:173
std::vector< ITensorHandle * > m_Inputs
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers

◆ GetName()

static const std::string& GetName ( )
inlinestatic

Definition at line 23 of file RefDebugWorkload.hpp.

References RefDebugWorkload< DataType >::Execute(), armnn::GetDataTypeName(), and RefDebugWorkload< DataType >::RegisterDebugCallback().

24  {
25  static const std::string name = std::string("RefDebug") + GetDataTypeName(DataType) + "Workload";
26  return name;
27  }
constexpr const char * GetDataTypeName(DataType dataType)
Definition: TypesUtils.hpp:180
DataType
Definition: Types.hpp:32

◆ RegisterDebugCallback()

void RegisterDebugCallback ( const DebugCallbackFunction func)
overridevirtual

Reimplemented from IWorkload.

Definition at line 42 of file RefDebugWorkload.cpp.

Referenced by RefDebugWorkload< DataType >::GetName().

43 {
44  m_Callback = func;
45 }

The documentation for this class was generated from the following files: