ArmNN
 22.02
TypedWorkload< QueueDescriptor, DataTypes > Class Template Reference

#include <Workload.hpp>

Inheritance diagram for TypedWorkload< QueueDescriptor, DataTypes >:
BaseWorkload< QueueDescriptor > IWorkload ClBatchNormalizationFloatWorkload ClFloorFloatWorkload ClL2NormalizationFloatWorkload ClLstmFloatWorkload ClNormalizationFloatWorkload NeonFloorFloatWorkload NeonL2NormalizationFloatWorkload NeonLstmFloatWorkload NeonNormalizationFloatWorkload RefFakeQuantizationFloat32Workload

Public Member Functions

 TypedWorkload (const QueueDescriptor &descriptor, const WorkloadInfo &info)
 
- Public Member Functions inherited from BaseWorkload< QueueDescriptor >
 BaseWorkload (const QueueDescriptor &descriptor, const WorkloadInfo &info)
 
void ExecuteAsync (WorkingMemDescriptor &workingMemDescriptor) override
 
void PostAllocationConfigure () override
 
const QueueDescriptorGetData () const
 
profiling::ProfilingGuid GetGuid () const final
 
virtual bool SupportsTensorHandleReplacement () const override
 
void ReplaceInputTensorHandle (ITensorHandle *tensorHandle, unsigned int slot) override
 
void ReplaceOutputTensorHandle (ITensorHandle *tensorHandle, unsigned int slot) override
 
- Public Member Functions inherited from IWorkload
virtual ~IWorkload ()
 
virtual void Execute () const =0
 
virtual void RegisterDebugCallback (const DebugCallbackFunction &)
 

Additional Inherited Members

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

Detailed Description

template<typename QueueDescriptor, armnn::DataType... DataTypes>
class armnn::TypedWorkload< QueueDescriptor, DataTypes >

Definition at line 86 of file Workload.hpp.

Constructor & Destructor Documentation

◆ TypedWorkload()

TypedWorkload ( const QueueDescriptor descriptor,
const WorkloadInfo info 
)
inline

Definition at line 90 of file Workload.hpp.

91  : BaseWorkload<QueueDescriptor>(descriptor, info)
92  {
93  std::vector<armnn::DataType> dataTypes = {DataTypes...};
94  armnn::DataType expectedInputType;
95 
96  if (!info.m_InputTensorInfos.empty())
97  {
98  expectedInputType = info.m_InputTensorInfos.front().GetDataType();
99 
100  if (std::find(dataTypes.begin(), dataTypes.end(), expectedInputType) == dataTypes.end())
101  {
102  ARMNN_ASSERT_MSG(false, "Trying to create workload with incorrect type");
103  }
104  ARMNN_ASSERT_MSG(std::all_of(std::next(info.m_InputTensorInfos.begin()),
105  info.m_InputTensorInfos.end(),
106  [&](auto it){
107  return it.GetDataType() == expectedInputType;
108  }),
109  "Trying to create workload with incorrect type");
110  }
111  armnn::DataType expectedOutputType;
112 
113  if (!info.m_OutputTensorInfos.empty())
114  {
115  expectedOutputType = info.m_OutputTensorInfos.front().GetDataType();
116 
117  if (!info.m_InputTensorInfos.empty())
118  {
119  if (expectedOutputType != expectedInputType)
120  {
121  ARMNN_ASSERT_MSG(false, "Trying to create workload with incorrect type");
122  }
123  }
124  else if (std::find(dataTypes.begin(), dataTypes.end(), expectedOutputType) == dataTypes.end())
125  {
126  ARMNN_ASSERT_MSG(false, "Trying to create workload with incorrect type");
127  }
128  ARMNN_ASSERT_MSG(std::all_of(std::next(info.m_OutputTensorInfos.begin()),
129  info.m_OutputTensorInfos.end(),
130  [&](auto it){
131  return it.GetDataType() == expectedOutputType;
132  }),
133  "Trying to create workload with incorrect type");
134  }
135  }
DataType
Definition: Types.hpp:35
#define ARMNN_ASSERT_MSG(COND, MSG)
Definition: Assert.hpp:15

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