ArmNN
 22.08
ITensorHandle Class Referenceabstract

#include <ITensorHandle.hpp>

Inheritance diagram for ITensorHandle:
ConstTensorHandle EthosnRefTensorHandle IAclTensorHandle MockTensorHandle RefTensorHandle SampleTensorHandle ConstPassthroughTensorHandle TensorHandle IClTensorHandle NeonSubTensorHandle NeonTensorHandle PassthroughTensorHandle ScopedTensorHandle ClImportSubTensorHandle ClImportTensorHandle ClSubTensorHandle ClTensorHandle

Public Member Functions

virtual ~ITensorHandle ()
 
virtual void Manage ()=0
 Indicate to the memory manager that this resource is active. More...
 
virtual void Allocate ()=0
 Indicate to the memory manager that this resource is no longer active. More...
 
virtual ITensorHandleGetParent () const =0
 Get the parent tensor if this is a subtensor. More...
 
virtual const void * Map (bool blocking=true) const =0
 Map the tensor data for access. More...
 
virtual void Unmap () const =0
 Unmap the tensor data. More...
 
void * Map (bool blocking=true)
 Map the tensor data for access. More...
 
void Unmap ()
 Unmap the tensor data that was previously mapped with call to Map(). More...
 
virtual TensorShape GetStrides () const =0
 Get the strides for each dimension ordered from largest to smallest where the smallest value is the same as the size of a single element in the tensor. More...
 
virtual TensorShape GetShape () const =0
 Get the number of elements for each dimension ordered from slowest iterating dimension to fastest iterating dimension. More...
 
virtual void CopyOutTo (void *memory) const =0
 Testing support to be able to verify and set tensor data content. More...
 
virtual void CopyInFrom (const void *memory)=0
 
virtual unsigned int GetImportFlags () const
 Get flags describing supported import sources. More...
 
virtual bool Import (void *memory, MemorySource source)
 Import externally allocated memory. More...
 
virtual bool CanBeImported (void *memory, MemorySource source)
 Implementations must determine if this memory block can be imported. More...
 
virtual void Unimport ()
 Unimport externally allocated memory. More...
 

Detailed Description

Definition at line 15 of file ITensorHandle.hpp.

Constructor & Destructor Documentation

◆ ~ITensorHandle()

Member Function Documentation

◆ Allocate()

◆ CanBeImported()

virtual bool CanBeImported ( void *  memory,
MemorySource  source 
)
inlinevirtual

Implementations must determine if this memory block can be imported.

This might be based on alignment or memory source type.

Returns
true if this memory can be imported.
false by default, cannot be imported.

Reimplemented in ClImportTensorHandle, ClTensorHandle, NeonTensorHandle, RefTensorHandle, and MockTensorHandle.

Definition at line 85 of file ITensorHandle.hpp.

References armnn::IgnoreUnused().

Referenced by LoadedNetwork::ImportInputs(), and LoadedNetwork::ImportOutputs().

86  {
87  IgnoreUnused(memory, source);
88  return false;
89  };
void IgnoreUnused(Ts &&...)

◆ CopyInFrom()

virtual void CopyInFrom ( const void *  memory)
pure virtual

◆ CopyOutTo()

virtual void CopyOutTo ( void *  memory) const
pure virtual

Testing support to be able to verify and set tensor data content.

Referenced by CopyDataFromITensorHandle(), and ITensorHandle::Unmap().

◆ GetImportFlags()

virtual unsigned int GetImportFlags ( ) const
inlinevirtual

Get flags describing supported import sources.

Reimplemented in ClTensorHandle, NeonTensorHandle, ClImportTensorHandle, EthosnRefTensorHandle, RefTensorHandle, SampleTensorHandle, and MockTensorHandle.

Definition at line 69 of file ITensorHandle.hpp.

Referenced by LoadedNetwork::FreeWorkingMemory(), LoadedNetwork::ImportInputs(), and LoadedNetwork::ImportOutputs().

69 { return 0; }

◆ GetParent()

virtual ITensorHandle* GetParent ( ) const
pure virtual

◆ GetShape()

