15 #include <arm_compute/core/CL/CLCompileContext.h> 35 std::string& outReasonIfUnsupported);
39 std::string& outReasonIfUnsupported,
47 unsigned int const* subTensorOrigin)
const override;
51 const bool IsMemoryManaged =
true)
const override;
56 const bool IsMemoryManaged =
true)
const override;
63 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
68 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
73 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
78 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
83 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
88 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
93 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
98 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
103 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
108 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
113 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
118 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
123 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
128 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
133 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
138 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
143 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
148 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
153 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
158 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
163 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
168 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
173 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
178 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
183 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
188 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
193 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
198 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
203 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
208 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
213 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
218 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
223 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
228 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
233 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
238 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
243 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
248 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
253 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
258 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
263 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
268 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
273 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
278 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
283 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
288 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
293 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
298 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
303 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
308 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
313 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
318 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
323 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
328 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
333 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
338 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
343 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
348 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
353 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
358 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
363 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
369 static std::unique_ptr<IWorkload> MakeWorkload(
const QueueDescriptorType& descriptor,
373 template <
typename Workload,
typename QueueDescriptorType,
typename... Args>
374 static std::unique_ptr<IWorkload> MakeWorkload(
const QueueDescriptorType& descriptor,
378 void InitializeCLCompileContext();
380 mutable std::shared_ptr<ClMemoryManager> m_MemoryManager;
382 arm_compute::CLCompileContext m_CLCompileContext;
std::unique_ptr< IWorkload > CreateSubtraction(const SubtractionQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< ITensorHandle > CreateSubTensorHandle(ITensorHandle &parent, TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const override
std::unique_ptr< IWorkload > CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &info) const override
ClWorkloadFactory(const std::shared_ptr< ClMemoryManager > &memoryManager)
std::unique_ptr< IWorkload > CreateStridedSlice(const StridedSliceQueueDescriptor &, const WorkloadInfo &) const override
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
std::unique_ptr< IWorkload > CreateInput(const InputQueueDescriptor &, const WorkloadInfo &) const override
void AfterWorkloadsCreated() override
std::unique_ptr< IWorkload > CreateL2Normalization(const L2NormalizationQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateBatchNormalization(const BatchNormalizationQueueDescriptor &, const WorkloadInfo &) const override
std::vector< BackendOptions > ModelOptions
std::unique_ptr< IWorkload > CreateSoftmax(const SoftmaxQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreatePooling2d(const Pooling2dQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateMean(const MeanQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreatePad(const PadQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const override
std::unique_ptr< IWorkload > CreateLstm(const LstmQueueDescriptor &, const WorkloadInfo &) const override
const BackendId & GetBackendId() const override
std::unique_ptr< IWorkload > CreateDepthToSpace(const DepthToSpaceQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateLogSoftmax(const LogSoftmaxQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateComparison(const ComparisonQueueDescriptor &, const WorkloadInfo &) const override
bool SupportsSubTensors() const override
std::unique_ptr< IWorkload > CreateTranspose(const TransposeQueueDescriptor &, const WorkloadInfo &) const override
Copyright (c) 2021 ARM Limited and Contributors.
TypedWorkload< QueueDescriptor, armnn::DataType::Float16, armnn::DataType::Float32 > FloatWorkload
std::unique_ptr< IWorkload > CreateDequantize(const DequantizeQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateSplitter(const SplitterQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateNormalization(const NormalizationQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateInstanceNormalization(const InstanceNormalizationQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateSpaceToDepth(const SpaceToDepthQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateConcat(const ConcatQueueDescriptor &, const WorkloadInfo &) const override
static bool IsLayerSupported(const Layer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const override
std::unique_ptr< IWorkload > CreatePrelu(const PreluQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateArgMinMax(const ArgMinMaxQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreatePermute(const PermuteQueueDescriptor &, const WorkloadInfo &) const override
std::shared_ptr< IBackendModelContext > IBackendSpecificModelContextPtr
std::unique_ptr< IWorkload > CreateDebug(const DebugQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateConstant(const ConstantQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateConvolution2d(const Convolution2dQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateFullyConnected(const FullyConnectedQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateMinimum(const MinimumQueueDescriptor &, const WorkloadInfo &) const override
ARMNN_NO_DEPRECATE_WARN_BEGIN struct ARMNN_DEPRECATED_MSG_REMOVAL_DATE("ResizeBilinearQueueDescriptor is deprecated use ResizeQueueDescriptor instead", "22.08") ResizeBilinearQueueDescriptor
std::unique_ptr< IWorkload > CreateReshape(const ReshapeQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateFloor(const FloorQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateRank(const RankQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateDetectionPostProcess(const DetectionPostProcessQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateQuantize(const QuantizeQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateAddition(const AdditionQueueDescriptor &, const WorkloadInfo &) const override
TypedWorkload< QueueDescriptor, armnn::DataType::QAsymmU8 > Uint8Workload
std::unique_ptr< IWorkload > CreateGather(const GatherQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateDivision(const DivisionQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreatePreCompiled(const PreCompiledQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateStack(const StackQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateOutput(const OutputQueueDescriptor &, const WorkloadInfo &) const override
Contains information about TensorInfos of a layer.
std::unique_ptr< IWorkload > CreateResize(const ResizeQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateSlice(const SliceQueueDescriptor &, const WorkloadInfo &) const override
#define ARMNN_DEPRECATED_MSG(message)
std::unique_ptr< IWorkload > CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateMultiplication(const MultiplicationQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateMaximum(const MaximumQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateActivation(const ActivationQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateMemImport(const MemImportQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateMemCopy(const MemCopyQueueDescriptor &, const WorkloadInfo &) const override
Depthwise Convolution 2D layer workload data.
std::unique_ptr< IWorkload > CreateQuantizedLstm(const QuantizedLstmQueueDescriptor &, const WorkloadInfo &) const override
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...