ArmNN
 25.11
Loading...
Searching...
No Matches
QueueDescriptor Struct Reference

#include <WorkloadData.hpp>

Inheritance diagram for QueueDescriptor:
[legend]

Public Member Functions

virtual ~QueueDescriptor ()=default
void ValidateTensorNumDimensions (const TensorInfo &tensor, std::string const &descName, unsigned int numDimensions, std::string const &tensorName) const
void ValidateTensorNumDimNumElem (const TensorInfo &tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &tensorName) const
void ValidateInputsOutputs (const std::string &descName, unsigned int numExpectedIn, unsigned int numExpectedOut) const
template<typename T>
const T * GetAdditionalInformation () const

Public Attributes

std::vector< ITensorHandle * > m_Inputs
std::vector< ITensorHandle * > m_Outputs
void * m_AdditionalInfoObject
bool m_AllowExpandedDims = false

Protected Member Functions

 QueueDescriptor ()
 QueueDescriptor (QueueDescriptor const &)=default
QueueDescriptoroperator= (QueueDescriptor const &)=default

Detailed Description

Definition at line 24 of file WorkloadData.hpp.

Constructor & Destructor Documentation

◆ ~QueueDescriptor()

virtual ~QueueDescriptor ( )
virtualdefault

◆ QueueDescriptor() [1/2]

QueueDescriptor ( )
inlineprotected

Definition at line 55 of file WorkloadData.hpp.

56 : m_AdditionalInfoObject(nullptr)
57 {}

References m_AdditionalInfoObject.

Referenced by operator=(), and QueueDescriptor().

◆ QueueDescriptor() [2/2]

QueueDescriptor ( QueueDescriptor const & )
protecteddefault

References QueueDescriptor().

Member Function Documentation

◆ GetAdditionalInformation()

template<typename T>
const T * GetAdditionalInformation ( ) const
inline

Definition at line 47 of file WorkloadData.hpp.

48 {
49 return static_cast<T*>(m_AdditionalInfoObject);
50 }

References m_AdditionalInfoObject.

Referenced by armnn::ConvertAdditionalInfoToAclActivationLayerInfo().

◆ operator=()

QueueDescriptor & operator= ( QueueDescriptor const & )
protecteddefault

References QueueDescriptor().

◆ ValidateInputsOutputs()

void ValidateInputsOutputs ( const std::string & descName,
unsigned int numExpectedIn,
unsigned int numExpectedOut ) const

Definition at line 447 of file WorkloadData.cpp.

449{
450 ValidateTensors(m_Inputs, numExpectedIn, descName, "input");
451 ValidateTensors(m_Outputs, numExpectedOut, descName, "output");
452}
std::vector< ITensorHandle * > m_Inputs
std::vector< ITensorHandle * > m_Outputs

References m_Inputs, and m_Outputs.

◆ ValidateTensorNumDimensions()

void ValidateTensorNumDimensions ( const TensorInfo & tensor,
std::string const & descName,
unsigned int numDimensions,
std::string const & tensorName ) const

Definition at line 398 of file WorkloadData.cpp.

402{
403 // If we're allowing expanded dimensions then numDimensions becomes the minimum number of Dimensions we can allow.
404 // Throw an Exception if the tensors has fewer than numDimensions or if the squeezed dimensions are greater than
405 // numDimensions.
407 {
408 unsigned int squeezedDims = 0;
409
410 for (unsigned int i = 0; i < tensor.GetNumDimensions(); ++i)
411 {
412 if (tensor.GetShape()[i] != 1)
413 {
414 ++squeezedDims;
415 }
416 }
417 if (tensor.GetNumDimensions() < numDimensions || squeezedDims > numDimensions)
418 {
419 throw InvalidArgumentException(descName + ": Expected " + to_string(numDimensions) + " or less but got " +
420 to_string(tensor.GetNumDimensions()) + " dimensions for " +
421 tensorName + " tensor.");
422 }
423 }
424 else
425 {
426 if (tensor.GetNumDimensions() != numDimensions)
427 {
428 throw InvalidArgumentException(descName + ": Expected " + to_string(numDimensions) + " but got " +
429 to_string(tensor.GetNumDimensions()) + " dimensions for " +
430 tensorName + " tensor.");
431 }
432 }
433}
const TensorShape & GetShape() const
Definition Tensor.hpp:193
unsigned int GetNumDimensions() const
Definition Tensor.hpp:197

References TensorInfo::GetNumDimensions(), TensorInfo::GetShape(), and m_AllowExpandedDims.

Referenced by BatchNormalizationQueueDescriptor::Validate(), BatchToSpaceNdQueueDescriptor::Validate(), Convolution2dQueueDescriptor::Validate(), Convolution3dQueueDescriptor::Validate(), DepthToSpaceQueueDescriptor::Validate(), DepthwiseConvolution2dQueueDescriptor::Validate(), DetectionPostProcessQueueDescriptor::Validate(), FakeQuantizationQueueDescriptor::Validate(), FillQueueDescriptor::Validate(), FullyConnectedQueueDescriptor::Validate(), GatherNdQueueDescriptor::Validate(), GatherQueueDescriptor::Validate(), MeanQueueDescriptor::Validate(), PadQueueDescriptor::Validate(), PermuteQueueDescriptor::Validate(), Pooling2dQueueDescriptor::Validate(), Pooling3dQueueDescriptor::Validate(), RankQueueDescriptor::Validate(), ResizeQueueDescriptor::Validate(), SliceQueueDescriptor::Validate(), SpaceToBatchNdQueueDescriptor::Validate(), SpaceToDepthQueueDescriptor::Validate(), TransposeConvolution2dQueueDescriptor::Validate(), TransposeQueueDescriptor::Validate(), and ValidateTensorNumDimNumElem().

◆ ValidateTensorNumDimNumElem()

void ValidateTensorNumDimNumElem ( const TensorInfo & tensorInfo,
unsigned int numDimension,
unsigned int numElements,
std::string const & tensorName ) const

Definition at line 436 of file WorkloadData.cpp.

440{
441 const std::string functionName{"ValidateTensorNumDimNumElem"};
442 ValidateTensorNumDimensions(tensorInfo, functionName, numDimension, tensorName);
443 ValidateTensorNumElements(tensorInfo, functionName, numElements, tensorName);
444}
void ValidateTensorNumDimensions(const TensorInfo &tensor, std::string const &descName, unsigned int numDimensions, std::string const &tensorName) const

References ValidateTensorNumDimensions().

Referenced by LstmQueueDescriptor::Validate(), QLstmQueueDescriptor::Validate(), QuantizedLstmQueueDescriptor::Validate(), and UnidirectionalSequenceLstmQueueDescriptor::Validate().

Member Data Documentation

◆ m_AdditionalInfoObject

void* m_AdditionalInfoObject

◆ m_AllowExpandedDims

bool m_AllowExpandedDims = false

◆ m_Inputs

◆ m_Outputs


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