14 #include <arm_compute/runtime/IScheduler.h> 32 std::string& outReasonIfUnsupported);
36 std::string& outReasonIfUnsupported,
44 unsigned int const* subTensorOrigin)
const override;
48 const bool IsMemoryManaged =
true)
const override;
53 const bool IsMemoryManaged =
true)
const override;
60 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
65 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
70 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
75 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
80 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
85 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
90 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
95 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
100 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
105 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
110 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
115 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
120 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
125 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
130 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
135 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
140 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
145 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
150 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
155 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
160 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
165 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
170 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
175 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
180 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
185 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
190 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
195 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
200 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
205 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
210 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
215 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
220 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
225 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
230 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
235 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
240 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
245 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
250 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
255 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
260 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
265 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
270 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
275 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
280 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
285 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
290 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
295 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
300 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
305 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
310 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
315 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
320 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
325 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
330 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
335 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
340 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
345 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
350 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
355 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
360 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
365 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
370 "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
"22.11")
375 void SetNumberOfThreads();
377 mutable std::shared_ptr<NeonMemoryManager> m_MemoryManager;
std::unique_ptr< IWorkload > CreateSubtraction(const SubtractionQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor &descriptor, const WorkloadInfo &info) const override
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
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< IWorkload > CreateLstm(const LstmQueueDescriptor &, const WorkloadInfo &) 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
std::unique_ptr< IWorkload > CreateTranspose(const TransposeQueueDescriptor &, const WorkloadInfo &) const override
Copyright (c) 2021 ARM Limited and Contributors.
std::unique_ptr< ITensorHandle > CreateSubTensorHandle(ITensorHandle &parent, TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const override
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
NeonWorkloadFactory(const std::shared_ptr< NeonMemoryManager > &memoryManager)
static bool IsLayerSupported(const Layer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
std::unique_ptr< IWorkload > CreateSpaceToDepth(const SpaceToDepthQueueDescriptor &, const WorkloadInfo &) const override
std::unique_ptr< IWorkload > CreateConcat(const ConcatQueueDescriptor &, const WorkloadInfo &) 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
bool SupportsSubTensors() 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
const BackendId & GetBackendId() 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
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 > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) 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
std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const override
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...