ArmNN
 22.05.01
ITensorHandleFactory Class Referenceabstract

#include <ITensorHandleFactory.hpp>

Inheritance diagram for ITensorHandleFactory:
ClImportTensorHandleFactory ClTensorHandleFactory MockTensorHandleFactory NeonTensorHandleFactory RefTensorHandleFactory SampleDynamicTensorHandleFactory

Public Types

using FactoryId = std::string
 

Public Member Functions

virtual ~ITensorHandleFactory ()
 Some TensorHandleFactory decisions are deferred to run-time. More...
 
virtual std::unique_ptr< ITensorHandleCreateSubTensorHandle (ITensorHandle &parent, TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const =0
 
virtual std::unique_ptr< ITensorHandleCreateTensorHandle (const TensorInfo &tensorInfo) const =0
 
virtual std::unique_ptr< ITensorHandleCreateTensorHandle (const TensorInfo &tensorInfo, DataLayout dataLayout) const =0
 
virtual std::unique_ptr< ITensorHandleCreateTensorHandle (const TensorInfo &tensorInfo, const bool IsMemoryManaged) const
 Utility Functions for backends which require TensorHandles to have unmanaged memory. More...
 
virtual std::unique_ptr< ITensorHandleCreateTensorHandle (const TensorInfo &tensorInfo, DataLayout dataLayout, const bool IsMemoryManaged) const
 
virtual const FactoryIdGetId () const =0
 
virtual bool SupportsInPlaceComputation () const
 
virtual bool SupportsSubTensors () const =0
 
virtual bool SupportsMapUnmap () const
 
virtual MemorySourceFlags GetExportFlags () const
 
virtual MemorySourceFlags GetImportFlags () const
 
virtual std::vector< CapabilityGetCapabilities (const IConnectableLayer *layer, const IConnectableLayer *connectedLayer, CapabilityClass capabilityClass)
 

Static Public Attributes

static const FactoryId LegacyFactoryId = "armnn_legacy_factory"
 
static const FactoryId DeferredFactoryId = "armnn_deferred_factory"
 Use the workload factory to create the tensor handle. More...
 

Detailed Description

Definition at line 42 of file ITensorHandleFactory.hpp.

Member Typedef Documentation

◆ FactoryId

using FactoryId = std::string

Definition at line 45 of file ITensorHandleFactory.hpp.

Constructor & Destructor Documentation

◆ ~ITensorHandleFactory()

virtual ~ITensorHandleFactory ( )
inlinevirtual

Some TensorHandleFactory decisions are deferred to run-time.

Definition at line 49 of file ITensorHandleFactory.hpp.

49 {}

Member Function Documentation

◆ CreateSubTensorHandle()

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

◆ CreateTensorHandle() [1/4]

virtual std::unique_ptr<ITensorHandle> CreateTensorHandle ( const TensorInfo tensorInfo) const
pure virtual

Implemented in NeonTensorHandleFactory, ClImportTensorHandleFactory, ClTensorHandleFactory, MockTensorHandleFactory, RefTensorHandleFactory, and SampleDynamicTensorHandleFactory.

Referenced by AdditionAfterMaxPoolTest(), AdditionBroadcast1ElementTestImpl(), AdditionBroadcastTestImpl(), BoundedReLuTestCommon(), BoundedReLuUint8UpperAndLowerBoundTest(), CastTest(), CompareActivationTestImpl(), CompareAdditionTest(), CompareBatchNormTest(), CompareConvolution2dTestImpl(), CompareDepthwiseConvolution2dTestImpl(), CompareMultiplicationTest(), ConcatDifferentInputOutputQParamTest(), Concatenate(), ConcatTestImpl(), ConcatUint16Test(), ConcatUint8DifferentQParamsTest(), ConcatUint8Test(), ConstantLinearActivationTestCommon(), ConvertBf16ToFp32Test(), ConvertFp32ToBf16Test(), Convolution1dTestImpl(), Convolution2dPerAxisQuantTest(), OutputHandler::CreateTensorHandles(), LoadedNetwork::CreateWorkingMemHandle(), DepthwiseConvolution2dAsymmetricTestImpl(), DepthwiseConvolution2dDepthMul1TestImpl(), DepthwiseConvolution2dPerAxisQuantTest(), DepthwiseConvolution2dTestImpl(), ElementwiseTestHelper(), ElementwiseUnaryTestHelper(), FakeQuantizationTest(), LoadedNetwork::ImportInputs(), LoadedNetwork::ImportOutputs(), L2Normalization2dShapeTest(), LoadedNetwork::MakeLoadedNetwork(), MirrorPad2dTestCommon(), MirrorPad3dTestCommon(), MirrorPad4dTestCommon(), Pad2dTestCommon(), Pad3dTestCommon(), Pad4dTestCommon(), PadQAsymmTestCommon(), PermuteTensorData(), PreluTest(), RankTest(), ShapeTest(), SimpleActivationTest(), SimpleConvertFp16ToFp32Test(), SimpleConvertFp32ToFp16Test(), SimpleConvolution2dNhwcTestImpl(), SimpleConvolution2dTestImpl(), SimpleConvolution3dTestImpl(), SimpleFillTest(), SimpleFloorTest(), SimpleFullyConnectedTestImpl(), SimplePermuteTestImpl(), SimpleTransposeTestImpl(), SqrtNNTest(), TransposeConvolution2dPerAxisQuantTest(), UnidirectionalSequenceLstmInt8WithCifgWithPeepholeNoProjectionTest(), UnidirectionalSequenceLstmLayerInt8NoCifgWithPeepholeWithProjectionTest(), UnidirectionalSequenceLstmLayerInt8NoCifgWithPeepholeWithProjectionWithLayerNormTest(), UnidirectionalSequenceLstmLayerInt8Test(), UnidirectionalSequenceLstmLayerInt8TimeMajorTest(), UnidirectionalSequenceLstmLayerNoCifgWithPeepholeWithProjectionTest(), UnidirectionalSequenceLstmLayerNoCifgWithPeepholeWithProjectionWithLayerNormTest(), and UnidirectionalSequenceLstmWithCifgWithPeepholeNoProjectionTest().

◆ CreateTensorHandle() [2/4]

virtual std::unique_ptr<ITensorHandle> CreateTensorHandle ( const TensorInfo tensorInfo,
DataLayout  dataLayout 
) const
pure virtual

◆ CreateTensorHandle() [3/4]

virtual std::unique_ptr<ITensorHandle> CreateTensorHandle ( const TensorInfo tensorInfo,
const bool  IsMemoryManaged 
) const
inlinevirtual

Utility Functions for backends which require TensorHandles to have unmanaged memory.

These should be overloaded if required to facilitate direct import of input tensors and direct export of output tensors.

Reimplemented in NeonTensorHandleFactory, ClImportTensorHandleFactory, ClTensorHandleFactory, MockTensorHandleFactory, RefTensorHandleFactory, and SampleDynamicTensorHandleFactory.

Definition at line 63 of file ITensorHandleFactory.hpp.

References armnn::IgnoreUnused().

65  {
66  IgnoreUnused(IsMemoryManaged);
67  return CreateTensorHandle(tensorInfo);
68  }
void IgnoreUnused(Ts &&...)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0

◆ CreateTensorHandle() [4/4]

virtual std::unique_ptr<ITensorHandle> CreateTensorHandle ( const TensorInfo tensorInfo,
DataLayout  dataLayout,
const bool  IsMemoryManaged 
) const
inlinevirtual

Reimplemented in NeonTensorHandleFactory, ClImportTensorHandleFactory, ClTensorHandleFactory, MockTensorHandleFactory, RefTensorHandleFactory, and SampleDynamicTensorHandleFactory.

Definition at line 70 of file ITensorHandleFactory.hpp.

References armnn::IgnoreUnused().

73  {
74  IgnoreUnused(IsMemoryManaged);
75  return CreateTensorHandle(tensorInfo, dataLayout);
76  }
void IgnoreUnused(Ts &&...)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0

◆ GetCapabilities()

virtual std::vector<Capability> GetCapabilities ( const IConnectableLayer layer,
const IConnectableLayer connectedLayer,
CapabilityClass  capabilityClass 
)
inlinevirtual

Reimplemented in NeonTensorHandleFactory, and ClImportTensorHandleFactory.

Definition at line 89 of file ITensorHandleFactory.hpp.

References armnn::IgnoreUnused().

Referenced by armnn::CalculateEdgeStrategy(), armnn::CalculateSlotOption(), ConcatLayer::CreateWorkload(), and SplitterLayer::CreateWorkload().

92  {
93  IgnoreUnused(layer);
94  IgnoreUnused(connectedLayer);
95  IgnoreUnused(capabilityClass);
96  return std::vector<Capability>();
97  }
void IgnoreUnused(Ts &&...)

◆ GetExportFlags()

◆ GetId()

◆ GetImportFlags()

◆ SupportsInPlaceComputation()

virtual bool SupportsInPlaceComputation ( ) const
inlinevirtual

Reimplemented in NeonTensorHandleFactory.

Definition at line 80 of file ITensorHandleFactory.hpp.

80 { return false; }

◆ SupportsMapUnmap()

virtual bool SupportsMapUnmap ( ) const
inlinevirtual

◆ SupportsSubTensors()

Member Data Documentation

◆ DeferredFactoryId

const ITensorHandleFactory::FactoryId DeferredFactoryId = "armnn_deferred_factory"
static

Use the workload factory to create the tensor handle.

Definition at line 47 of file ITensorHandleFactory.hpp.

Referenced by armnn::CalculateSlotOptionForOutput().

◆ LegacyFactoryId


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