ArmNN
 24.08
QLstmQueueDescriptor Struct Reference

#include <WorkloadData.hpp>

Inheritance diagram for QLstmQueueDescriptor:
[legend]
Collaboration diagram for QLstmQueueDescriptor:
[legend]

Public Member Functions

 QLstmQueueDescriptor ()
 
void Validate (const WorkloadInfo &workloadInfo) const
 
- Public Member Functions inherited from QueueDescriptorWithParameters< QLstmDescriptor >
virtual ~QueueDescriptorWithParameters ()=default
 
- Public Member Functions inherited from QueueDescriptor
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

const ConstTensorHandlem_InputToInputWeights
 
const ConstTensorHandlem_InputToForgetWeights
 
const ConstTensorHandlem_InputToCellWeights
 
const ConstTensorHandlem_InputToOutputWeights
 
const ConstTensorHandlem_RecurrentToInputWeights
 
const ConstTensorHandlem_RecurrentToForgetWeights
 
const ConstTensorHandlem_RecurrentToCellWeights
 
const ConstTensorHandlem_RecurrentToOutputWeights
 
const ConstTensorHandlem_CellToInputWeights
 
const ConstTensorHandlem_CellToForgetWeights
 
const ConstTensorHandlem_CellToOutputWeights
 
const ConstTensorHandlem_InputGateBias
 
const ConstTensorHandlem_ForgetGateBias
 
const ConstTensorHandlem_CellBias
 
const ConstTensorHandlem_OutputGateBias
 
const ConstTensorHandlem_ProjectionWeights
 
const ConstTensorHandlem_ProjectionBias
 
const ConstTensorHandlem_InputLayerNormWeights
 
const ConstTensorHandlem_ForgetLayerNormWeights
 
const ConstTensorHandlem_CellLayerNormWeights
 
const ConstTensorHandlem_OutputLayerNormWeights
 
- Public Attributes inherited from QueueDescriptorWithParameters< QLstmDescriptor >
QLstmDescriptor m_Parameters
 
- Public Attributes inherited from QueueDescriptor
std::vector< ITensorHandle * > m_Inputs
 
std::vector< ITensorHandle * > m_Outputs
 
void * m_AdditionalInfoObject
 
bool m_AllowExpandedDims = false
 

Additional Inherited Members

- Protected Member Functions inherited from QueueDescriptorWithParameters< QLstmDescriptor >
 QueueDescriptorWithParameters ()=default
 
 QueueDescriptorWithParameters (QueueDescriptorWithParameters const &)=default
 
QueueDescriptorWithParametersoperator= (QueueDescriptorWithParameters const &)=default
 
- Protected Member Functions inherited from QueueDescriptor
 QueueDescriptor ()
 
 QueueDescriptor (QueueDescriptor const &)=default
 
QueueDescriptoroperator= (QueueDescriptor const &)=default
 

Detailed Description

Definition at line 562 of file WorkloadData.hpp.

Constructor & Destructor Documentation

◆ QLstmQueueDescriptor()

Definition at line 564 of file WorkloadData.hpp.

565  : m_InputToInputWeights(nullptr)
566  , m_InputToForgetWeights(nullptr)
567  , m_InputToCellWeights(nullptr)
568  , m_InputToOutputWeights(nullptr)
569  , m_RecurrentToInputWeights(nullptr)
570  , m_RecurrentToForgetWeights(nullptr)
571  , m_RecurrentToCellWeights(nullptr)
572  , m_RecurrentToOutputWeights(nullptr)
573  , m_CellToInputWeights(nullptr)
574  , m_CellToForgetWeights(nullptr)
575  , m_CellToOutputWeights(nullptr)
576  , m_InputGateBias(nullptr)
577  , m_ForgetGateBias(nullptr)
578  , m_CellBias(nullptr)
579  , m_OutputGateBias(nullptr)
580  , m_ProjectionWeights(nullptr)
581  , m_ProjectionBias(nullptr)
582  , m_InputLayerNormWeights(nullptr)
583  , m_ForgetLayerNormWeights(nullptr)
584  , m_CellLayerNormWeights(nullptr)
585  , m_OutputLayerNormWeights(nullptr)
586  {
587  }

