ArmNN  NotReleased
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
 
virtual void Allocate ()=0
 
virtual ITensorHandleGetParent () const =0
 
virtual const void * Map (bool blocking=true) const =0
 
virtual void Unmap () const =0
 Unmap the tensor data. More...
 
void * Map (bool blocking=true)
 
void Unmap ()
 Unmap the tensor data that was previously mapped with call to Map(). More...
 
virtual TensorShape GetStrides () const =0
 
virtual TensorShape GetShape () const =0
 
virtual void CopyOutTo (void *memory) const =0
 
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)
 

Detailed Description

Definition at line 16 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

◆ GetImportFlags()

virtual unsigned int GetImportFlags ( ) const
inlinevirtual

Get flags describing supported import sources.

Reimplemented in NeonTensorHandle, SampleTensorHandle, and RefTensorHandle.

Definition at line 70 of file ITensorHandle.hpp.

Referenced by LoadedNetwork::EnqueueWorkload().

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

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

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

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

Definition at line 76 of file ITensorHandle.hpp.

Referenced by LoadedNetwork::EnqueueWorkload().

77  {
78  boost::ignore_unused(memory, source);
79  return false;
80  };

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

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 44 of file ITensorHandle.hpp.

References ITensorHandle::Map().

45  {
46  return const_cast<void*>(static_cast<const ITensorHandle*>(this)->Map(blocking));
47  }
virtual const void * Map(bool blocking=true) const =0

◆ Unmap() [1/2]

◆ Unmap() [2/2]

void Unmap ( )
inline

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

Definition at line 50 of file ITensorHandle.hpp.

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

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

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