// // Copyright © 2019 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "WorkloadFactory.hpp" namespace armnn { class WorkloadFactoryBase : public IWorkloadFactory { public: bool SupportsSubTensors() const override { return false; }; std::unique_ptr CreateSubTensorHandle(ITensorHandle& /*parent*/, TensorShape const& /*subTensorShape*/, unsigned int const */*subTensorOrigin*/) const override { return nullptr; }; std::unique_ptr CreateInput(const InputQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateTensorHandle(const TensorInfo& /*tensorInfo*/, const bool /*IsMemoryManaged*/) const override { return nullptr; } std::unique_ptr CreateTensorHandle(const TensorInfo& /*tensorInfo*/, DataLayout /*dataLayout*/, const bool /*IsMemoryManaged*/) const override { return nullptr; } std::unique_ptr CreateAbs(const AbsQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateActivation(const ActivationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateAddition(const AdditionQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateArgMinMax(const ArgMinMaxQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateBatchNormalization(const BatchNormalizationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateComparison(const ComparisonQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateConcat(const ConcatQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateConstant(const ConstantQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateConvolution2d(const Convolution2dQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateDebug(const DebugQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateDepthToSpace(const DepthToSpaceQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateDequantize(const DequantizeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateDetectionPostProcess(const DetectionPostProcessQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateDivision(const DivisionQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, const WorkloadInfo& info) const override { if (descriptor.m_Parameters.m_Operation == UnaryOperation::Abs) { AbsQueueDescriptor absDescriptor; return CreateAbs(absDescriptor, info); } else if (descriptor.m_Parameters.m_Operation == UnaryOperation::Rsqrt) { RsqrtQueueDescriptor rsqrtDescriptor; return CreateRsqrt(rsqrtDescriptor, info); } return nullptr; } std::unique_ptr CreateFakeQuantization(const FakeQuantizationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateFloor(const FloorQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateFullyConnected(const FullyConnectedQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateGather(const GatherQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateInstanceNormalization(const InstanceNormalizationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateL2Normalization(const L2NormalizationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateLogSoftmax(const LogSoftmaxQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateLstm(const LstmQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateMaximum(const MaximumQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateMean(const MeanQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateMemCopy(const MemCopyQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateMemImport(const MemImportQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateMerge(const MergeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateMinimum(const MinimumQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateMultiplication(const MultiplicationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateNormalization(const NormalizationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateOutput(const OutputQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreatePad(const PadQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreatePermute(const PermuteQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreatePooling2d(const Pooling2dQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreatePrelu(const PreluQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateQuantize(const QuantizeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateRank(const RankQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateReshape(const ReshapeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateResize(const ResizeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateRsqrt(const RsqrtQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateSlice(const SliceQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateSoftmax(const SoftmaxQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateSubtraction(const SubtractionQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateSplitter(const SplitterQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateStack(const StackQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateStridedSlice(const StridedSliceQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateSwitch(const SwitchQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateTranspose(const TransposeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } std::unique_ptr CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } }; } //namespace armnn