Member Function Documentation

◆ Validate()

void Validate ( const WorkloadInfo workloadInfo) const

Definition at line 3150 of file WorkloadData.cpp.

3151 {
3152  const std::string descriptorName{"QLstmQueueDescriptor"};
3153 
3154  // Validate number of inputs/outputs
3155  ValidateNumInputs(workloadInfo, descriptorName, 3);
3156  ValidateNumOutputs(workloadInfo, descriptorName, 3);
3157 
3158  // Input/output tensor info
3159  auto inputInfo = workloadInfo.m_InputTensorInfos[0];
3160  auto outputStateInInfo = workloadInfo.m_InputTensorInfos[1];
3161  auto cellStateInInfo = workloadInfo.m_InputTensorInfos[2];
3162 
3163  auto outputStateOutInfo = workloadInfo.m_OutputTensorInfos[0];
3164  auto cellStateOutInfo = workloadInfo.m_OutputTensorInfos[1];
3165  auto outputInfo = workloadInfo.m_OutputTensorInfos[2];
3166 
3167  // Supported types for various tensors in QLSTM
3168  std::vector<DataType> inputOutputSupportedTypes =
3169  {
3171  };
3172 
3173  std::vector<DataType> cellStateSupportedTypes =
3174  {
3176  };
3177 
3178  std::vector<DataType> weightsSupportedTypes =
3179  {
3181  };
3182 
3183  std::vector<DataType> layerNormPeepholeWeightsSupportedTypes =
3184  {
3186  };
3187 
3188  std::vector<DataType> biasSupportedTypes =
3189  {
3191  };
3192 
3193  // Validate types of input/output tensors
3194  ValidateDataTypes(inputInfo, inputOutputSupportedTypes, descriptorName);
3195  ValidateDataTypes(outputStateInInfo, inputOutputSupportedTypes, descriptorName);
3196  ValidateDataTypes(cellStateInInfo, cellStateSupportedTypes, descriptorName);
3197 
3198  ValidateDataTypes(outputStateOutInfo, inputOutputSupportedTypes, descriptorName);
3199  ValidateDataTypes(cellStateOutInfo, cellStateSupportedTypes, descriptorName);
3200  ValidateDataTypes(outputInfo, inputOutputSupportedTypes, descriptorName);
3201 
3202  // Validate matching types of input/output tensors
3203  ValidateTensorDataTypesMatch(inputInfo, outputStateInInfo, descriptorName, "input", "outputStateIn");
3204  ValidateTensorDataTypesMatch(outputStateInInfo, outputStateOutInfo, descriptorName,
3205  "outputStateIn", "outputStateOut");
3206  ValidateTensorDataTypesMatch(cellStateInInfo, cellStateOutInfo, descriptorName, "cellStateIn", "cellStateOut");
3207 
3208  // Infer number of batches, number of units, input size and output size from tensor dimensions
3209  const uint32_t numBatches = inputInfo.GetShape()[0];
3210  const uint32_t inputSize = inputInfo.GetShape()[1];
3211  const uint32_t outputSize = outputStateInInfo.GetShape()[1];
3212  const uint32_t numUnits = cellStateInInfo.GetShape()[1];
3213 
3214  // Validate number of dimensions and number of elements for input/output tensors
3215  ValidateTensorNumDimNumElem(inputInfo, 2, (numBatches * inputSize), descriptorName + " input");
3216  ValidateTensorNumDimNumElem(outputStateInInfo, 2, (numBatches * outputSize), descriptorName + " outputStateIn");
3217  ValidateTensorNumDimNumElem(cellStateInInfo, 2, (numBatches * numUnits), descriptorName + " cellStateIn");
3218 
3219  ValidateTensorNumDimNumElem(outputStateOutInfo, 2, (numBatches * outputSize), descriptorName + " outputStateOut");
3220  ValidateTensorNumDimNumElem(cellStateOutInfo, 2, (numBatches * numUnits), descriptorName + " cellStateOut");
3221  ValidateTensorNumDimNumElem(outputInfo, 2, (numBatches * outputSize), descriptorName + " output");
3222 
3223  // Validate number of dimensions and number of elements for MANDATORY weight tensors
3224  ValidatePointer(m_InputToForgetWeights, descriptorName, "InputToForgetWeights");
3225  auto inputToForgetWeightsInfo = m_InputToForgetWeights->GetTensorInfo();
3226  ValidateTensorNumDimNumElem(inputToForgetWeightsInfo, 2, (numUnits * inputSize), " InputToForgetWeights");
3227 
3228  ValidatePointer(m_InputToCellWeights, descriptorName, "InputToCellWeights");
3229  auto inputToCellWeightsInfo = m_InputToCellWeights->GetTensorInfo();
3230  ValidateTensorNumDimNumElem(inputToCellWeightsInfo, 2, (numUnits * inputSize), " InputToCellWeights");
3231 
3232  ValidatePointer(m_InputToOutputWeights, descriptorName, "InputToOutputWeights");
3233  auto inputToOutputWeightsInfo = m_InputToOutputWeights->GetTensorInfo();
3234  ValidateTensorNumDimNumElem(inputToOutputWeightsInfo, 2, (numUnits * inputSize), " InputToOutputWeights");
3235 
3236  ValidatePointer(m_RecurrentToForgetWeights, descriptorName, "RecurrentToForgetWeights");
3237  auto recurrentToForgetWeightsInfo = m_RecurrentToForgetWeights->GetTensorInfo();
3238  ValidateTensorNumDimNumElem(recurrentToForgetWeightsInfo, 2, (numUnits * outputSize),
3239  " RecurrentToForgetWeights");
3240 
3241  ValidatePointer(m_RecurrentToCellWeights, descriptorName, "RecurrentToCellWeights");
3242  auto recurrentToCellWeightsInfo = m_RecurrentToCellWeights->GetTensorInfo();
3243  ValidateTensorNumDimNumElem(recurrentToCellWeightsInfo, 2, (numUnits * outputSize), " RecurrentToCellWeights");
3244 
3245  ValidatePointer(m_RecurrentToOutputWeights, descriptorName, "RecurrentToOutputWeights");
3246  auto recurrentToOutputWeightsInfo = m_RecurrentToOutputWeights->GetTensorInfo();
3247  ValidateTensorNumDimNumElem(recurrentToOutputWeightsInfo, 2, (numUnits * outputSize), " RecurrentToCellWeights");
3248 
3249  // Validate data types for MANDATORY weights tensors (all should match each other)
3250  ValidateDataTypes(inputToForgetWeightsInfo, weightsSupportedTypes, descriptorName);
3251 
3252  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToCellWeightsInfo, descriptorName,
3253  "inputToForgetWeights", "inputToCellWeights");
3254  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToOutputWeightsInfo, descriptorName,
3255  "inputToForgetWeights", "inputToOutputWeights");
3256 
3257  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToForgetWeightsInfo, descriptorName,
3258  "inputToForgetWeights", "recurrentToForgeteights");
3259  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToCellWeightsInfo, descriptorName,
3260  "inputToForgetWeights", "recurrentToCellWeights");
3261  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToOutputWeightsInfo, descriptorName,
3262  "inputToForgetWeights", "recurrentToOutputWeights");
3263 
3264  // Validate number of dimensions and number of elements for MANDATORY bias tensors
3265  ValidatePointer(m_ForgetGateBias, descriptorName, "ForgetGateBias");
3266  auto forgetGateBiasInfo = m_ForgetGateBias->GetTensorInfo();
3267  ValidateTensorNumDimNumElem(forgetGateBiasInfo, 1, numUnits, " ForgetGateBias");
3268 
3269  ValidatePointer(m_CellBias, descriptorName, "CellBias");
3270  auto cellBiasInfo = m_CellBias->GetTensorInfo();
3271  ValidateTensorNumDimNumElem(cellBiasInfo, 1, numUnits, " CellBias");
3272 
3273  ValidatePointer(m_OutputGateBias, descriptorName, "OutputGateBias");
3274  auto outputGateBiasInfo = m_OutputGateBias->GetTensorInfo();
3275  ValidateTensorNumDimNumElem(outputGateBiasInfo, 1, numUnits, " OutputGateBias");
3276 
3277  // Validate data types for MANDATORY bias tensors
3278  ValidateDataTypes(forgetGateBiasInfo, biasSupportedTypes, descriptorName);
3279 
3280  ValidateTensorDataTypesMatch(forgetGateBiasInfo, cellBiasInfo, descriptorName,
3281  "forgetGateBias", "cellBias");
3282  ValidateTensorDataTypesMatch(forgetGateBiasInfo, outputGateBiasInfo, descriptorName,
3283  "forgetGateBias", "outputGateBias");
3284 
3285  // Validate OPTIONAL params: CIFG (inputToInputWeights, recurrentToInputWeights, inputGateBias)
3286  const bool allCifgParamsPresentOrNot = ((m_InputToInputWeights && m_RecurrentToInputWeights && m_InputGateBias &&
3290 
3291  if (!allCifgParamsPresentOrNot)
3292  {
3293  throw InvalidArgumentException(descriptorName +
3294  ": InputToInputWeights, RecurrentToInputWeights and InputGateBias must either all be present "
3295  "(CIFG disabled) or not be present at all (CIFG enabled). m_Parameters.m_CifgEnabled should be "
3296  "set appropriately.");
3297  }
3298 
3300  {
3301  // Validate number of dimensions and number of elements
3302  auto inputToInputWeightsInfo = m_InputToInputWeights->GetTensorInfo();
3303  ValidateTensorNumDimNumElem(inputToInputWeightsInfo, 2, (numUnits * inputSize), " InputToInputWeights");
3304 
3305  auto recurrentToInputWeightsInfo = m_RecurrentToInputWeights->GetTensorInfo();
3306  ValidateTensorNumDimNumElem(recurrentToInputWeightsInfo, 2, (numUnits * outputSize),
3307  " RecurrentToInputWeights");
3308 
3309  auto inputGateBiasInfo = m_InputGateBias->GetTensorInfo();
3310  ValidateTensorNumDimNumElem(inputGateBiasInfo, 1, numUnits, " InputGateBias");
3311 
3312  // Validate data types
3313  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToInputWeightsInfo, descriptorName,
3314  "inputToForgetWeights", "inputToInputWeights");
3315  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToInputWeightsInfo, descriptorName,
3316  "inputToForgetWeights", "recurrentToInputWeights");
3317  ValidateTensorDataTypesMatch(forgetGateBiasInfo, inputGateBiasInfo, descriptorName,
3318  "forgetGateBias", "inputGateBias");
3319  }
3320 
3321  // Validate OPTIONAL params: Peephole (cellToInputWeights, cellToForgetWeights, cellToOutputWeights)
3322  bool allPeepholeWeightsPresentOrNot =
3327 
3328  if (!allPeepholeWeightsPresentOrNot)
3329  {
3330  throw InvalidArgumentException(descriptorName +
3331  ": CellToInputWeights, CellToForgetWeights and CellToOutputWeights should all be present (Peephole "
3332  "enabled) or not be present at all (Peephole disabled). CellToInputWeights should only be present "
3333  "when Peephole is enabled and CIFG is disabled. m_Parameters.m_PeepholeEnabled should be set "
3334  "appropriately.");
3335  }
3336 
3338  {
3339  auto cellToForgetWeightsInfo = m_CellToForgetWeights->GetTensorInfo();
3340  ValidateTensorNumDimNumElem(cellToForgetWeightsInfo, 1, numUnits, " cellToForgetWeights");
3341  ValidateDataTypes(cellToForgetWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);
3342 
3343  auto cellToOutputWeightsInfo = m_CellToOutputWeights->GetTensorInfo();
3344  ValidateTensorNumDimNumElem(cellToOutputWeightsInfo, 1, numUnits, " cellToOutputWeights");
3345  ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToOutputWeightsInfo, descriptorName,
3346  "cellToForgetWeight", "cellToOutputWeights");
3347 
3349  {
3350  auto cellToInputWeightsInfo = m_CellToInputWeights->GetTensorInfo();
3351  ValidateTensorNumDimNumElem(cellToInputWeightsInfo, 1, numUnits, " cellToInputWeights");
3352  ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToInputWeightsInfo, descriptorName,
3353  "cellToForgetWeights", "cellToInputWeights");
3354  }
3355  }
3356 
3357  // Validate OPTIONAL params: Layer Norm Weights
3358  bool allLayerNormWeightsPresentOrNot =
3363 
3364  if (!allLayerNormWeightsPresentOrNot)
3365  {
3366  throw InvalidArgumentException(descriptorName +
3367  ": InputLayerNormWeights, ForgetLayerNormWeights, m_OutputLayerNormWeights "
3368  "and CellLayerNormWeights should all be present (Layer Norm enabled) or not "
3369  "be present at all (Layer Norm disabled). InputLayerNormWeights should "
3370  "only be present when Layer Norm is enabled and CIFG is disabled. "
3371  "m_Parameters.m_LayerNormEnabled should be set appropriately.");
3372  }
3373 
3375  {
3376  auto forgetLayerNormWeightsInfo = m_ForgetLayerNormWeights->GetTensorInfo();
3377  ValidateTensorNumDimNumElem(forgetLayerNormWeightsInfo, 1, numUnits, " forgetLayerNormWeights");
3378  ValidateDataTypes(forgetLayerNormWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);
3379 
3380  auto cellLayerNormWeightsInfo = m_CellLayerNormWeights->GetTensorInfo();
3381  ValidateTensorNumDimNumElem(cellLayerNormWeightsInfo, 1, numUnits, " cellLayerNormWeights");
3382  ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, cellLayerNormWeightsInfo, descriptorName,
3383  "forgetLayerNormWeights", "cellLayerNormWeights");
3384 
3385  auto outputLayerNormWeightsInfo = m_OutputLayerNormWeights->GetTensorInfo();
3386  ValidateTensorNumDimNumElem(outputLayerNormWeightsInfo, 1, numUnits, " outputLayerNormWeights");
3387  ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, outputLayerNormWeightsInfo, descriptorName,
3388  "forgetLayerNormWeights", "outputLayerNormWeights");
3389 
3391  {
3392  auto inputLayerNormWeightsInfo = m_InputLayerNormWeights->GetTensorInfo();
3393  ValidateTensorNumDimNumElem(inputLayerNormWeightsInfo, 1, numUnits, " inputLayerNormWeights");
3394  ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, inputLayerNormWeightsInfo, descriptorName,
3395  "forgetLayerNormWeights", "inputLayerNormWeights");
3396  }
3397  }
3398 
3399  // Validate OPTIONAL params: Projection (projectionWeights, projectionBias)
3400  bool correctProjectionTensorsPresent =
3404 
3405  if (!correctProjectionTensorsPresent)
3406  {
3407  throw InvalidArgumentException(descriptorName +
3408  ": If projection is enabled, ProjectionWeights should be present and "
3409  "ProjectionBias is optional. If projection is disabled, neither "
3410  "ProjectionWeights nor ProjectionBias should be present.");
3411  }
3412 
3414  {
3415  auto projectionWeightsInfo = m_ProjectionWeights->GetTensorInfo();
3416  ValidateTensorNumDimNumElem(projectionWeightsInfo, 2, (numUnits * outputSize), "ProjectionWeights");
3417  ValidateDataTypes(projectionWeightsInfo, weightsSupportedTypes, descriptorName);
3418 
3419  if (m_ProjectionBias)
3420  {
3421  auto projectionBiasInfo = m_ProjectionBias->GetTensorInfo();
3422  ValidateTensorNumDimNumElem(projectionBiasInfo, 1, outputSize, "ProjectionBias");
3423  ValidateDataTypes(projectionBiasInfo, biasSupportedTypes, descriptorName);
3424  }
3425 
3426  }
3427  else if ((outputInfo.GetQuantizationScale() != m_Parameters.m_HiddenStateScale) &&
3428  outputInfo.GetQuantizationOffset() != m_Parameters.m_HiddenStateZeroPoint) {
3429  throw InvalidArgumentException(descriptorName +
3430  ": If projection is disabled, output quantization info (scale, offset) "
3431  "should match HiddenStateScale and HiddenStateZeroPoint.");
3432  }
3433 
3434 }

