From 6940dd720ebb6b3d1df8ca203ab696daefe58189 Mon Sep 17 00:00:00 2001 From: Jim Flynn Date: Fri, 20 Mar 2020 12:25:56 +0000 Subject: renamed Documentation folder 20.02 and added .nojekyll file Signed-off-by: Jim Flynn --- 20.02/classarmnn_1_1_cl_workload_factory.xhtml | 3192 ++++++++++++++++++++++++ 1 file changed, 3192 insertions(+) create mode 100644 20.02/classarmnn_1_1_cl_workload_factory.xhtml (limited to '20.02/classarmnn_1_1_cl_workload_factory.xhtml') diff --git a/20.02/classarmnn_1_1_cl_workload_factory.xhtml b/20.02/classarmnn_1_1_cl_workload_factory.xhtml new file mode 100644 index 0000000000..ba451ac39f --- /dev/null +++ b/20.02/classarmnn_1_1_cl_workload_factory.xhtml @@ -0,0 +1,3192 @@ + + + + + + + + + + + + + +ArmNN: ClWorkloadFactory Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  20.02 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ClWorkloadFactory Class Reference
+
+
+ +

#include <ClWorkloadFactory.hpp>

+
+Inheritance diagram for ClWorkloadFactory:
+
+
+ + +WorkloadFactoryBase +IWorkloadFactory + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ClWorkloadFactory (const std::shared_ptr< ClMemoryManager > &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 ClWorkloadFactory.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ClWorkloadFactory()

+ +
+
+ + + + + + + + +
ClWorkloadFactory (const std::shared_ptr< ClMemoryManager > & memoryManager)
+
+ +

Definition at line 80 of file ClWorkloadFactory.cpp.

+
81  : m_MemoryManager(memoryManager)
82 {
83 }
+
+
+

Member Function Documentation

+ +

◆ CreateAbs()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateAbs (const AbsQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 131 of file ClWorkloadFactory.cpp.

+ +

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

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
133 {
134  IgnoreUnused(descriptor);
135 
136  ElementwiseUnaryQueueDescriptor elementwiseUnaryDescriptor;
137  elementwiseUnaryDescriptor.m_Parameters = ElementwiseUnaryDescriptor(UnaryOperation::Abs);
138 
139  return CreateElementwiseUnary(elementwiseUnaryDescriptor, info);
140 }
+
void IgnoreUnused(Ts &&...)
+
std::unique_ptr< IWorkload > CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &info) const override
+ +
+
+
+ +

◆ CreateActivation()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateActivation (const ActivationQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 142 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
144 {
145  return MakeWorkload<ClActivationWorkload>(descriptor, info);
146 }
+
+
+
+ +

◆ CreateAddition()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateAddition (const AdditionQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 148 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
150 {
151  return MakeWorkload<ClAdditionWorkload>(descriptor, info);
152 }
+
+
+
+ +

◆ CreateArgMinMax()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateArgMinMax (const ArgMinMaxQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 154 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
156 {
157  return std::make_unique<ClArgMinMaxWorkload>(descriptor, info);
158 }
+
+
+
+ +

◆ CreateBatchNormalization()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateBatchNormalization (const BatchNormalizationQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 160 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
163 {
164  return MakeWorkload<ClBatchNormalizationFloatWorkload, NullWorkload>(descriptor, info);
165 }
+
+
+
+ +

◆ CreateBatchToSpaceNd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateBatchToSpaceNd (const BatchToSpaceNdQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 167 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
169 {
170  return MakeWorkload<ClBatchToSpaceNdWorkload>(descriptor, info);
171 }
+
+
+
+ +

◆ CreateComparison()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateComparison (const ComparisonQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 173 of file ClWorkloadFactory.cpp.

+ +

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

+ +

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

+
175 {
176  if (descriptor.m_Parameters.m_Operation == ComparisonOperation::Greater)
177  {
178  GreaterQueueDescriptor greaterQueueDescriptor;
179  greaterQueueDescriptor.m_Inputs = descriptor.m_Inputs;
180  greaterQueueDescriptor.m_Outputs = descriptor.m_Outputs;
181 
182  return MakeWorkload<ClGreaterFloat32Workload, ClGreaterUint8Workload>(greaterQueueDescriptor, info);
183  }
184  return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
185 }
+ +
+
+
+ +

◆ CreateConcat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateConcat (const ConcatQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 187 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

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

+
189 {
190  return MakeWorkload<ClConcatWorkload>(descriptor, info);
191 }
+
+
+
+ +

◆ CreateConstant()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateConstant (const ConstantQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 193 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
195 {
196  return MakeWorkload<ClConstantWorkload>(descriptor, info);
197 }
+
+
+
+ +

◆ CreateConvertFp16ToFp32()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateConvertFp16ToFp32 (const ConvertFp16ToFp32QueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 199 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
202 {
203  return MakeWorkload<ClConvertFp16ToFp32Workload>(descriptor, info);
204 }
+
+
+
+ +

◆ CreateConvertFp32ToFp16()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateConvertFp32ToFp16 (const ConvertFp32ToFp16QueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 206 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
209 {
210  return MakeWorkload<ClConvertFp32ToFp16Workload>(descriptor, info);
211 }
+
+
+
+ +

◆ CreateConvolution2d()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateConvolution2d (const Convolution2dQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 213 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
215 {
216  return MakeWorkload<ClConvolution2dWorkload>(descriptor, info, m_MemoryManager->GetIntraLayerManager());
217 }
+
+
+
+ +

◆ CreateDebug()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateDebug (const DebugQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 219 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
221 {
222  return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
223 }
+
+
+
+ +

◆ CreateDepthToSpace()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateDepthToSpace (const DepthToSpaceQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 225 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
227 {
228  return MakeWorkload<ClDepthToSpaceWorkload>(descriptor, info);
229 }
+
+
+
+ +

◆ CreateDepthwiseConvolution2d()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateDepthwiseConvolution2d (const DepthwiseConvolution2dQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 231 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
234 {
235  return MakeWorkload<ClDepthwiseConvolutionWorkload>(descriptor, info);
236 }
+
+
+
+ +

◆ CreateDequantize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateDequantize (const DequantizeQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 238 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
240 {
241  return MakeWorkload<ClDequantizeWorkload>(descriptor, info);
242 }
+
+
+
+ +

◆ CreateDetectionPostProcess()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateDetectionPostProcess (const DetectionPostProcessQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 244 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
247 {
248  return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
249 }
+
+
+
+ +

◆ CreateDivision()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateDivision (const DivisionQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 251 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
253 {
254  return MakeWorkload<ClDivisionFloatWorkload, NullWorkload>(descriptor, info);
255 }
+
+
+
+ +

◆ CreateElementwiseUnary()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateElementwiseUnary (const ElementwiseUnaryQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 257 of file ClWorkloadFactory.cpp.

+ +

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

+ +

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

+
259 {
260  if (descriptor.m_Parameters.m_Operation == UnaryOperation::Abs)
261  {
262  AbsQueueDescriptor absQueueDescriptor;
263  absQueueDescriptor.m_Inputs = descriptor.m_Inputs;
264  absQueueDescriptor.m_Outputs = descriptor.m_Outputs;
265 
266  return MakeWorkload<ClAbsWorkload>(absQueueDescriptor, info);
267  }
268  else if (descriptor.m_Parameters.m_Operation == UnaryOperation::Rsqrt)
269  {
270  RsqrtQueueDescriptor rsqrtQueueDescriptor;
271  rsqrtQueueDescriptor.m_Inputs = descriptor.m_Inputs;
272  rsqrtQueueDescriptor.m_Outputs = descriptor.m_Outputs;
273 
274  return MakeWorkload<ClRsqrtWorkload>(rsqrtQueueDescriptor, info);
275  }
276  return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
277 }
+ + +
+
+
+ +

◆ CreateEqual()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateEqual (const EqualQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from IWorkloadFactory.

+ +

Definition at line 279 of file ClWorkloadFactory.cpp.

+ +

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

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
281 {
282  IgnoreUnused(descriptor);
283 
284  ComparisonQueueDescriptor comparisonDescriptor;
285  comparisonDescriptor.m_Parameters = ComparisonDescriptor(ComparisonOperation::Equal);
286 
287  return CreateComparison(comparisonDescriptor, info);
288 }
std::unique_ptr< IWorkload > CreateComparison(const ComparisonQueueDescriptor &descriptor, const WorkloadInfo &info) const override
+ +
void IgnoreUnused(Ts &&...)
+ +
+
+
+ +

◆ CreateFloor()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateFloor (const FloorQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 290 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
292 {
293  return MakeWorkload<ClFloorFloatWorkload, NullWorkload>(descriptor, info);
294 }
+
+
+
+ +

◆ CreateFullyConnected()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateFullyConnected (const FullyConnectedQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 296 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
298 {
299  return MakeWorkload<ClFullyConnectedWorkload>(descriptor, info, m_MemoryManager->GetIntraLayerManager());
300 }
+
+
+
+ +

◆ CreateGather()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateGather (const GatherQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 302 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
304 {
305  return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
306 }
+
+
+
+ +

◆ CreateGreater()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateGreater (const GreaterQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from IWorkloadFactory.

+ +

Definition at line 308 of file ClWorkloadFactory.cpp.

+ +

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

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
310 {
311  IgnoreUnused(descriptor);
312 
313  ComparisonQueueDescriptor comparisonDescriptor;
314  comparisonDescriptor.m_Parameters = ComparisonDescriptor(ComparisonOperation::Greater);
315 
316  return CreateComparison(comparisonDescriptor, info);
317 }
+
std::unique_ptr< IWorkload > CreateComparison(const ComparisonQueueDescriptor &descriptor, const WorkloadInfo &info) const override
+
void IgnoreUnused(Ts &&...)
+ +
+
+
+ +

◆ CreateInput()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateInput (const InputQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 319 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
321 {
322  return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
323 }
+
+
+
+ +

◆ CreateInstanceNormalization()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateInstanceNormalization (const InstanceNormalizationQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 325 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
328 {
329  return MakeWorkload<ClInstanceNormalizationWorkload>(descriptor, info);
330 }
+
+
+
+ +

◆ CreateL2Normalization()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateL2Normalization (const L2NormalizationQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 332 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
334 {
335  return MakeWorkload<ClL2NormalizationFloatWorkload, NullWorkload>(descriptor, info);
336 }
+
+
+
+ +

◆ CreateLstm()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateLstm (const LstmQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 338 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
340 {
341  return MakeWorkload<ClLstmFloatWorkload, NullWorkload>(descriptor, info);
342 }
+
+
+
+ +

◆ CreateMaximum()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateMaximum (const MaximumQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 344 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
346 {
347  return MakeWorkload<ClMaximumWorkload>(descriptor, info);
348 }
+
+
+
+ +

◆ CreateMean()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateMean (const MeanQueueDescriptordescriptor,
const WorkloadInfoInfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 350 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
352 {
353  return MakeWorkload<ClMeanWorkload>(descriptor, info);
354 }
+
+
+
+ +

◆ CreateMemCopy()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateMemCopy (const MemCopyQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 356 of file ClWorkloadFactory.cpp.

+ +

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

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
358 {
359  if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0])
360  {
361  throw InvalidArgumentException("ClWorkloadFactory: Invalid null input for MemCopy workload");
362  }
363 
364  return MakeWorkload<CopyMemGenericWorkload>(descriptor, info);
365 }
+
+
+
+ +

◆ CreateMemImport()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateMemImport (const MemImportQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 367 of file ClWorkloadFactory.cpp.

+ +

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

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
369 {
370  if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0])
371  {
372  throw InvalidArgumentException("ClWorkloadFactory: Invalid null input for MemImport workload");
373  }
374 
375  return std::make_unique<ImportMemGenericWorkload>(descriptor, info);
376 }
+
+
+
+ +

◆ CreateMerger()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateMerger (const MergerQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from IWorkloadFactory.

+ +

Definition at line 378 of file ClWorkloadFactory.cpp.

+ +

References ClWorkloadFactory::CreateConcat().

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
380 {
381  return CreateConcat(descriptor, info);
382 }
+
std::unique_ptr< IWorkload > CreateConcat(const ConcatQueueDescriptor &descriptor, const WorkloadInfo &info) const override
+
+
+
+ +

◆ CreateMinimum()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateMinimum (const MinimumQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 384 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
386 {
387  return MakeWorkload<ClMinimumWorkload>(descriptor, info);
388 }
+
+
+
+ +

◆ CreateMultiplication()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateMultiplication (const MultiplicationQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 390 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
392 {
393  return MakeWorkload<ClMultiplicationWorkload>(descriptor, info);
394 }
+
+
+
+ +

◆ CreateNormalization()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateNormalization (const NormalizationQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 396 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
398 {
399  return MakeWorkload<ClNormalizationFloatWorkload, NullWorkload>(descriptor, info);
400 }
+
+
+
+ +

◆ CreateOutput()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateOutput (const OutputQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 402 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
404 {
405  return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
406 }
+
+
+
+ +

◆ CreatePad()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreatePad (const PadQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 408 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
410 {
411  return MakeWorkload<ClPadWorkload>(descriptor, info);
412 }
+
+
+
+ +

◆ CreatePermute()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreatePermute (const PermuteQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 414 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
416 {
417  return MakeWorkload<ClPermuteWorkload>(descriptor, info);
418 }
+
+
+
+ +

◆ CreatePooling2d()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreatePooling2d (const Pooling2dQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 420 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
422 {
423  return MakeWorkload<ClPooling2dWorkload>(descriptor, info);
424 }
+
+
+
+ +

◆ CreatePreCompiled()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreatePreCompiled (const PreCompiledQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 426 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
428 {
429  return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
430 }
+
+
+
+ +

◆ CreatePrelu()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreatePrelu (const PreluQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 432 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
434 {
435  return MakeWorkload<ClPreluWorkload>(descriptor, info);
436 }
+
+
+
+ +

◆ CreateQuantize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateQuantize (const QuantizeQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 438 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
440 {
441  return MakeWorkload<ClQuantizeWorkload>(descriptor, info);
442 }
+
+
+
+ +

◆ CreateQuantizedLstm()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateQuantizedLstm (const QuantizedLstmQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 444 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
446 {
447  return MakeWorkload<ClQuantizedLstmWorkload>(descriptor, info);
448 }
+
+
+
+ +

◆ CreateReshape()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateReshape (const ReshapeQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 450 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
452 {
453  return MakeWorkload<ClReshapeWorkload>(descriptor, info);
454 }
+
+
+
+ +

◆ CreateResize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateResize (const ResizeQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 456 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

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

+
458 {
459  return MakeWorkload<ClResizeWorkload>(descriptor, info);
460 }
+
+
+
+ +

◆ CreateResizeBilinear()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateResizeBilinear (const ResizeBilinearQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from IWorkloadFactory.

+ +

Definition at line 462 of file ClWorkloadFactory.cpp.

+ +

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

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
464 {
465  ResizeQueueDescriptor resizeDescriptor;
466  resizeDescriptor.m_Inputs = descriptor.m_Inputs;
467  resizeDescriptor.m_Outputs = descriptor.m_Outputs;
468 
469  resizeDescriptor.m_Parameters.m_Method = ResizeMethod::Bilinear;
470  resizeDescriptor.m_Parameters.m_DataLayout = descriptor.m_Parameters.m_DataLayout;
471  resizeDescriptor.m_Parameters.m_TargetHeight = descriptor.m_Parameters.m_TargetHeight;
472  resizeDescriptor.m_Parameters.m_TargetWidth = descriptor.m_Parameters.m_TargetWidth;
473 
474  return CreateResize(resizeDescriptor, info);
475 }
std::unique_ptr< IWorkload > CreateResize(const ResizeQueueDescriptor &descriptor, const WorkloadInfo &info) const override
+ + +
+
+
+ +

◆ CreateRsqrt()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateRsqrt (const RsqrtQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 477 of file ClWorkloadFactory.cpp.

+ +

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

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
479 {
480  IgnoreUnused(descriptor);
481 
482  ElementwiseUnaryQueueDescriptor elementwiseUnaryDescriptor;
483  elementwiseUnaryDescriptor.m_Parameters = ElementwiseUnaryDescriptor(UnaryOperation::Rsqrt);
484 
485  return CreateElementwiseUnary(elementwiseUnaryDescriptor, info);
486 }
void IgnoreUnused(Ts &&...)
+
std::unique_ptr< IWorkload > CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &info) const override
+ + +
+
+
+ +

◆ CreateSlice()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateSlice (const SliceQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 488 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
490 {
491  return MakeWorkload<ClSliceWorkload>(descriptor, info);
492 }
+
+
+
+ +

◆ CreateSoftmax()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateSoftmax (const SoftmaxQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 494 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
496 {
497  return MakeWorkload<ClSoftmaxFloatWorkload, ClSoftmaxUint8Workload>(descriptor, info,
498  m_MemoryManager->GetIntraLayerManager());
499 }
+
+
+
+ +

◆ CreateSpaceToBatchNd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateSpaceToBatchNd (const SpaceToBatchNdQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 501 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
503 {
504  return MakeWorkload<ClSpaceToBatchNdWorkload>(descriptor, info);
505 }
+
+
+
+ +

◆ CreateSpaceToDepth()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateSpaceToDepth (const SpaceToDepthQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 507 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
509 {
510  return MakeWorkload<ClSpaceToDepthWorkload>(descriptor, info);
511 }
+
+
+
+ +

◆ CreateSplitter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateSplitter (const SplitterQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 513 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
515 {
516  return MakeWorkload<ClSplitterWorkload>(descriptor, info);
517 }
+
+
+
+ +

◆ CreateStack()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateStack (const StackQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 519 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
521 {
522  return MakeWorkload<ClStackWorkload>(descriptor, info);
523 }
+
+
+
+ +

◆ CreateStridedSlice()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateStridedSlice (const StridedSliceQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 525 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
527 {
528  return MakeWorkload<ClStridedSliceWorkload>(descriptor, info);
529 }
+
+
+
+ +

◆ CreateSubTensorHandle()

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

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 106 of file ClWorkloadFactory.cpp.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
109 {
111  arm_compute::TensorShape shape = armcomputetensorutils::BuildArmComputeTensorShape(subTensorShape);
112 
113  coords.set_num_dimensions(subTensorShape.GetNumDimensions());
114  for (unsigned int i = 0; i < subTensorShape.GetNumDimensions(); i++)
115  {
116  // Arm compute indexes tensor coords in reverse order.
117  unsigned int revertedIndex = subTensorShape.GetNumDimensions() - i - 1;
118  coords.set(i, boost::numeric_cast<int>(subTensorOrigin[revertedIndex]));
119  }
120 
121  const arm_compute::TensorShape parentShape = armcomputetensorutils::BuildArmComputeTensorShape(parent.GetShape());
122  if (!::arm_compute::error_on_invalid_subtensor(__func__, __FILE__, __LINE__, parentShape, coords, shape))
123  {
124  return nullptr;
125  }
126 
127  return std::make_unique<ClSubTensorHandle>(
128  boost::polymorphic_downcast<IClTensorHandle*>(&parent), shape, coords);
129 }
std::array< unsigned int, MaxNumOfTensorDimensions > Coordinates
+
+
+
+ +

◆ CreateSubtraction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateSubtraction (const SubtractionQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 531 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
533 {
534  return MakeWorkload<ClSubtractionWorkload>(descriptor, info);
535 }
+
+
+
+ +

◆ CreateTensorHandle() [1/2]

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

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 85 of file ClWorkloadFactory.cpp.

+ +

References armnn::IgnoreUnused().

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
87 {
88  IgnoreUnused(IsMemoryManaged);
89  std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo);
90  tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
91 
92  return tensorHandle;
93 }
void IgnoreUnused(Ts &&...)
+
+
+
+ +

◆ CreateTensorHandle() [2/2]

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

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 95 of file ClWorkloadFactory.cpp.

+ +

References armnn::IgnoreUnused().

+
98 {
99  IgnoreUnused(IsMemoryManaged);
100  std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo, dataLayout);
101  tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
102 
103  return tensorHandle;
104 }
void IgnoreUnused(Ts &&...)
+
+
+
+ +

◆ CreateTranspose()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateTranspose (const TransposeQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 537 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
539 {
540  return MakeWorkload<ClTransposeWorkload>(descriptor, info);
541 }
+
+
+
+ +

◆ CreateTransposeConvolution2d()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< IWorkload > CreateTransposeConvolution2d (const TransposeConvolution2dQueueDescriptordescriptor,
const WorkloadInfoinfo 
) const
+
+overridevirtual
+
+ +

Reimplemented from WorkloadFactoryBase.

+ +

Definition at line 543 of file ClWorkloadFactory.cpp.

+ +

References armnn::info.

+ +

Referenced by ClWorkloadFactory::SupportsSubTensors().

+
546 {
547  return MakeWorkload<ClTransposeConvolution2dWorkload>(descriptor, info, m_MemoryManager->GetIntraLayerManager());
548 }
+
+
+
+ +

◆ GetBackendId()

+ +
+
+ + + + + +
+ + + + + + + +
const BackendId & GetBackendId () const
+
+overridevirtual
+
+ +

Implements IWorkloadFactory.

+ +

Definition at line 45 of file ClWorkloadFactory.cpp.

+ +

References CHECK_LOCATION, armnn::Error, armnn::info, and armnn::WrapClError().

+
46 {
47  return s_Id;
48 }
+
+
+ +

◆ IsLayerSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsLayerSupported (const Layerlayer,
Optional< DataTypedataType,
std::string & outReasonIfUnsupported 
)
+
+static
+
+ +

Definition at line 38 of file ClWorkloadFactory.cpp.

+ +

References IWorkloadFactory::IsLayerSupported().

+
41 {
42  return IWorkloadFactory::IsLayerSupported(s_Id, layer, dataType, outReasonIfUnsupported);
43 }
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 ClWorkloadFactory.hpp.

+ +

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

+
28 { return true; }
+
+
+
The documentation for this class was generated from the following files: +
+
+ + + + -- cgit v1.2.1