ArmNN
 22.11
SampleDynamicLayerSupport.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
7 
8 #include <InternalTypes.hpp>
9 #include <LayerSupportCommon.hpp>
10 #include <armnn/Types.hpp>
11 
12 namespace sdb // sample dynamic backend
13 {
14 
16  const std::vector<armnn::TensorInfo>& infos,
17  const armnn::BaseDescriptor& /*descriptor*/,
19  /*lstmParamsInfo*/,
21  /*quantizedLstmParamsInfo*/,
22  armnn::Optional<std::string&> reasonIfUnsupported) const
23 {
24  switch (type)
25  {
27  return IsInputSupported(infos[0], reasonIfUnsupported);
29  return IsOutputSupported(infos[0], reasonIfUnsupported);
31  return IsAdditionSupported(infos[0],
32  infos[1],
33  infos[2],
34  reasonIfUnsupported);
35  default:
36  return false;
37  }
38 }
39 
42 {
43  return true;
44 }
45 
48 {
49  return true;
50 }
51 
56 {
57 
58  if (input0.GetDataType() != armnn::DataType::Float32)
59  {
60  return false;
61  }
62 
63  if (input0.GetDataType() != input1.GetDataType())
64  {
65  return false;
66  }
67 
68  if (input0.GetDataType() != output.GetDataType())
69  {
70  return false;
71  }
72 
73  return true;
74 }
75 
76 } // namespace sdb
const TensorInfo & output
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
bool IsInputSupported(const armnn::TensorInfo &input, armnn::Optional< std::string &> reasonIfUnsupported) const override
Base class for all descriptors.
Definition: Descriptors.hpp:22
bool IsLayerSupported(const armnn::LayerType &type, const std::vector< armnn::TensorInfo > &infos, const armnn::BaseDescriptor &descriptor, const armnn::Optional< armnn::LstmInputParamsInfo > &lstmParamsInfo, const armnn::Optional< armnn::QuantizedLstmInputParamsInfo > &quantizedLstmParamsInfo, armnn::Optional< std::string &> reasonIfUnsupported=armnn::EmptyOptional()) const override
DataType GetDataType() const
Definition: Tensor.hpp:198
bool IsOutputSupported(const armnn::TensorInfo &output, armnn::Optional< std::string &> reasonIfUnsupported) const override
const TensorInfo & input1
bool IsAdditionSupported(const armnn::TensorInfo &input0, const armnn::TensorInfo &input1, const armnn::TensorInfo &output, armnn::Optional< std::string &> reasonIfUnsupported=armnn::EmptyOptional()) const override
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...
Definition: Types.hpp:468