ArmNN
 20.02
NeonWorkloadFactory Class Reference

#include <NeonWorkloadFactory.hpp>

Inheritance diagram for NeonWorkloadFactory:
WorkloadFactoryBase IWorkloadFactory

Public Member Functions

 NeonWorkloadFactory (const std::shared_ptr< NeonMemoryManager > &memoryManager)
 
const BackendIdGetBackendId () const override
 
bool SupportsSubTensors () const override
 
std::unique_ptr< ITensorHandleCreateSubTensorHandle (ITensorHandle &parent, TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const override
 
std::unique_ptr< ITensorHandleCreateTensorHandle (const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const override
 
std::unique_ptr< ITensorHandleCreateTensorHandle (const TensorInfo &tensorInfo, DataLayout dataLayout, const bool IsMemoryManaged=true) const override
 
std::unique_ptr< IWorkloadCreateAbs (const AbsQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateActivation (const ActivationQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateAddition (const AdditionQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateArgMinMax (const ArgMinMaxQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateBatchNormalization (const BatchNormalizationQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateBatchToSpaceNd (const BatchToSpaceNdQueueDescriptor &descriptor, const WorkloadInfo &Info) const override
 
std::unique_ptr< IWorkloadCreateComparison (const ComparisonQueueDescriptor &descriptor, const WorkloadInfo &Info) const override
 
std::unique_ptr< IWorkloadCreateConcat (const ConcatQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateConstant (const ConstantQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateConvertFp16ToFp32 (const ConvertFp16ToFp32QueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateConvertFp32ToFp16 (const ConvertFp32ToFp16QueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateConvolution2d (const Convolution2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateDebug (const DebugQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateDepthToSpace (const DepthToSpaceQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateDepthwiseConvolution2d (const DepthwiseConvolution2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateDequantize (const DequantizeQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateDetectionPostProcess (const DetectionPostProcessQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateDivision (const DivisionQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateElementwiseUnary (const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &Info) const override
 
std::unique_ptr< IWorkloadCreateEqual (const EqualQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateFloor (const FloorQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateFullyConnected (const FullyConnectedQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateGather (const GatherQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateGreater (const GreaterQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateInput (const InputQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateInstanceNormalization (const InstanceNormalizationQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateL2Normalization (const L2NormalizationQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateLstm (const LstmQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateMaximum (const MaximumQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateMean (const MeanQueueDescriptor &descriptor, const WorkloadInfo &Info) const override
 
std::unique_ptr< IWorkloadCreateMemCopy (const MemCopyQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateMemImport (const MemImportQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateMerger (const MergerQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateMinimum (const MinimumQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateMultiplication (const MultiplicationQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateNormalization (const NormalizationQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateOutput (const OutputQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreatePad (const PadQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreatePermute (const PermuteQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreatePooling2d (const Pooling2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreatePreCompiled (const PreCompiledQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreatePrelu (const PreluQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateQuantize (const QuantizeQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateQuantizedLstm (const QuantizedLstmQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateReshape (const ReshapeQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateResize (const ResizeQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateResizeBilinear (const ResizeBilinearQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateRsqrt (const RsqrtQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateSlice (const SliceQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateSoftmax (const SoftmaxQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateSpaceToBatchNd (const SpaceToBatchNdQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateSpaceToDepth (const SpaceToDepthQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateSplitter (const SplitterQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateStack (const StackQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateStridedSlice (const StridedSliceQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateSubtraction (const SubtractionQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateTranspose (const TransposeQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
std::unique_ptr< IWorkloadCreateTransposeConvolution2d (const TransposeConvolution2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override
 
- Public Member Functions inherited from WorkloadFactoryBase
std::unique_ptr< IWorkloadCreateFakeQuantization (const FakeQuantizationQueueDescriptor &, const WorkloadInfo &) const override
 
std::unique_ptr< IWorkloadCreateLogSoftmax (const LogSoftmaxQueueDescriptor &, const WorkloadInfo &) const override
 
std::unique_ptr< IWorkloadCreateMerge (const MergeQueueDescriptor &, const WorkloadInfo &) const override
 
std::unique_ptr< IWorkloadCreateSwitch (const SwitchQueueDescriptor &, const WorkloadInfo &) const override
 
- Public Member Functions inherited from IWorkloadFactory
virtual ~IWorkloadFactory ()
 

Static Public Member Functions

static bool IsLayerSupported (const Layer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
 
- Static Public Member Functions inherited from IWorkloadFactory
static bool IsLayerSupported (const BackendId &backendId, const IConnectableLayer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
 
static bool IsLayerSupported (const IConnectableLayer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
 

Detailed Description

Definition at line 17 of file NeonWorkloadFactory.hpp.

Constructor & Destructor Documentation

◆ NeonWorkloadFactory()

NeonWorkloadFactory ( const std::shared_ptr< NeonMemoryManager > &  memoryManager)

Definition at line 45 of file NeonWorkloadFactory.cpp.

46  : m_MemoryManager(memoryManager)
47 {
48 }

Member Function Documentation

◆ CreateAbs()

std::unique_ptr< IWorkload > CreateAbs ( const AbsQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 98 of file NeonWorkloadFactory.cpp.

References armnn::Abs, NeonWorkloadFactory::CreateElementwiseUnary(), armnn::IgnoreUnused(), and QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

100 {
101  IgnoreUnused(descriptor);
102 
103  ElementwiseUnaryQueueDescriptor elementwiseUnaryDescriptor;
104  elementwiseUnaryDescriptor.m_Parameters = ElementwiseUnaryDescriptor(UnaryOperation::Abs);
105 
106  return CreateElementwiseUnary(elementwiseUnaryDescriptor, info);
107 }
void IgnoreUnused(Ts &&...)
std::unique_ptr< IWorkload > CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &Info) const override

◆ CreateActivation()

std::unique_ptr< IWorkload > CreateActivation ( const ActivationQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 109 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by BOOST_AUTO_TEST_CASE(), and NeonWorkloadFactory::SupportsSubTensors().

111 {
112  return std::make_unique<NeonActivationWorkload>(descriptor, info);
113 }

◆ CreateAddition()

std::unique_ptr< armnn::IWorkload > CreateAddition ( const AdditionQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 115 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

117 {
118  return std::make_unique<NeonAdditionWorkload>(descriptor, info);
119 }

◆ CreateArgMinMax()

std::unique_ptr< IWorkload > CreateArgMinMax ( const ArgMinMaxQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 121 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

123 {
124  return std::make_unique<NeonArgMinMaxWorkload>(descriptor, info);
125 }

◆ CreateBatchNormalization()

std::unique_ptr< armnn::IWorkload > CreateBatchNormalization ( const BatchNormalizationQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 127 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

129 {
130  return std::make_unique<NeonBatchNormalizationWorkload>(descriptor, info);
131 }

◆ CreateBatchToSpaceNd()

std::unique_ptr< IWorkload > CreateBatchToSpaceNd ( const BatchToSpaceNdQueueDescriptor descriptor,
const WorkloadInfo Info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 133 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

135 {
136  return std::make_unique<NeonBatchToSpaceNdWorkload>(descriptor, info);
137 }

◆ CreateComparison()

std::unique_ptr< IWorkload > CreateComparison ( const ComparisonQueueDescriptor descriptor,
const WorkloadInfo Info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 139 of file NeonWorkloadFactory.cpp.

References armnn::Greater, armnn::info, QueueDescriptor::m_Inputs, ComparisonDescriptor::m_Operation, QueueDescriptor::m_Outputs, and QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters.

Referenced by NeonWorkloadFactory::CreateEqual(), NeonWorkloadFactory::CreateGreater(), and NeonWorkloadFactory::SupportsSubTensors().

141 {
142  if (descriptor.m_Parameters.m_Operation == ComparisonOperation::Greater)
143  {
144  GreaterQueueDescriptor greaterQueueDescriptor;
145  greaterQueueDescriptor.m_Inputs = descriptor.m_Inputs;
146  greaterQueueDescriptor.m_Outputs = descriptor.m_Outputs;
147 
148  return MakeWorkloadHelper<NeonGreaterFloat32Workload, NeonGreaterUint8Workload>(greaterQueueDescriptor, info);
149  }
150  return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
151 }

◆ CreateConcat()

std::unique_ptr< armnn::IWorkload > CreateConcat ( const ConcatQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 153 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::CreateMerger(), and NeonWorkloadFactory::SupportsSubTensors().

155 {
156  return std::make_unique<NeonConcatWorkload>(descriptor, info);
157 }

◆ CreateConstant()

std::unique_ptr< IWorkload > CreateConstant ( const ConstantQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 159 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

161 {
162  return std::make_unique<NeonConstantWorkload>(descriptor, info);
163 }

◆ CreateConvertFp16ToFp32()

std::unique_ptr< IWorkload > CreateConvertFp16ToFp32 ( const ConvertFp16ToFp32QueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 165 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

168 {
169  return std::make_unique<NeonConvertFp16ToFp32Workload>(descriptor, info);
170 }

◆ CreateConvertFp32ToFp16()

std::unique_ptr< IWorkload > CreateConvertFp32ToFp16 ( const ConvertFp32ToFp16QueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 172 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

175 {
176  return std::make_unique<NeonConvertFp32ToFp16Workload>(descriptor, info);
177 }

◆ CreateConvolution2d()

std::unique_ptr< armnn::IWorkload > CreateConvolution2d ( const Convolution2dQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 179 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

181 {
182  return std::make_unique<NeonConvolution2dWorkload>(descriptor, info,
183  m_MemoryManager->GetIntraLayerManager());
184 }

◆ CreateDebug()

std::unique_ptr< IWorkload > CreateDebug ( const DebugQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 186 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

188 {
189  return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
190 }

◆ CreateDepthToSpace()

std::unique_ptr< IWorkload > CreateDepthToSpace ( const DepthToSpaceQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 192 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

194 {
195  return std::make_unique<NeonDepthToSpaceWorkload>(descriptor, info);
196 }

◆ CreateDepthwiseConvolution2d()

std::unique_ptr< IWorkload > CreateDepthwiseConvolution2d ( const DepthwiseConvolution2dQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 198 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

200 {
201  return std::make_unique<NeonDepthwiseConvolutionWorkload>(descriptor, info);
202 }

◆ CreateDequantize()

std::unique_ptr< IWorkload > CreateDequantize ( const DequantizeQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 204 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

206 {
207  return std::make_unique<NeonDequantizeWorkload>(descriptor, info);
208 }

◆ CreateDetectionPostProcess()

std::unique_ptr< IWorkload > CreateDetectionPostProcess ( const DetectionPostProcessQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 210 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

212 {
213  return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
214 }

◆ CreateDivision()

std::unique_ptr< armnn::IWorkload > CreateDivision ( const DivisionQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 216 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

218 {
219  return std::make_unique<NeonDivisionWorkload>(descriptor, info);
220 }

◆ CreateElementwiseUnary()

std::unique_ptr< IWorkload > CreateElementwiseUnary ( const ElementwiseUnaryQueueDescriptor descriptor,
const WorkloadInfo Info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 222 of file NeonWorkloadFactory.cpp.

References armnn::Abs, armnn::info, QueueDescriptor::m_Inputs, ElementwiseUnaryDescriptor::m_Operation, QueueDescriptor::m_Outputs, QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters, and armnn::Rsqrt.

Referenced by NeonWorkloadFactory::CreateAbs(), NeonWorkloadFactory::CreateRsqrt(), and NeonWorkloadFactory::SupportsSubTensors().

225 {
226  if (descriptor.m_Parameters.m_Operation == UnaryOperation::Abs)
227  {
228  AbsQueueDescriptor absQueueDescriptor;
229  absQueueDescriptor.m_Inputs = descriptor.m_Inputs;
230  absQueueDescriptor.m_Outputs = descriptor.m_Outputs;
231 
232  return std::make_unique<NeonAbsWorkload>(absQueueDescriptor, info);
233  }
234  else if (descriptor.m_Parameters.m_Operation == UnaryOperation::Rsqrt)
235  {
236  RsqrtQueueDescriptor rsqrtQueueDescriptor;
237  rsqrtQueueDescriptor.m_Inputs = descriptor.m_Inputs;
238  rsqrtQueueDescriptor.m_Outputs = descriptor.m_Outputs;
239 
240  return std::make_unique<NeonRsqrtWorkload>(rsqrtQueueDescriptor, info);
241  }
242  return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
243 }

◆ CreateEqual()

std::unique_ptr< IWorkload > CreateEqual ( const EqualQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from IWorkloadFactory.

Definition at line 245 of file NeonWorkloadFactory.cpp.

References NeonWorkloadFactory::CreateComparison(), armnn::Equal, armnn::IgnoreUnused(), and QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

247 {
248  IgnoreUnused(descriptor);
249 
250  ComparisonQueueDescriptor comparisonDescriptor;
251  comparisonDescriptor.m_Parameters = ComparisonDescriptor(ComparisonOperation::Equal);
252 
253  return CreateComparison(comparisonDescriptor, info);
254 }
std::unique_ptr< IWorkload > CreateComparison(const ComparisonQueueDescriptor &descriptor, const WorkloadInfo &Info) const override
void IgnoreUnused(Ts &&...)

◆ CreateFloor()

std::unique_ptr< IWorkload > CreateFloor ( const FloorQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 256 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

258 {
259  return MakeWorkloadHelper<NeonFloorFloatWorkload, NullWorkload>(descriptor, info);
260 }

◆ CreateFullyConnected()

std::unique_ptr< armnn::IWorkload > CreateFullyConnected ( const FullyConnectedQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 262 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

264 {
265  return MakeWorkloadHelper<NeonFullyConnectedWorkload, NeonFullyConnectedWorkload>(
266  descriptor, info, m_MemoryManager->GetIntraLayerManager());
267 }

◆ CreateGather()

std::unique_ptr< IWorkload > CreateGather ( const GatherQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 269 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

271 {
272  return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
273 }

◆ CreateGreater()

std::unique_ptr< IWorkload > CreateGreater ( const GreaterQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from IWorkloadFactory.

Definition at line 275 of file NeonWorkloadFactory.cpp.

References NeonWorkloadFactory::CreateComparison(), armnn::Greater, armnn::IgnoreUnused(), and QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

277 {
278  IgnoreUnused(descriptor);
279 
280  ComparisonQueueDescriptor comparisonDescriptor;
281  comparisonDescriptor.m_Parameters = ComparisonDescriptor(ComparisonOperation::Greater);
282 
283  return CreateComparison(comparisonDescriptor, info);
284 }
std::unique_ptr< IWorkload > CreateComparison(const ComparisonQueueDescriptor &descriptor, const WorkloadInfo &Info) const override
void IgnoreUnused(Ts &&...)

◆ CreateInput()

std::unique_ptr< IWorkload > CreateInput ( const InputQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 286 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

288 {
289  return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
290 }

◆ CreateInstanceNormalization()

std::unique_ptr< IWorkload > CreateInstanceNormalization ( const InstanceNormalizationQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 292 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

295 {
296  return std::make_unique<NeonInstanceNormalizationWorkload>(descriptor, info);
297 }

◆ CreateL2Normalization()

std::unique_ptr< IWorkload > CreateL2Normalization ( const L2NormalizationQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 299 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

301 {
302  return MakeWorkloadHelper<NeonL2NormalizationFloatWorkload, NullWorkload>(descriptor, info,
303  m_MemoryManager->GetIntraLayerManager());
304 }

◆ CreateLstm()

std::unique_ptr< IWorkload > CreateLstm ( const LstmQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 306 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

308 {
309  return MakeWorkloadHelper<NeonLstmFloatWorkload, NullWorkload>(descriptor, info);
310 }

◆ CreateMaximum()

std::unique_ptr< IWorkload > CreateMaximum ( const MaximumQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 312 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

314 {
315  return std::make_unique<NeonMaximumWorkload>(descriptor, info);
316 }

◆ CreateMean()

std::unique_ptr< IWorkload > CreateMean ( const MeanQueueDescriptor descriptor,
const WorkloadInfo Info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 318 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

320 {
321  return std::make_unique<NeonMeanWorkload>(descriptor, info);
322 }

◆ CreateMemCopy()

std::unique_ptr< armnn::IWorkload > CreateMemCopy ( const MemCopyQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 324 of file NeonWorkloadFactory.cpp.

References armnn::info, and QueueDescriptor::m_Inputs.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

326 {
327  if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0])
328  {
329  throw InvalidArgumentException("NeonWorkloadFactory: Invalid null input for MemCopy workload");
330  }
331 
332  return MakeWorkloadHelper<CopyMemGenericWorkload, CopyMemGenericWorkload>(descriptor, info);
333 }

◆ CreateMemImport()

std::unique_ptr< armnn::IWorkload > CreateMemImport ( const MemImportQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 335 of file NeonWorkloadFactory.cpp.

References armnn::info, and QueueDescriptor::m_Inputs.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

337 {
338  if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0])
339  {
340  throw InvalidArgumentException("NeonWorkloadFactory: Invalid null input for MemImport workload");
341  }
342 
343  return std::make_unique<ImportMemGenericWorkload>(descriptor, info);
344 }

◆ CreateMerger()

std::unique_ptr< armnn::IWorkload > CreateMerger ( const MergerQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from IWorkloadFactory.

Definition at line 346 of file NeonWorkloadFactory.cpp.

References NeonWorkloadFactory::CreateConcat().

Referenced by NeonWorkloadFactory::SupportsSubTensors().

348 {
349  return CreateConcat(descriptor, info);
350 }
std::unique_ptr< IWorkload > CreateConcat(const ConcatQueueDescriptor &descriptor, const WorkloadInfo &info) const override

◆ CreateMinimum()

std::unique_ptr< IWorkload > CreateMinimum ( const MinimumQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 352 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

354 {
355  return std::make_unique<NeonMinimumWorkload>(descriptor, info);
356 }

◆ CreateMultiplication()

std::unique_ptr< armnn::IWorkload > CreateMultiplication ( const MultiplicationQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 358 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

360 {
361  return std::make_unique<NeonMultiplicationWorkload>(descriptor, info);
362 }

◆ CreateNormalization()

std::unique_ptr< armnn::IWorkload > CreateNormalization ( const NormalizationQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 364 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

366 {
367  return MakeWorkloadHelper<NeonNormalizationFloatWorkload, NullWorkload>(descriptor, info,
368  m_MemoryManager->GetIntraLayerManager());
369 }

◆ CreateOutput()

std::unique_ptr< IWorkload > CreateOutput ( const OutputQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 371 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

373 {
374  return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
375 }

◆ CreatePad()

std::unique_ptr< IWorkload > CreatePad ( const PadQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 377 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

379 {
380  return std::make_unique<NeonPadWorkload>(descriptor, info);
381 }

◆ CreatePermute()

std::unique_ptr< armnn::IWorkload > CreatePermute ( const PermuteQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 383 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

385 {
386  return std::make_unique<NeonPermuteWorkload>(descriptor, info);
387 }

◆ CreatePooling2d()

std::unique_ptr< armnn::IWorkload > CreatePooling2d ( const Pooling2dQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 389 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

391 {
392  return std::make_unique<NeonPooling2dWorkload>(descriptor, info);
393 }

◆ CreatePreCompiled()

std::unique_ptr< IWorkload > CreatePreCompiled ( const PreCompiledQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 395 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

397 {
398  return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
399 }

◆ CreatePrelu()

std::unique_ptr< armnn::IWorkload > CreatePrelu ( const PreluQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 401 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

403 {
404  return std::make_unique<NeonPreluWorkload>(descriptor, info);
405 }

◆ CreateQuantize()

std::unique_ptr< armnn::IWorkload > CreateQuantize ( const QuantizeQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 407 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

409 {
410  return std::make_unique<NeonQuantizeWorkload>(descriptor, info);
411 }

◆ CreateQuantizedLstm()

std::unique_ptr< IWorkload > CreateQuantizedLstm ( const QuantizedLstmQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 413 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

415 {
416  return std::make_unique<NeonQuantizedLstmWorkload>(descriptor, info);
417 }

◆ CreateReshape()

std::unique_ptr< IWorkload > CreateReshape ( const ReshapeQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 419 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

421 {
422  return std::make_unique<NeonReshapeWorkload>(descriptor, info);
423 }

◆ CreateResize()

std::unique_ptr< IWorkload > CreateResize ( const ResizeQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 425 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::CreateResizeBilinear(), and NeonWorkloadFactory::SupportsSubTensors().

427 {
428  return std::make_unique<NeonResizeWorkload>(descriptor, info);
429 }

◆ CreateResizeBilinear()

std::unique_ptr< armnn::IWorkload > CreateResizeBilinear ( const ResizeBilinearQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from IWorkloadFactory.

Definition at line 431 of file NeonWorkloadFactory.cpp.

References NeonWorkloadFactory::CreateResize(), ResizeBilinearDescriptor::m_DataLayout, ResizeDescriptor::m_DataLayout, QueueDescriptor::m_Inputs, QueueDescriptor::m_Outputs, QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters, ResizeBilinearDescriptor::m_TargetHeight, ResizeDescriptor::m_TargetHeight, ResizeBilinearDescriptor::m_TargetWidth, and ResizeDescriptor::m_TargetWidth.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

434 {
435  ResizeQueueDescriptor resizeDescriptor;
436  resizeDescriptor.m_Inputs = descriptor.m_Inputs;
437  resizeDescriptor.m_Outputs = descriptor.m_Outputs;
438 
439  resizeDescriptor.m_Parameters.m_DataLayout = descriptor.m_Parameters.m_DataLayout;
440  resizeDescriptor.m_Parameters.m_TargetWidth = descriptor.m_Parameters.m_TargetWidth;
441  resizeDescriptor.m_Parameters.m_TargetHeight = descriptor.m_Parameters.m_TargetHeight;
442 
443  return CreateResize(resizeDescriptor, info);
444 }
std::unique_ptr< IWorkload > CreateResize(const ResizeQueueDescriptor &descriptor, const WorkloadInfo &info) const override

◆ CreateRsqrt()

std::unique_ptr< IWorkload > CreateRsqrt ( const RsqrtQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 446 of file NeonWorkloadFactory.cpp.

References NeonWorkloadFactory::CreateElementwiseUnary(), armnn::IgnoreUnused(), QueueDescriptorWithParameters< LayerDescriptor >::m_Parameters, and armnn::Rsqrt.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

448 {
449  IgnoreUnused(descriptor);
450 
451  ElementwiseUnaryQueueDescriptor elementwiseUnaryDescriptor;
452  elementwiseUnaryDescriptor.m_Parameters = ElementwiseUnaryDescriptor(UnaryOperation::Rsqrt);
453 
454  return CreateElementwiseUnary(elementwiseUnaryDescriptor, info);
455 }
void IgnoreUnused(Ts &&...)
std::unique_ptr< IWorkload > CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &Info) const override

◆ CreateSlice()

std::unique_ptr< IWorkload > CreateSlice ( const SliceQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 457 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

459 {
460  return std::make_unique<NeonSliceWorkload>(descriptor, info);
461 }

◆ CreateSoftmax()

std::unique_ptr< IWorkload > CreateSoftmax ( const SoftmaxQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 463 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

465 {
466  return MakeWorkloadHelper<NeonSoftmaxFloatWorkload, NeonSoftmaxUint8Workload>(
467  descriptor, info, m_MemoryManager->GetIntraLayerManager());
468 }

◆ CreateSpaceToBatchNd()

std::unique_ptr< IWorkload > CreateSpaceToBatchNd ( const SpaceToBatchNdQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 470 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

472 {
473  return std::make_unique<NeonSpaceToBatchNdWorkload>(descriptor, info);
474 }

◆ CreateSpaceToDepth()

std::unique_ptr< IWorkload > CreateSpaceToDepth ( const SpaceToDepthQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 476 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

478 {
479  return std::make_unique<NeonSpaceToDepthWorkload>(descriptor, info);
480 }

◆ CreateSplitter()

std::unique_ptr< IWorkload > CreateSplitter ( const SplitterQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 482 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

484 {
485  return std::make_unique<NeonSplitterWorkload>(descriptor, info);
486 }

◆ CreateStack()

std::unique_ptr< IWorkload > CreateStack ( const StackQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 488 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

490 {
491  return std::make_unique<NeonStackWorkload>(descriptor, info);
492 }

◆ CreateStridedSlice()

std::unique_ptr< IWorkload > CreateStridedSlice ( const StridedSliceQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 494 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

496 {
497  return std::make_unique<NeonStridedSliceWorkload>(descriptor, info);
498 }

◆ CreateSubTensorHandle()

std::unique_ptr< ITensorHandle > CreateSubTensorHandle ( ITensorHandle parent,
TensorShape const &  subTensorShape,
unsigned int const *  subTensorOrigin 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 50 of file NeonWorkloadFactory.cpp.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

53 {
54  const arm_compute::TensorShape shape = armcomputetensorutils::BuildArmComputeTensorShape(subTensorShape);
55 
57  coords.set_num_dimensions(subTensorShape.GetNumDimensions());
58  for (unsigned int i = 0; i < subTensorShape.GetNumDimensions(); i++)
59  {
60  // Arm compute indexes tensor coords in reverse order.
61  unsigned int revertedIndex = subTensorShape.GetNumDimensions() - i - 1;
62  coords.set(i, boost::numeric_cast<int>(subTensorOrigin[revertedIndex]));
63  }
64 
65  const arm_compute::TensorShape parentShape = armcomputetensorutils::BuildArmComputeTensorShape(parent.GetShape());
66  if (!::arm_compute::error_on_invalid_subtensor(__func__, __FILE__, __LINE__, parentShape, coords, shape))
67  {
68  return nullptr;
69  }
70 
71  return std::make_unique<NeonSubTensorHandle>(
72  boost::polymorphic_downcast<IAclTensorHandle*>(&parent), shape, coords);
73 }
std::array< unsigned int, MaxNumOfTensorDimensions > Coordinates

◆ CreateSubtraction()

std::unique_ptr< armnn::IWorkload > CreateSubtraction ( const SubtractionQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 500 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

502 {
503  return std::make_unique<NeonSubtractionWorkload>(descriptor, info);
504 }

◆ CreateTensorHandle() [1/2]

std::unique_ptr< ITensorHandle > CreateTensorHandle ( const TensorInfo tensorInfo,
const bool  IsMemoryManaged = true 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 75 of file NeonWorkloadFactory.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), and NeonWorkloadFactory::SupportsSubTensors().

77 {
78  auto tensorHandle = std::make_unique<NeonTensorHandle>(tensorInfo);
79  if (IsMemoryManaged)
80  {
81  tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
82  }
83  return tensorHandle;
84 }

◆ CreateTensorHandle() [2/2]

std::unique_ptr< ITensorHandle > CreateTensorHandle ( const TensorInfo tensorInfo,
DataLayout  dataLayout,
const bool  IsMemoryManaged = true 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 86 of file NeonWorkloadFactory.cpp.

89 {
90  auto tensorHandle = std::make_unique<NeonTensorHandle>(tensorInfo, dataLayout);
91  if (IsMemoryManaged)
92  {
93  tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
94  }
95  return tensorHandle;
96 }

◆ CreateTranspose()

std::unique_ptr< armnn::IWorkload > CreateTranspose ( const TransposeQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 506 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

508 {
509  return std::make_unique<NeonTransposeWorkload>(descriptor, info);
510 }

◆ CreateTransposeConvolution2d()

std::unique_ptr< IWorkload > CreateTransposeConvolution2d ( const TransposeConvolution2dQueueDescriptor descriptor,
const WorkloadInfo info 
) const
overridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 512 of file NeonWorkloadFactory.cpp.

References armnn::info.

Referenced by NeonWorkloadFactory::SupportsSubTensors().

515 {
516  return std::make_unique<NeonTransposeConvolution2dWorkload>(descriptor, info,
517  m_MemoryManager->GetIntraLayerManager());
518 }

◆ GetBackendId()

const BackendId & GetBackendId ( ) const
overridevirtual

Implements IWorkloadFactory.

Definition at line 40 of file NeonWorkloadFactory.cpp.

41 {
42  return s_Id;
43 }

◆ IsLayerSupported()

bool IsLayerSupported ( const Layer layer,
Optional< DataType dataType,
std::string &  outReasonIfUnsupported 
)
static

Definition at line 33 of file NeonWorkloadFactory.cpp.

References IWorkloadFactory::IsLayerSupported().

36 {
37  return IWorkloadFactory::IsLayerSupported(s_Id, layer, dataType, outReasonIfUnsupported);
38 }
static bool IsLayerSupported(const BackendId &backendId, const IConnectableLayer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)

◆ SupportsSubTensors()

bool SupportsSubTensors ( ) const
inlineoverridevirtual

Reimplemented from WorkloadFactoryBase.

Definition at line 28 of file NeonWorkloadFactory.hpp.

References ARMNN_DEPRECATED_MSG, NeonWorkloadFactory::CreateAbs(), NeonWorkloadFactory::CreateActivation(), NeonWorkloadFactory::CreateAddition(), NeonWorkloadFactory::CreateArgMinMax(), NeonWorkloadFactory::CreateBatchNormalization(), NeonWorkloadFactory::CreateBatchToSpaceNd(), NeonWorkloadFactory::CreateComparison(), NeonWorkloadFactory::CreateConcat(), NeonWorkloadFactory::CreateConstant(), NeonWorkloadFactory::CreateConvertFp16ToFp32(), NeonWorkloadFactory::CreateConvertFp32ToFp16(), NeonWorkloadFactory::CreateConvolution2d(), NeonWorkloadFactory::CreateDebug(), NeonWorkloadFactory::CreateDepthToSpace(), NeonWorkloadFactory::CreateDepthwiseConvolution2d(), NeonWorkloadFactory::CreateDequantize(), NeonWorkloadFactory::CreateDetectionPostProcess(), NeonWorkloadFactory::CreateDivision(), NeonWorkloadFactory::CreateElementwiseUnary(), NeonWorkloadFactory::CreateEqual(), NeonWorkloadFactory::CreateFloor(), NeonWorkloadFactory::CreateFullyConnected(), NeonWorkloadFactory::CreateGather(), NeonWorkloadFactory::CreateGreater(), NeonWorkloadFactory::CreateInput(), NeonWorkloadFactory::CreateInstanceNormalization(), NeonWorkloadFactory::CreateL2Normalization(), NeonWorkloadFactory::CreateLstm(), NeonWorkloadFactory::CreateMaximum(), NeonWorkloadFactory::CreateMean(), NeonWorkloadFactory::CreateMemCopy(), NeonWorkloadFactory::CreateMemImport(), NeonWorkloadFactory::CreateMerger(), NeonWorkloadFactory::CreateMinimum(), NeonWorkloadFactory::CreateMultiplication(), NeonWorkloadFactory::CreateNormalization(), NeonWorkloadFactory::CreateOutput(), NeonWorkloadFactory::CreatePad(), NeonWorkloadFactory::CreatePermute(), NeonWorkloadFactory::CreatePooling2d(), NeonWorkloadFactory::CreatePreCompiled(), NeonWorkloadFactory::CreatePrelu(), NeonWorkloadFactory::CreateQuantize(), NeonWorkloadFactory::CreateQuantizedLstm(), NeonWorkloadFactory::CreateReshape(), NeonWorkloadFactory::CreateResize(), NeonWorkloadFactory::CreateResizeBilinear(), NeonWorkloadFactory::CreateRsqrt(), NeonWorkloadFactory::CreateSlice(), NeonWorkloadFactory::CreateSoftmax(), NeonWorkloadFactory::CreateSpaceToBatchNd(), NeonWorkloadFactory::CreateSpaceToDepth(), NeonWorkloadFactory::CreateSplitter(), NeonWorkloadFactory::CreateStack(), NeonWorkloadFactory::CreateStridedSlice(), NeonWorkloadFactory::CreateSubTensorHandle(), NeonWorkloadFactory::CreateSubtraction(), NeonWorkloadFactory::CreateTensorHandle(), NeonWorkloadFactory::CreateTranspose(), NeonWorkloadFactory::CreateTransposeConvolution2d(), armnn::Info, and armnn::info.

28 { return true; }

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