References TensorInfo::GetQuantizationOffset(), TensorInfo::GetQuantizationScale(), TensorInfo::GetShape(), ConstTensorHandle::GetTensorInfo(), QLstmQueueDescriptor::m_CellBias, QLstmQueueDescriptor::m_CellLayerNormWeights, QLstmQueueDescriptor::m_CellToForgetWeights, QLstmQueueDescriptor::m_CellToInputWeights, QLstmQueueDescriptor::m_CellToOutputWeights, QLstmDescriptor::m_CifgEnabled, QLstmQueueDescriptor::m_ForgetGateBias, QLstmQueueDescriptor::m_ForgetLayerNormWeights, QLstmDescriptor::m_HiddenStateScale, QLstmDescriptor::m_HiddenStateZeroPoint, QLstmQueueDescriptor::m_InputGateBias, QLstmQueueDescriptor::m_InputLayerNormWeights, WorkloadInfo::m_InputTensorInfos, QLstmQueueDescriptor::m_InputToCellWeights, QLstmQueueDescriptor::m_InputToForgetWeights, QLstmQueueDescriptor::m_InputToInputWeights, QLstmQueueDescriptor::m_InputToOutputWeights, QLstmDescriptor::m_LayerNormEnabled, QLstmQueueDescriptor::m_OutputGateBias, QLstmQueueDescriptor::m_OutputLayerNormWeights, WorkloadInfo::m_OutputTensorInfos, QueueDescriptorWithParameters< QLstmDescriptor >::m_Parameters, QLstmDescriptor::m_PeepholeEnabled, QLstmQueueDescriptor::m_ProjectionBias, QLstmDescriptor::m_ProjectionEnabled, QLstmQueueDescriptor::m_ProjectionWeights, QLstmQueueDescriptor::m_RecurrentToCellWeights, QLstmQueueDescriptor::m_RecurrentToForgetWeights, QLstmQueueDescriptor::m_RecurrentToInputWeights, QLstmQueueDescriptor::m_RecurrentToOutputWeights, armnn::QAsymmS8, armnn::QSymmS16, armnn::QSymmS8, armnn::Signed32, and QueueDescriptor::ValidateTensorNumDimNumElem().

