ArmNN
 25.02
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
WorkloadData.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2021-2024 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 #include "TensorHandle.hpp"
8 
9 #include <armnn/Deprecated.hpp>
10 #include <armnn/Descriptors.hpp>
11 #include <armnn/Exceptions.hpp>
12 #include <armnn/Types.hpp>
13 #include <armnn/Tensor.hpp>
14 #include <common/include/ProfilingGuid.hpp>
15 
16 namespace armnn
17 {
18 
19 //A helper function that returns the bias data type required for given input data type.
20 DataType GetBiasDataType(DataType inputDataType);
21 
22 struct WorkloadInfo;
23 
25 {
26  std::vector<ITensorHandle*> m_Inputs;
27  std::vector<ITensorHandle*> m_Outputs;
29 
30  virtual ~QueueDescriptor() = default;
31 
32  void ValidateTensorNumDimensions(const TensorInfo& tensor,
33  std::string const& descName,
34  unsigned int numDimensions,
35  std::string const& tensorName) const;
36 
37  void ValidateTensorNumDimNumElem(const TensorInfo& tensorInfo,
38  unsigned int numDimension,
39  unsigned int numElements,
40  std::string const& tensorName) const;
41 
42  void ValidateInputsOutputs(const std::string& descName,
43  unsigned int numExpectedIn,
44  unsigned int numExpectedOut) const;
45 
46  template<typename T>
47  const T* GetAdditionalInformation() const
48  {
49  return static_cast<T*>(m_AdditionalInfoObject);
50  }
51 
52  bool m_AllowExpandedDims = false;
53 
54 protected:
56  : m_AdditionalInfoObject(nullptr)
57  {}
58  QueueDescriptor(QueueDescriptor const&) = default;
60 };
61 
62 // Base class for queue descriptors which contain parameters.
63 template <typename LayerDescriptor>
65 {
66  LayerDescriptor m_Parameters;
67 
68  virtual ~QueueDescriptorWithParameters() = default;
69 
70 protected:
74 };
75 
77 {
78  void Validate(const WorkloadInfo& workloadInfo) const;
79 };
80 
82 {
83  void Validate(const WorkloadInfo& workloadInfo) const;
84 };
85 
87 {
88  void Validate(const WorkloadInfo& workloadInfo) const;
89 };
90 
93 
95 {
96  void Validate(const WorkloadInfo& workloadInfo) const;
97 };
98 
100 {
101  void Validate(const WorkloadInfo& workloadInfo) const;
102 };
103 
104 // Softmax layer workload data.
106 {
107  void Validate(const WorkloadInfo& workloadInfo) const;
108 };
109 
110 // Splitter layer workload data.
112 {
113  struct ViewOrigin
114  {
116  ViewOrigin(std::vector<unsigned int> const& origin) : m_Origin(origin) {}
117 
118  //View origin (size of the vector is the same as number of dimensions of the view).
119  std::vector<unsigned int> m_Origin;
120  };
121 
122  //View defines a tensor that will be carved from the input tensor.
123  //View origins are stored here, the extents are defined by sizes of the output tensors.
124  std::vector<ViewOrigin> m_ViewOrigins;
125 
126  void Validate(const WorkloadInfo& workloadInfo) const;
127 };
128 
129 // Concat layer workload data.
131 {
132  struct ViewOrigin
133  {
135  ViewOrigin(const std::vector<unsigned int>& origin) : m_Origin(origin) {}
136 
137  //View origin (size of the vector is the same as number of dimensions of the view).
138  std::vector<unsigned int> m_Origin;
139  };
140 
141  //View defines a sub-area of the output tensor that will be filled with the corresponding input tensor.
142  //View origins are stored here, the extents are defined by sizes of the input tensors.
143  std::vector<ViewOrigin> m_ViewOrigins;
144 
145  void Validate(const WorkloadInfo& workloadInfo) const;
146 };
147 
148 // Deprecated. Use ConcatQueueDescriptor instead
150 
151 // Stack layer workload data.
153 {
154  void Validate(const WorkloadInfo& workloadInfo) const;
155 };
156 
157 // Activation layer workload data.
159 {
160  void Validate(const WorkloadInfo& workloadInfo) const;
161 };
162 
164 {
165  void Validate(const WorkloadInfo& workloadInfo) const;
166 };
167 
169 {
170  void Validate(const WorkloadInfo& workloadInfo) const;
171 };
172 
173 // Fill layer workload data.
175 {
176  void Validate(const WorkloadInfo& workloadInfo) const;
177 };
178 
179 // Fully connected layer workload data.
181 {
182  void Validate(const WorkloadInfo& workloadInfo) const;
183 };
184 
186 {
187  void Validate(const WorkloadInfo& workloadInfo) const;
188 };
189 
190 // Permute layer workload data.
192 {
193  void Validate(const WorkloadInfo& workloadInfo) const;
194 };
195 
196 // Pooling 2D layer workload data.
198 {
199  void Validate(const WorkloadInfo& workloadInfo) const;
200 };
201 
202 // Pooling 3D layer workload data.
204 {
205  void Validate(const WorkloadInfo& workloadInfo) const;
206 };
207 
208 
209 // Convolution 2D layer workload data.
211 {
212  void Validate(const WorkloadInfo& workloadInfo) const;
213 };
214 
215 // Convolution 3D layer workload data.
217 {
218  void Validate(const WorkloadInfo& workloadInfo) const;
219 };
220 
221 /// Depthwise Convolution 2D layer workload data.
222 ///
223 /// @note
224 /// The weights are in the format [1, H, W, I*M]. Where I is the input channel size, M the depthwise mutliplier and
225 /// H, W is the height and width of the filter kernel. If per channel quantization is applied
226 /// the weights will be quantized along the last dimension/axis (I*M) which corresponds to the output channel size.
227 /// If per channel quantization is applied the weights tensor will have I*M scales, one for each dimension
228 /// of the quantization axis. You have to be aware of this when reshaping the weights tensor.
229 /// Splitting the I*M axis, e.g. [1, H, W, I*M] --> [H, W, I, M], won't work without taking care of the
230 /// corresponding quantization scales.
231 /// If there is no per channel quantization applied reshaping the weights tensor won't cause any issues. There are
232 /// preconfigured permutation functions available @link WorkloadUtils.hpp here.
233 ///
235 {
236  void Validate(const WorkloadInfo& workloadInfo) const;
237 };
238 
240 {
242  : m_Anchors(nullptr)
243  {
244  }
245 
247 
248  void Validate(const WorkloadInfo& workloadInfo) const;
249 };
250 
251 // Normalization layer workload data.
253 {
254  void Validate(const WorkloadInfo& workloadInfo) const;
255 };
256 
257 // Add layer workload data.
259 {
260  void Validate(const WorkloadInfo& workloadInfo) const;
261 };
262 
263 // Multiplication layer workload data.
265 {
266  void Validate(const WorkloadInfo& workloadInfo) const;
267 };
268 
269 // Division layer workload data.
271 {
272  void Validate(const WorkloadInfo& workloadInfo) const;
273 };
274 
275 // Subtraction layer workload data.
277 {
278  void Validate(const WorkloadInfo& workloadInfo) const;
279 };
280 
281 // Maximum layer workload data.
283 {
284  void Validate(const WorkloadInfo& workloadInfo) const;
285 };
286 
287 // Mean layer workload data.
289 {
290  void Validate(const WorkloadInfo& workloadInfo) const;
291 };
292 
293 // Pad layer workload data
295 {
296  void Validate(const WorkloadInfo& workloadInfo) const;
297 };
298 
300 {
301  void Validate(const WorkloadInfo& workloadInfo) const;
302 };
303 
304 // Deprecated use ComparisonQueueDescriptor instead
306 {
307  void Validate(const WorkloadInfo& workloadInfo) const;
308 };
309 
310 // Batch norm layer workload data.
312 {
314  : m_Mean(nullptr)
315  , m_Variance(nullptr)
316  , m_Beta(nullptr)
317  , m_Gamma(nullptr)
318  {
319  }
320 
325 
326  void Validate(const WorkloadInfo& workloadInfo) const;
327 };
328 
330 {
331  void Validate(const WorkloadInfo& workloadInfo) const;
332 };
333 
335 {
336  void Validate(const WorkloadInfo& workloadInfo) const;
337 };
338 
340 {
342  : m_Min(nullptr)
343  , m_Max(nullptr)
344  {
345  }
346 
349 
350  void Validate(const WorkloadInfo& workloadInfo) const;
351 };
352 
354 {
355  void Validate(const WorkloadInfo& workloadInfo) const;
356 };
357 
359 {
360  void Validate(const WorkloadInfo& workloadInfo) const;
361 };
362 
364 {
365  void Validate(const WorkloadInfo& workloadInfo) const;
366 };
367 
369 {
371  : m_LayerOutput(nullptr)
372  {
373  }
374 
376 
377  void Validate(const WorkloadInfo& workloadInfo) const;
378 };
379 
381 {
382  void Validate(const WorkloadInfo& workloadInfo) const;
383 };
384 
386 {
387  void Validate(const WorkloadInfo& workloadInfo) const;
388 };
389 
391 {
392  void Validate(const WorkloadInfo& workloadInfo) const;
393 };
394 
396 {
397  void Validate(const WorkloadInfo& workloadInfo) const;
398 };
399 
401 {
403  : m_InputToInputWeights(nullptr)
404  , m_InputToForgetWeights(nullptr)
405  , m_InputToCellWeights(nullptr)
406  , m_InputToOutputWeights(nullptr)
407  , m_RecurrentToInputWeights(nullptr)
408  , m_RecurrentToForgetWeights(nullptr)
409  , m_RecurrentToCellWeights(nullptr)
410  , m_RecurrentToOutputWeights(nullptr)
411  , m_CellToInputWeights(nullptr)
412  , m_CellToForgetWeights(nullptr)
413  , m_CellToOutputWeights(nullptr)
414  , m_InputGateBias(nullptr)
415  , m_ForgetGateBias(nullptr)
416  , m_CellBias(nullptr)
417  , m_OutputGateBias(nullptr)
418  , m_ProjectionWeights(nullptr)
419  , m_ProjectionBias(nullptr)
420  , m_InputLayerNormWeights(nullptr)
421  , m_ForgetLayerNormWeights(nullptr)
422  , m_CellLayerNormWeights(nullptr)
423  , m_OutputLayerNormWeights(nullptr)
424  {
425  }
426 
448 
449  void Validate(const WorkloadInfo& workloadInfo) const;
450 };
451 
453 {
454  void Validate(const WorkloadInfo& workloadInfo) const;
455 };
456 
458 {
459  void Validate(const WorkloadInfo& workloadInfo) const;
460 };
461 
463 {
464  void Validate(const WorkloadInfo& workloadInfo) const;
465 };
466 
468 {
469  void Validate(const WorkloadInfo& workloadInfo) const;
470 };
471 
472 // Minimum layer workload data.
474 {
475  void Validate(const WorkloadInfo& workloadInfo) const;
476 };
477 
478 // Deprecated use ComparisonQueueDescriptor instead
480 {
481  void Validate(const WorkloadInfo& workloadInfo) const;
482 };
483 
485 {
487 
488  void Validate(const WorkloadInfo& workloadInfo) const;
489 
491  std::string m_LayerName;
492  unsigned int m_SlotIndex;
493 
494  bool m_LayerOutputToFile = false;
495 };
496 
498 {
499  void Validate(const WorkloadInfo& workloadInfo) const;
500 };
501 
503 {
504  void Validate(const WorkloadInfo& workloadInfo) const;
505 };
506 
508 {
509  void Validate(const WorkloadInfo& workloadInfo) const;
510 };
511 
513 {
515  : m_PreCompiledObject(nullptr)
516  {
517  }
518 
520 
521  void Validate(const WorkloadInfo& workloadInfo) const;
522 };
523 
525 {
526  void Validate(const WorkloadInfo& workloadInfo) const;
527 };
528 
530 {
531  void Validate(const WorkloadInfo& workloadInfo) const;
532 };
533 
535 {
536  void Validate(const WorkloadInfo& workloadInfo) const;
537 };
538 
540 {
541  void Validate(const WorkloadInfo& workloadInfo) const;
542 };
543 
545 {
547  m_Weight(nullptr),
548  m_Bias(nullptr)
549  {}
550 
553 
554  void Validate(const WorkloadInfo& workloadInfo) const;
555 };
556 
558 {
559  void Validate(const WorkloadInfo& workloadInfo) const;
560 };
561 
563 {
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  }
588 
610 
611  void Validate(const WorkloadInfo& workloadInfo) const;
612 };
613 
615 {
617  : m_InputToInputWeights(nullptr)
618  , m_InputToForgetWeights(nullptr)
619  , m_InputToCellWeights(nullptr)
620  , m_InputToOutputWeights(nullptr)
621 
622  , m_RecurrentToInputWeights(nullptr)
623  , m_RecurrentToForgetWeights(nullptr)
624  , m_RecurrentToCellWeights(nullptr)
625  , m_RecurrentToOutputWeights(nullptr)
626 
627  , m_InputGateBias(nullptr)
628  , m_ForgetGateBias(nullptr)
629  , m_CellBias(nullptr)
630  , m_OutputGateBias(nullptr)
631  {}
632 
637 
642 
647 
648  void Validate(const WorkloadInfo& workloadInfo) const;
649 };
650 
652 {
653  void Validate(const WorkloadInfo& workloadInfo) const;
654 };
655 
657 {
658  void Validate(const WorkloadInfo& workloadInfo) const;
659 };
660 
662 {
663  void Validate(const WorkloadInfo& workloadInfo) const;
664 };
665 
667 {
668  void Validate(const WorkloadInfo& workloadInfo) const;
669 };
670 
672 {
673  void Validate(const WorkloadInfo& workloadInfo) const;
674 };
675 
677 {
678  void Validate(const WorkloadInfo& workloadInfo) const;
679 };
680 
682 {
683  void Validate(const WorkloadInfo& workloadInfo) const;
684 };
685 
687 {
688  void Validate(const WorkloadInfo& workloadInfo) const;
689 };
690 
692 {
693  void Validate(const WorkloadInfo& workloadInfo) const;
694 };
695 
697 {
699  : m_InputToInputWeights(nullptr)
700  , m_InputToForgetWeights(nullptr)
701  , m_InputToCellWeights(nullptr)
702  , m_InputToOutputWeights(nullptr)
703  , m_RecurrentToInputWeights(nullptr)
704  , m_RecurrentToForgetWeights(nullptr)
705  , m_RecurrentToCellWeights(nullptr)
706  , m_RecurrentToOutputWeights(nullptr)
707  , m_CellToInputWeights(nullptr)
708  , m_CellToForgetWeights(nullptr)
709  , m_CellToOutputWeights(nullptr)
710  , m_InputGateBias(nullptr)
711  , m_ForgetGateBias(nullptr)
712  , m_CellBias(nullptr)
713  , m_OutputGateBias(nullptr)
714  , m_ProjectionWeights(nullptr)
715  , m_ProjectionBias(nullptr)
716  , m_InputLayerNormWeights(nullptr)
717  , m_ForgetLayerNormWeights(nullptr)
718  , m_CellLayerNormWeights(nullptr)
719  , m_OutputLayerNormWeights(nullptr)
720  {
721  }
722 
744 
745  void Validate(const WorkloadInfo& workloadInfo) const;
746 };
747 
749 {
750  void Validate(const WorkloadInfo& workloadInfo) const;
751 };
752 
754 {
755  void Validate(const WorkloadInfo& workloadInfo) const;
756 };
757 
759 {
760  void Validate(const WorkloadInfo& workloadInfo) const;
761 };
762 
764 {
765  void Validate(const WorkloadInfo& workloadInfo) const;
766 };
767 
769 {
770  void Validate(const WorkloadInfo& workloadInfo) const;
771 };
772 
774 {
775  void Validate(const WorkloadInfo& workloadInfo) const;
776 };
777 
778 } // namespace armnn
arm::pipe::ProfilingGuid LayerGuid
Define LayerGuid type.
Definition: Types.hpp:26
Copyright (c) 2021 ARM Limited and Contributors.
DataType GetBiasDataType(DataType inputDataType)
DataType
Definition: Types.hpp:49
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
const ConstTensorHandle * m_Variance
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
ViewOrigin(const std::vector< unsigned int > &origin)
std::vector< unsigned int > m_Origin
void Validate(const WorkloadInfo &workloadInfo) const
std::vector< ViewOrigin > m_ViewOrigins
void Validate(const WorkloadInfo &workloadInfo) const
const ConstTensorHandle * m_LayerOutput
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
Depthwise Convolution 2D layer workload data.
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
DetectionPostProcessQueueDescriptor()
const ConstTensorHandle * m_Anchors
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
const ConstTensorHandle * m_OutputLayerNormWeights
const ConstTensorHandle * m_InputToOutputWeights
const ConstTensorHandle * m_InputLayerNormWeights
const ConstTensorHandle * m_CellToForgetWeights
const ConstTensorHandle * m_RecurrentToInputWeights
const ConstTensorHandle * m_ForgetGateBias
const ConstTensorHandle * m_ProjectionWeights
const ConstTensorHandle * m_InputGateBias
const ConstTensorHandle * m_RecurrentToOutputWeights
const ConstTensorHandle * m_OutputGateBias
const ConstTensorHandle * m_CellBias
const ConstTensorHandle * m_InputToCellWeights
const ConstTensorHandle * m_CellToInputWeights
const ConstTensorHandle * m_CellToOutputWeights
const ConstTensorHandle * m_InputToForgetWeights
const ConstTensorHandle * m_InputToInputWeights
const ConstTensorHandle * m_RecurrentToCellWeights
const ConstTensorHandle * m_ProjectionBias
const ConstTensorHandle * m_ForgetLayerNormWeights
const ConstTensorHandle * m_RecurrentToForgetWeights
const ConstTensorHandle * m_CellLayerNormWeights
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
const ConstTensorHandle * m_OutputLayerNormWeights
const ConstTensorHandle * m_InputToOutputWeights
const ConstTensorHandle * m_InputLayerNormWeights
const ConstTensorHandle * m_CellToForgetWeights
const ConstTensorHandle * m_RecurrentToInputWeights
const ConstTensorHandle * m_ForgetGateBias
const ConstTensorHandle * m_ProjectionWeights
const ConstTensorHandle * m_InputGateBias
const ConstTensorHandle * m_RecurrentToOutputWeights
const ConstTensorHandle * m_OutputGateBias
const ConstTensorHandle * m_CellBias
const ConstTensorHandle * m_InputToCellWeights
const ConstTensorHandle * m_CellToInputWeights
const ConstTensorHandle * m_CellToOutputWeights
const ConstTensorHandle * m_InputToForgetWeights
const ConstTensorHandle * m_InputToInputWeights
const ConstTensorHandle * m_RecurrentToCellWeights
const ConstTensorHandle * m_ProjectionBias
const ConstTensorHandle * m_ForgetLayerNormWeights
const ConstTensorHandle * m_RecurrentToForgetWeights
const ConstTensorHandle * m_CellLayerNormWeights
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
const ConstTensorHandle * m_InputToOutputWeights
const ConstTensorHandle * m_RecurrentToInputWeights
const ConstTensorHandle * m_ForgetGateBias
const ConstTensorHandle * m_InputGateBias
const ConstTensorHandle * m_RecurrentToOutputWeights
const ConstTensorHandle * m_OutputGateBias
const ConstTensorHandle * m_CellBias
const ConstTensorHandle * m_InputToCellWeights
const ConstTensorHandle * m_InputToForgetWeights
const ConstTensorHandle * m_InputToInputWeights
const ConstTensorHandle * m_RecurrentToCellWeights
const ConstTensorHandle * m_RecurrentToForgetWeights
const T * GetAdditionalInformation() const
void ValidateTensorNumDimensions(const TensorInfo &tensor, std::string const &descName, unsigned int numDimensions, std::string const &tensorName) const
QueueDescriptor & operator=(QueueDescriptor const &)=default
std::vector< ITensorHandle * > m_Inputs
virtual ~QueueDescriptor()=default
std::vector< ITensorHandle * > m_Outputs
QueueDescriptor(QueueDescriptor const &)=default
void ValidateInputsOutputs(const std::string &descName, unsigned int numExpectedIn, unsigned int numExpectedOut) const
void ValidateTensorNumDimNumElem(const TensorInfo &tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &tensorName) const
QueueDescriptorWithParameters(QueueDescriptorWithParameters const &)=default
QueueDescriptorWithParameters & operator=(QueueDescriptorWithParameters const &)=default
virtual ~QueueDescriptorWithParameters()=default
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
ViewOrigin(std::vector< unsigned int > const &origin)
std::vector< unsigned int > m_Origin
void Validate(const WorkloadInfo &workloadInfo) const
std::vector< ViewOrigin > m_ViewOrigins
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
void Validate(const WorkloadInfo &workloadInfo) const
const ConstTensorHandle * m_RecurrentToOutputWeights
const ConstTensorHandle * m_RecurrentToForgetWeights
void Validate(const WorkloadInfo &workloadInfo) const
Contains information about TensorInfos of a layer.