virtual TensorShape GetShape ( ) const
pure virtual

Get the number of elements for each dimension ordered from slowest iterating dimension to fastest iterating dimension.

Returns
a TensorShape filled with the number of elements for each dimension.

Implemented in ClImportSubTensorHandle, NeonSubTensorHandle, ClSubTensorHandle, ClTensorHandle, NeonTensorHandle, ClImportTensorHandle, ConstTensorHandle, EthosnRefTensorHandle, RefTensorHandle, SampleTensorHandle, and MockTensorHandle.

Referenced by armnn::CopyTensorContentsGeneric(), armnnUtils::FindMinMax(), TEST_SUITE(), and ITensorHandle::Unmap().

◆ GetStrides()

virtual TensorShape GetStrides ( ) const
pure virtual

Get the strides for each dimension ordered from largest to smallest where the smallest value is the same as the size of a single element in the tensor.

Returns
a TensorShape filled with the strides for each dimension

Implemented in ClImportSubTensorHandle, NeonSubTensorHandle, ClSubTensorHandle, ClTensorHandle, NeonTensorHandle, ClImportTensorHandle, ConstTensorHandle, EthosnRefTensorHandle, RefTensorHandle, SampleTensorHandle, and MockTensorHandle.

Referenced by armnn::CopyTensorContentsGeneric(), and ITensorHandle::Unmap().

◆ Import()

virtual bool Import ( void *  memory,
MemorySource  source 
)
inlinevirtual

Import externally allocated memory.

Parameters
memorybase address of the memory being imported.
sourcesource of the allocation for the memory being imported.
Returns
true on success or false on failure

Reimplemented in NeonTensorHandle, ClTensorHandle, ClImportTensorHandle, EthosnRefTensorHandle, RefTensorHandle, SampleTensorHandle, and MockTensorHandle.

Definition at line 75 of file ITensorHandle.hpp.

References armnn::IgnoreUnused().

Referenced by LoadedNetwork::FreeWorkingMemory(), LoadedNetwork::ImportInputs(), and LoadedNetwork::ImportOutputs().

76  {
77  IgnoreUnused(memory, source);
78  return false;
79  };
void IgnoreUnused(Ts &&...)

◆ Manage()

virtual void Manage ( )
pure virtual

Indicate to the memory manager that this resource is active.

This is used to compute overlapping lifetimes of resources.

Implemented in ClImportSubTensorHandle, NeonSubTensorHandle, ClSubTensorHandle, ClTensorHandle, NeonTensorHandle, ClImportTensorHandle, ConstTensorHandle, EthosnRefTensorHandle, RefTensorHandle, SampleTensorHandle, and MockTensorHandle.

Referenced by Graph::AllocateDynamicBuffers(), and ITensorHandle::~ITensorHandle().

◆ Map() [1/2]

◆ Map() [2/2]

void* Map ( bool  blocking = true)
inline

Map the tensor data for access.

Must be paired with call to Unmap().

Parameters
blockinghint to block the calling thread until all other accesses are complete. (backend dependent)
Returns
pointer to the first element of the mapped data.

Definition at line 43 of file ITensorHandle.hpp.

References ITensorHandle::Map().

44  {
45  return const_cast<void*>(static_cast<const ITensorHandle*>(this)->Map(blocking));
46  }
virtual const void * Map(bool blocking=true) const =0
Map the tensor data for access.

◆ Unimport()

virtual void Unimport ( )
inlinevirtual

Unimport externally allocated memory.

Definition at line 92 of file ITensorHandle.hpp.

93  {};

◆ Unmap() [1/2]

◆ Unmap() [2/2]

void Unmap ( )
inline

Unmap the tensor data that was previously mapped with call to Map().

Definition at line 49 of file ITensorHandle.hpp.

References ITensorHandle::CopyInFrom(), ITensorHandle::CopyOutTo(), ITensorHandle::GetShape(), ITensorHandle::GetStrides(), and ITensorHandle::Unmap().

50  {
51  return static_cast<const ITensorHandle*>(this)->Unmap();
52  }
virtual void Unmap() const =0
Unmap the tensor data.

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