Member Data Documentation

◆ m_CellBias

const ConstTensorHandle* m_CellBias

Definition at line 602 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_CellLayerNormWeights

const ConstTensorHandle* m_CellLayerNormWeights

Definition at line 608 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_CellToForgetWeights

const ConstTensorHandle* m_CellToForgetWeights

Definition at line 598 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_CellToInputWeights

const ConstTensorHandle* m_CellToInputWeights

Definition at line 597 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_CellToOutputWeights

const ConstTensorHandle* m_CellToOutputWeights

Definition at line 599 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_ForgetGateBias

const ConstTensorHandle* m_ForgetGateBias

Definition at line 601 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_ForgetLayerNormWeights

const ConstTensorHandle* m_ForgetLayerNormWeights

Definition at line 607 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_InputGateBias

const ConstTensorHandle* m_InputGateBias

Definition at line 600 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_InputLayerNormWeights

const ConstTensorHandle* m_InputLayerNormWeights

Definition at line 606 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_InputToCellWeights

const ConstTensorHandle* m_InputToCellWeights

Definition at line 591 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_InputToForgetWeights

const ConstTensorHandle* m_InputToForgetWeights

Definition at line 590 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_InputToInputWeights

const ConstTensorHandle* m_InputToInputWeights

Definition at line 589 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_InputToOutputWeights

