ArmNN
 21.02
ITensorHandle Class Referenceabstract

#include <ITensorHandle.hpp>

Inheritance diagram for ITensorHandle:
ConstCpuTensorHandle IAclTensorHandle RefTensorHandle SampleTensorHandle ConstPassthroughCpuTensorHandle CpuTensorHandle IClTensorHandle NeonSubTensorHandle NeonTensorHandle PassthroughCpuTensorHandle ScopedCpuTensorHandle 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...
 

Detailed Description

Definition at line 15 of file ITensorHandle.hpp.

Constructor & Destructor Documentation

◆ ~ITensorHandle()

Member Function Documentation

◆ Allocate()

◆ 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 NeonTensorHandle, RefTensorHandle, and SampleTensorHandle.

Definition at line 69 of file ITensorHandle.hpp.

Referenced by LoadedNetwork::EnqueueWorkload().

69 { return 0; }

◆ GetParent()

virtual ITensorHandle* GetParent ( ) const
pure virtual

Get the parent tensor if this is a subtensor.

Returns
a pointer to the parent tensor. Otherwise nullptr if not a subtensor.

Implemented in NeonSubTensorHandle, ClSubTensorHandle, NeonTensorHandle, ClTensorHandle, ConstCpuTensorHandle, RefTensorHandle, and SampleTensorHandle.

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

◆ 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 NeonSubTensorHandle, ClSubTensorHandle, NeonTensorHandle, ClTensorHandle, ConstCpuTensorHandle, RefTensorHandle, and SampleTensorHandle.

Referenced by armnn::CopyTensorContentsGeneric(), armnnUtils::FindMinMax(), 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 NeonSubTensorHandle, ClSubTensorHandle, NeonTensorHandle, ClTensorHandle, ConstCpuTensorHandle, RefTensorHandle, and SampleTensorHandle.

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, RefTensorHandle, and SampleTensorHandle.

Definition at line 75 of file ITensorHandle.hpp.

References armnn::IgnoreUnused().

Referenced by LoadedNetwork::EnqueueWorkload().

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 NeonSubTensorHandle, ClSubTensorHandle, NeonTensorHandle, ClTensorHandle, ConstCpuTensorHandle, RefTensorHandle, and SampleTensorHandle.

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

◆ Map() [1/2]

virtual const void* Map ( bool  blocking = true) const
pure virtual

◆ 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.

◆ 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: