ArmNN
 24.08
TosaMappings.hpp File Reference
#include <Layer.hpp>
#include <tosa_serialization_handler.h>
#include "operatorMappings/TosaCommonOperators.hpp"
Include dependency graph for TosaMappings.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

TosaSerializationBasicBlock * GetTosaMapping (const Layer *layer, const LayerType type, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const BaseDescriptor &)
 
TosaSerializationBasicBlock * GetTosaMappingFromLayer (const Layer *layer)
 

Function Documentation

◆ GetTosaMapping()

TosaSerializationBasicBlock* GetTosaMapping ( const Layer layer,
const LayerType  type,
const std::vector< const TensorInfo * > &  inputs,
const std::vector< const TensorInfo * > &  outputs,
const BaseDescriptor  
)

Definition at line 18 of file TosaMappings.cpp.

23 {
24  switch (type)
25  {
27  {
28  auto activationDesc = PolymorphicDowncast<const ActivationDescriptor*>(&descriptor);
29  switch (activationDesc->m_Function)
30  {
31  case ActivationFunction::LeakyReLu:
32  {
33  return ConvertLeakyReluToTosaOperator(layer, inputs, outputs, activationDesc);
34  }
35  case ActivationFunction::ReLu:
36  case ActivationFunction::BoundedReLu:
37  {
38  return ConvertReluToTosaOperator(layer, inputs, outputs, activationDesc);
39  }
40  case ActivationFunction::Gelu:
41  {
42  return ConvertGeluToTosaOperator(layer, inputs, outputs, activationDesc);
43  }
44  default:
45  {
47  }
48  }
49  }
50  case LayerType::Addition:
51  case LayerType::Multiplication:
52  case LayerType::Subtraction:
53  {
54  return ConvertElementwiseBinaryToTosaOperator(layer, type, inputs, outputs);
55  }
56  case LayerType::ElementwiseBinary:
57  {
58  auto binaryDesc = PolymorphicDowncast<const ElementwiseBinaryDescriptor*>(&descriptor);
59  return ConvertElementwiseBinaryToTosaOperator(layer, type, inputs, outputs, binaryDesc);
60  }
61  case LayerType::ElementwiseUnary:
62  {
63  auto unaryDesc = PolymorphicDowncast<const ElementwiseUnaryDescriptor*>(&descriptor);
64  switch(unaryDesc->m_Operation)
65  {
66  case UnaryOperation::Rsqrt:
67  {
68  return ConvertRsqrtOperator(layer, inputs, outputs, unaryDesc);
69  }
70  case UnaryOperation::Exp:
71  {
72  return ConvertExpOperator(layer, inputs, outputs, unaryDesc);
73  }
74  case UnaryOperation::Log:
75  {
76  return ConvertLogOperator(layer, inputs, outputs, unaryDesc);
77  }
78  default:
79  {
81  }
82  }
83  }
84  case LayerType::BatchMatMul:
85  {
86  auto batchMatMulDesc = PolymorphicDowncast<const BatchMatMulDescriptor*>(&descriptor);
87  return ConvertBatchMatMulToTosaOperator(layer, inputs, outputs, batchMatMulDesc);
88  }
89  case LayerType::Concat:
90  {
91  auto concatDesc = PolymorphicDowncast<const OriginsDescriptor*>(&descriptor);
92  return ConvertConcatToTosaOperator(layer, inputs, outputs, concatDesc);
93  }
94  case LayerType::Constant:
95  {
96  bool isDepthwiseConv2dWeights = false;
97  if(layer)
98  {
99  // The difference in layout of weights in Tensorflow/ArmNN and the layout
100  // described in TOSA means we must permute the weights from [1, H, W, C * M] to [H, W, C, M].
101  unsigned int slotIdx = layer->GetOutputSlot().GetConnection(0)->GetSlotIndex();
103  if(type == LayerType::DepthwiseConvolution2d && slotIdx == 1)
104  {
105  isDepthwiseConv2dWeights = true;
106  }
107  }
108  return ConvertConstantToTosaOperator(layer, outputs, isDepthwiseConv2dWeights);
109  }
110  case LayerType::Convolution2d:
111  {
112  auto conv2dDesc = PolymorphicDowncast<const Convolution2dDescriptor*>(&descriptor);
113  return ConvertConv2dToTosaOperator(layer, inputs, outputs, conv2dDesc);
114  }
115  case LayerType::DepthwiseConvolution2d:
116  {
117  auto conv2dDesc = PolymorphicDowncast<const DepthwiseConvolution2dDescriptor*>(&descriptor);
118  return ConvertDepthwiseConv2dToTosaOperator(layer, inputs, outputs, conv2dDesc);
119  }
121  {
122  auto fullyConnectedDesc = PolymorphicDowncast<const FullyConnectedDescriptor*>(&descriptor);
123  return ConvertFullyConnectedToTosaOperator(layer, inputs, outputs, fullyConnectedDesc);
124  }
125  case LayerType::Pad:
126  {
127  auto padDesc = PolymorphicDowncast<const PadDescriptor*>(&descriptor);
128  return ConvertPadToTosaOperator(layer, inputs, outputs, padDesc);
129  }
131  {
132  auto poolDesc = PolymorphicDowncast<const Pooling2dDescriptor*>(&descriptor);
133 
134  bool avgPoolIgnoreValue =
135  (poolDesc->m_PoolType == PoolingAlgorithm::Average) &&
136  (poolDesc->m_PaddingMethod == PaddingMethod::IgnoreValue);
137 
138  if (poolDesc->m_PoolType == PoolingAlgorithm::L2)
139  {
141  }
142  else if (avgPoolIgnoreValue)
143  {
144  return ConvertAvgPool2DIgnoreValueToTosaOperator(layer, inputs, outputs, poolDesc);
145  }
146  else
147  {
148  return ConvertPooling2DToTosaOperator(layer, inputs, outputs, poolDesc);
149  }
150  }
151  case LayerType::Mean:
152  {
153  auto meanDesc = PolymorphicDowncast<const MeanDescriptor*>(&descriptor);
154 
155  ReduceDescriptor reduceDesc;
156  reduceDesc.m_KeepDims = meanDesc->m_KeepDims;
157  reduceDesc.m_vAxis = meanDesc->m_Axis;
158  reduceDesc.m_ReduceOperation = ReduceOperation::Mean;
159 
160  return ConvertReduceToTosaOperator(layer, inputs, outputs, &reduceDesc);
161  }
162  case LayerType::Quantize:
163  {
164  return ConvertQuantizeToTosaOperator(layer, inputs, outputs);
165  }
166  case LayerType::Reduce:
167  {
168  auto reduceDesc = PolymorphicDowncast<const ReduceDescriptor*>(&descriptor);
169  return ConvertReduceToTosaOperator(layer, inputs, outputs, reduceDesc);
170  }
171  case LayerType::Reshape:
172  {
173  auto reshapeDesc = PolymorphicDowncast<const ReshapeDescriptor*>(&descriptor);
174  return ConvertReshapeToTosaOperator(layer, inputs, outputs, reshapeDesc);
175  }
176  case LayerType::Resize:
177  {
178  auto resizeDesc = PolymorphicDowncast<const ResizeDescriptor*>(&descriptor);
179  return ConvertResizeToTosaOperator(layer, inputs, outputs, resizeDesc);
180  }
181  case LayerType::Slice:
182  {
183  auto sliceDesc = PolymorphicDowncast<const SliceDescriptor*>(&descriptor);
184  return ConvertSliceToTosaOperator(layer, inputs, outputs, sliceDesc);
185  }
186  case LayerType::Softmax:
187  {
188  auto softmaxDesc = PolymorphicDowncast<const SoftmaxDescriptor*>(&descriptor);
189  return ConvertSoftmaxToTosaOperator(layer, inputs, outputs, softmaxDesc);
190  }
191  case LayerType::Splitter:
192  {
193  auto splitDesc = PolymorphicDowncast<const SplitterDescriptor*>(&descriptor);
194  return ConvertSplitToTosaOperator(layer, inputs, outputs, splitDesc);
195  }
196  case LayerType::TransposeConvolution2d:
197  {
198  auto transposeConv2dDesc = PolymorphicDowncast<const TransposeConvolution2dDescriptor*>(&descriptor);
199  return ConvertTransposeConv2dToTosaOperator(layer, inputs, outputs, transposeConv2dDesc);
200  }
202  {
203  auto transposeDesc = PolymorphicDowncast<const TransposeDescriptor*>(&descriptor);
204  return ConvertTransposeToTosaOperator(layer, inputs, outputs, transposeDesc);
205  }
206  default:
207  {
209  }
210  }
211 }

References armnn::Activation, armnn::Addition, armnn::Average, armnn::BatchMatMul, armnn::BoundedReLu, armnn::Concat, armnn::Constant, ConvertAvgPool2DIgnoreValueToTosaOperator(), ConvertBatchMatMulToTosaOperator(), ConvertConcatToTosaOperator(), ConvertConstantToTosaOperator(), ConvertConv2dToTosaOperator(), ConvertDepthwiseConv2dToTosaOperator(), ConvertElementwiseBinaryToTosaOperator(), ConvertExpOperator(), ConvertFullyConnectedToTosaOperator(), ConvertGeluToTosaOperator(), ConvertLeakyReluToTosaOperator(), ConvertLogOperator(), ConvertPadToTosaOperator(), ConvertPooling2DToTosaOperator(), ConvertQuantizeToTosaOperator(), ConvertReduceToTosaOperator(), ConvertReluToTosaOperator(), ConvertReshapeToTosaOperator(), ConvertResizeToTosaOperator(), ConvertRsqrtOperator(), ConvertSliceToTosaOperator(), ConvertSoftmaxToTosaOperator(), ConvertSplitToTosaOperator(), ConvertTransposeConv2dToTosaOperator(), ConvertTransposeToTosaOperator(), armnn::Convolution2d, CreateEmptyTosaSerializationBasicBlock(), armnn::DepthwiseConvolution2d, armnn::ElementwiseBinary, armnn::ElementwiseUnary, armnn::Exp, armnn::FullyConnected, armnn::Gelu, OutputSlot::GetConnection(), Layer::GetOutputSlot(), InputSlot::GetOwningLayer(), InputSlot::GetSlotIndex(), Layer::GetType(), armnn::IgnoreValue, armnn::L2, armnn::LeakyReLu, armnn::Log, ReduceDescriptor::m_KeepDims, ReduceDescriptor::m_ReduceOperation, ReduceDescriptor::m_vAxis, armnn::Mean, armnn::Multiplication, armnn::Pad, armnn::Pooling2d, armnn::Quantize, armnn::Reduce, armnn::ReLu, armnn::Reshape, armnn::Resize, armnn::Rsqrt, armnn::Slice, armnn::Softmax, armnn::Splitter, armnn::Subtraction, armnn::Transpose, and armnn::TransposeConvolution2d.

Referenced by GetTosaMappingFromLayer(), and TosaRefLayerSupport::IsLayerSupported().

◆ GetTosaMappingFromLayer()

TosaSerializationBasicBlock* GetTosaMappingFromLayer ( const Layer layer)

Definition at line 213 of file TosaMappings.cpp.

214 {
215  std::vector<const TensorInfo*> inputs;
216  for (auto inputSlot : layer->GetInputSlots())
217  {
218  inputs.push_back(&inputSlot.GetTensorInfo());
219  }
220 
221  std::vector<const TensorInfo*> outputs;
222  for (auto& outputSlot : layer->GetOutputSlots())
223  {
224  outputs.push_back(&outputSlot.GetTensorInfo());
225  }
226 
227  TosaSerializationBasicBlock* basicBlock = GetTosaMapping(layer,
228  layer->GetType(),
229  inputs,
230  outputs,
231  layer->GetParameters());
232  return basicBlock;
233 }

References Layer::GetInputSlots(), Layer::GetOutputSlots(), Layer::GetParameters(), GetTosaMapping(), and Layer::GetType().

Referenced by TosaRefBackend::OptimizeSubgraphView().

armnnUtils::Transpose
void Transpose(const armnn::TensorShape &dstShape, const armnn::PermutationVector &mappings, const void *src, void *dst, size_t dataTypeSize)
Definition: Transpose.cpp:153
ConvertGeluToTosaOperator
TosaSerializationBasicBlock * ConvertGeluToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ActivationDescriptor *desc)
Definition: GeluOperator.cpp:17
CreateEmptyTosaSerializationBasicBlock
TosaSerializationBasicBlock * CreateEmptyTosaSerializationBasicBlock()
Definition: TosaMappings.cpp:11
ConvertReshapeToTosaOperator
TosaSerializationBasicBlock * ConvertReshapeToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ReshapeDescriptor *reshapeDescriptor)
Definition: ReshapeOperator.cpp:8
ConvertRsqrtOperator
TosaSerializationBasicBlock * ConvertRsqrtOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ElementwiseUnaryDescriptor *unaryDescriptor)
Definition: RsqrtOperator.cpp:8
armnn::InputSlot::GetOwningLayer
Layer & GetOwningLayer() const
Definition: Layer.hpp:53
armnn::Splitter
void Splitter(const SplitterQueueDescriptor &data, std::vector< ITensorHandle * > inputs, std::vector< ITensorHandle * > outputs)
Definition: Splitter.hpp:17
ConvertElementwiseBinaryToTosaOperator
TosaSerializationBasicBlock * ConvertElementwiseBinaryToTosaOperator(const Layer *layer, const LayerType type, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ElementwiseBinaryDescriptor *descriptor)
Definition: ElementwiseBinaryOperator.cpp:36
armnn::Pooling2d
void Pooling2d(Decoder< float > &rInputDecoder, Encoder< float > &rOutputEncoder, const TensorInfo &inputInfo, const TensorInfo &outputInfo, const Pooling2dDescriptor &params)
Computes the Pooling2d operation.
Definition: Pooling2d.cpp:142
ConvertAvgPool2DIgnoreValueToTosaOperator
TosaSerializationBasicBlock * ConvertAvgPool2DIgnoreValueToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const Pooling2dDescriptor *poolDescriptor)
Definition: AvgPool2DIgnoreValueOperator.cpp:8
ConvertConv2dToTosaOperator
TosaSerializationBasicBlock * ConvertConv2dToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const Convolution2dDescriptor *conv2dDescriptor)
Definition: Conv2dOperator.cpp:10
armnn::Reduce
void Reduce(const TensorInfo &inputInfo, const TensorInfo &outputInfo, Decoder< float > &input, Encoder< float > &output, const std::vector< uint32_t > axis, const ReduceOperation reduceOperation)
Definition: Reduce.cpp:70
ConvertPooling2DToTosaOperator
TosaSerializationBasicBlock * ConvertPooling2DToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const Pooling2dDescriptor *poolDescriptor)
Definition: Pooling2DOperator.cpp:8
armnn::Layer::GetOutputSlot
const OutputSlot & GetOutputSlot(unsigned int index=0) const override
Get the const output slot handle by slot index.
Definition: Layer.hpp:339
ConvertConcatToTosaOperator
TosaSerializationBasicBlock * ConvertConcatToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const OriginsDescriptor *concatDescriptor)
Definition: ConcatOperator.cpp:8
armnn::Layer::GetInputSlots
const std::vector< InputSlot > & GetInputSlots() const
Definition: Layer.hpp:258
armnn::FullyConnected
void FullyConnected(const TensorShape &rInputShape, Decoder< float > &rInputDecoder, const TensorShape &rOutputShape, Encoder< float > &rOutputEncoder, const TensorShape &rWeightsShape, Decoder< float > &rWeightDecoder, Decoder< float > *pBiasDecoder, const bool biasEnabled, const unsigned int K, const bool transposeWeights)
Performs a matrix multiplication and optionally adds a bias.
Definition: FullyConnected.cpp:13
armnn::ReduceDescriptor::m_ReduceOperation
ReduceOperation m_ReduceOperation
Specifies the reduction operation to execute.
Definition: Descriptors.hpp:1558
ConvertSplitToTosaOperator
TosaSerializationBasicBlock * ConvertSplitToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const SplitterDescriptor *splitDescriptor)
Definition: SplitOperator.cpp:14
ConvertPadToTosaOperator
TosaSerializationBasicBlock * ConvertPadToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const PadDescriptor *padDescriptor)
Definition: PadOperator.cpp:9
armnn::InputSlot::GetSlotIndex
unsigned int GetSlotIndex() const override
Definition: Layer.hpp:54
armnn::Slice
void Slice(const TensorInfo &inputInfo, const SliceDescriptor &descriptor, const void *inputData, void *outputData, unsigned int dataTypeSize)
Definition: Slice.cpp:14
ConvertSliceToTosaOperator
TosaSerializationBasicBlock * ConvertSliceToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const SliceDescriptor *sliceDescriptor)
Definition: SliceOperator.cpp:8
ConvertReluToTosaOperator
TosaSerializationBasicBlock * ConvertReluToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ActivationDescriptor *desc)
Definition: ReluOperator.cpp:17
armnn::Softmax
void Softmax(Decoder< float > &in, Encoder< float > &out, const TensorInfo &inputTensorInfo, float beta, int axis)
Computes the softmax function on some inputs, into outputs, with a shape given by tensorInfo.
Definition: Softmax.cpp:17
ConvertLeakyReluToTosaOperator
TosaSerializationBasicBlock * ConvertLeakyReluToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ActivationDescriptor *activationDescriptor)
Definition: LeakyReluOperator.cpp:17
armnn::Layer::GetOutputSlots
const std::vector< OutputSlot > & GetOutputSlots() const
Definition: Layer.hpp:259
armnn::Quantize
QuantizedType Quantize(float value, float scale, int32_t offset)
Quantize a floating point data type into an 8-bit data type.
Definition: TypesUtils.cpp:30
GetTosaMapping
TosaSerializationBasicBlock * GetTosaMapping(const Layer *layer, const LayerType type, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const BaseDescriptor &descriptor)
Definition: TosaMappings.cpp:18
ConvertTransposeConv2dToTosaOperator
TosaSerializationBasicBlock * ConvertTransposeConv2dToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const TransposeConvolution2dDescriptor *descriptor)
Definition: TransposeConv2dOperator.cpp:10
armnn::ReduceDescriptor::m_KeepDims
bool m_KeepDims
if true then output shape has no change.
Definition: Descriptors.hpp:1554
armnn::Layer::GetParameters
virtual const BaseDescriptor & GetParameters() const override
If the layer has a descriptor return it.
Definition: Layer.hpp:378
armnn::Pad
void Pad(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const ITensorHandle *inputHandle, ITensorHandle *outputHandle, const PadQueueDescriptor &data)
Definition: Pad.cpp:39
ConvertQuantizeToTosaOperator
TosaSerializationBasicBlock * ConvertQuantizeToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs)
Definition: QuantizeOperator.cpp:15
ConvertReduceToTosaOperator
TosaSerializationBasicBlock * ConvertReduceToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ReduceDescriptor *reduceDescriptor)
Definition: ReduceOperator.cpp:17
armnn::Layer::GetType
LayerType GetType() const override
Returns the armnn::LayerType of this layer.
Definition: Layer.hpp:286
armnn::Resize
void Resize(Decoder< float > &in, const TensorInfo &inputInfo, Encoder< float > &out, const TensorInfo &outputInfo, DataLayoutIndexed dataLayout, ResizeMethod resizeMethod, bool alignCorners, bool halfPixelCenters)
Definition: Resize.cpp:65
ConvertConstantToTosaOperator
TosaSerializationBasicBlock * ConvertConstantToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &outputs, bool isDepthwiseConv2dWeights=false)
Definition: ConstantOperator.cpp:10
armnn::ReduceDescriptor::m_vAxis
std::vector< uint32_t > m_vAxis
The indices of the dimensions to reduce.
Definition: Descriptors.hpp:1556
ConvertDepthwiseConv2dToTosaOperator
TosaSerializationBasicBlock * ConvertDepthwiseConv2dToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const DepthwiseConvolution2dDescriptor *conv2dDescriptor)
Definition: DepthwiseConv2dOperator.cpp:10
ConvertFullyConnectedToTosaOperator
TosaSerializationBasicBlock * ConvertFullyConnectedToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const FullyConnectedDescriptor *fcDescriptor)
Definition: FullyConnectedOperator.cpp:16
ConvertResizeToTosaOperator
TosaSerializationBasicBlock * ConvertResizeToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ResizeDescriptor *resizeDescriptor)
Definition: ResizeOperator.cpp:15
ConvertSoftmaxToTosaOperator
TosaSerializationBasicBlock * ConvertSoftmaxToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const SoftmaxDescriptor *softmaxDescriptor)
Definition: SoftmaxOperator.cpp:17
ConvertTransposeToTosaOperator
TosaSerializationBasicBlock * ConvertTransposeToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const TransposeDescriptor *transposeDescriptor)
Definition: TransposeOperator.cpp:8
ConvertLogOperator
TosaSerializationBasicBlock * ConvertLogOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ElementwiseUnaryDescriptor *unaryDescriptor)
Definition: LogOperator.cpp:13
armnn::Activation
float Activation(float in, ActivationFunction function, float a, float b)
Definition: Activation.cpp:13
armnn::ReduceDescriptor
A ReduceDescriptor for the REDUCE operators.
Definition: Descriptors.hpp:1538
armnn::LayerType
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.
Definition: Types.hpp:491
armnn::OutputSlot::GetConnection
const InputSlot * GetConnection(unsigned int index) const override
Definition: Layer.cpp:83
ConvertExpOperator
TosaSerializationBasicBlock * ConvertExpOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ElementwiseUnaryDescriptor *unaryDescriptor)
Definition: ExpOperator.cpp:13
ConvertBatchMatMulToTosaOperator
TosaSerializationBasicBlock * ConvertBatchMatMulToTosaOperator(const Layer *layer, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const BatchMatMulDescriptor *descriptor)
Definition: BatchMatMulOperator.cpp:14