const ConstTensorHandle* m_InputToOutputWeights

Definition at line 592 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_OutputGateBias

const ConstTensorHandle* m_OutputGateBias

Definition at line 603 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_OutputLayerNormWeights

const ConstTensorHandle* m_OutputLayerNormWeights

Definition at line 609 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_ProjectionBias

const ConstTensorHandle* m_ProjectionBias

Definition at line 605 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_ProjectionWeights

const ConstTensorHandle* m_ProjectionWeights

Definition at line 604 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_RecurrentToCellWeights

const ConstTensorHandle* m_RecurrentToCellWeights

Definition at line 595 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_RecurrentToForgetWeights

const ConstTensorHandle* m_RecurrentToForgetWeights

Definition at line 594 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_RecurrentToInputWeights

const ConstTensorHandle* m_RecurrentToInputWeights

Definition at line 593 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().

◆ m_RecurrentToOutputWeights

const ConstTensorHandle* m_RecurrentToOutputWeights

Definition at line 596 of file WorkloadData.hpp.

Referenced by QLstmLayer::CreateWorkload(), and QLstmQueueDescriptor::Validate().


The documentation for this struct was generated from the following files:
armnn::QLstmDescriptor::m_ProjectionEnabled
bool m_ProjectionEnabled
Enable/disable the projection layer.
Definition: Descriptors.hpp:1422
armnn::QLstmQueueDescriptor::m_InputToForgetWeights
const ConstTensorHandle * m_InputToForgetWeights
Definition: WorkloadData.hpp:590
armnn::QLstmQueueDescriptor::m_InputLayerNormWeights
const ConstTensorHandle * m_InputLayerNormWeights
Definition: WorkloadData.hpp:606
armnn::ConstTensorHandle::GetTensorInfo
const TensorInfo & GetTensorInfo() const
Definition: TensorHandle.hpp:40
armnn::DataType::QSymmS8
@ QSymmS8
armnn::QLstmQueueDescriptor::m_InputToInputWeights
const ConstTensorHandle * m_InputToInputWeights
Definition: WorkloadData.hpp:589
armnn::DataType::QSymmS16
@ QSymmS16
armnn::QLstmQueueDescriptor::m_ProjectionWeights
const ConstTensorHandle * m_ProjectionWeights
Definition: WorkloadData.hpp:604
armnn::QLstmQueueDescriptor::m_ForgetLayerNormWeights
const ConstTensorHandle * m_ForgetLayerNormWeights
Definition: WorkloadData.hpp:607
armnn::QLstmQueueDescriptor::m_RecurrentToOutputWeights
const ConstTensorHandle * m_RecurrentToOutputWeights
Definition: WorkloadData.hpp:596
armnn::WorkloadInfo::m_OutputTensorInfos
std::vector< TensorInfo > m_OutputTensorInfos
Definition: WorkloadInfo.hpp:19
armnn::QLstmQueueDescriptor::m_CellToOutputWeights
const ConstTensorHandle * m_CellToOutputWeights
Definition: WorkloadData.hpp:599
armnn::QueueDescriptorWithParameters< QLstmDescriptor >::m_Parameters
QLstmDescriptor m_Parameters
Definition: WorkloadData.hpp:66
armnn::QLstmQueueDescriptor::m_CellToForgetWeights
const ConstTensorHandle * m_CellToForgetWeights
Definition: WorkloadData.hpp:598
armnn::QLstmQueueDescriptor::m_OutputLayerNormWeights
const ConstTensorHandle * m_OutputLayerNormWeights
Definition: WorkloadData.hpp:609
armnn::InvalidArgumentException
Definition: Exceptions.hpp:80
armnn::QLstmQueueDescriptor::m_InputGateBias
const ConstTensorHandle * m_InputGateBias
Definition: WorkloadData.hpp:600
armnn::QLstmQueueDescriptor::m_OutputGateBias
const ConstTensorHandle * m_OutputGateBias
Definition: WorkloadData.hpp:603
armnn::QLstmQueueDescriptor::m_ForgetGateBias
const ConstTensorHandle * m_ForgetGateBias
Definition: WorkloadData.hpp:601
armnn::QLstmQueueDescriptor::m_RecurrentToInputWeights
const ConstTensorHandle * m_RecurrentToInputWeights
Definition: WorkloadData.hpp:593
armnn::DataType::Signed32
@ Signed32
armnn::QLstmQueueDescriptor::m_RecurrentToForgetWeights
const ConstTensorHandle * m_RecurrentToForgetWeights
Definition: WorkloadData.hpp:594
armnn::DataType::QAsymmS8
@ QAsymmS8
armnn::QLstmQueueDescriptor::m_InputToOutputWeights
const ConstTensorHandle * m_InputToOutputWeights
Definition: WorkloadData.hpp:592
armnn::QLstmDescriptor::m_HiddenStateZeroPoint
int32_t m_HiddenStateZeroPoint
Hidden State zero point.
Definition: Descriptors.hpp:1434
armnn::WorkloadInfo::m_InputTensorInfos
std::vector< TensorInfo > m_InputTensorInfos
Definition: WorkloadInfo.hpp:18
armnn::QLstmDescriptor::m_CifgEnabled
bool m_CifgEnabled
Enable/disable CIFG (coupled input & forget gate).
Definition: Descriptors.hpp:1418
armnn::QLstmDescriptor::m_HiddenStateScale
float m_HiddenStateScale
Hidden State quantization scale.
Definition: Descriptors.hpp:1436
armnn::QLstmQueueDescriptor::m_ProjectionBias
const ConstTensorHandle * m_ProjectionBias
Definition: WorkloadData.hpp:605
armnn::QLstmQueueDescriptor::m_CellToInputWeights
const ConstTensorHandle * m_CellToInputWeights
Definition: WorkloadData.hpp:597
armnn::QLstmDescriptor::m_LayerNormEnabled
bool m_LayerNormEnabled
Enable/disable layer normalization.
Definition: Descriptors.hpp:1424
armnn::QLstmQueueDescriptor::m_CellBias
const ConstTensorHandle * m_CellBias
Definition: WorkloadData.hpp:602
armnn::QueueDescriptor::ValidateTensorNumDimNumElem
void ValidateTensorNumDimNumElem(const TensorInfo &tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &tensorName) const
Definition: WorkloadData.cpp:436
armnn::QLstmQueueDescriptor::m_InputToCellWeights
const ConstTensorHandle * m_InputToCellWeights
Definition: WorkloadData.hpp:591
armnn::QLstmDescriptor::m_PeepholeEnabled
bool m_PeepholeEnabled
Enable/disable peephole.
Definition: Descriptors.hpp:1420
armnn::QLstmQueueDescriptor::m_CellLayerNormWeights
const ConstTensorHandle * m_CellLayerNormWeights
Definition: WorkloadData.hpp:608
armnn::QLstmQueueDescriptor::m_RecurrentToCellWeights
const ConstTensorHandle * m_RecurrentToCellWeights
Definition: WorkloadData.hpp:595