blob: 3094bc1c5bba218c4761214816abbd6e19fc1895 [file] [log] [blame]
Narumol Prangnawarat867eba52020-02-03 12:29:56 +00001//
2// Copyright © 2020 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "SampleDynamicLayerSupport.hpp"
7
8#include <InternalTypes.hpp>
9#include <LayerSupportCommon.hpp>
10#include <armnn/Types.hpp>
11
Jan Eilersc84e45d2020-08-19 14:14:36 +010012namespace sdb // sample dynamic backend
Narumol Prangnawarat867eba52020-02-03 12:29:56 +000013{
14
Cathal Corbetta7edbe62022-01-20 15:53:31 +000015bool SampleDynamicLayerSupport::IsLayerSupported(const armnn::LayerType& type,
16 const std::vector<armnn::TensorInfo>& infos,
17 const armnn::BaseDescriptor& /*descriptor*/,
18 const armnn::Optional<armnn::LstmInputParamsInfo>&
19 /*lstmParamsInfo*/,
20 const armnn::Optional<armnn::QuantizedLstmInputParamsInfo>&
21 /*quantizedLstmParamsInfo*/,
22 armnn::Optional<std::string&> reasonIfUnsupported) const
23{
24 switch (type)
25 {
26 case armnn::LayerType::Input:
27 return IsInputSupported(infos[0], reasonIfUnsupported);
28 case armnn::LayerType::Output:
29 return IsOutputSupported(infos[0], reasonIfUnsupported);
30 case armnn::LayerType::Addition:
31 return IsAdditionSupported(infos[0],
32 infos[1],
33 infos[2],
34 reasonIfUnsupported);
35 default:
36 return false;
37 }
38}
39
Jan Eilersc84e45d2020-08-19 14:14:36 +010040bool SampleDynamicLayerSupport::IsInputSupported(const armnn::TensorInfo& input,
41 armnn::Optional<std::string&> reasonIfUnsupported) const
Narumol Prangnawarat867eba52020-02-03 12:29:56 +000042{
43 return true;
44}
45
Jan Eilersc84e45d2020-08-19 14:14:36 +010046bool SampleDynamicLayerSupport::IsOutputSupported(const armnn::TensorInfo& output,
47 armnn::Optional<std::string&> reasonIfUnsupported) const
Narumol Prangnawarat867eba52020-02-03 12:29:56 +000048{
49 return true;
50}
51
Jan Eilersc84e45d2020-08-19 14:14:36 +010052bool SampleDynamicLayerSupport::IsAdditionSupported(const armnn::TensorInfo& input0,
53 const armnn::TensorInfo& input1,
54 const armnn::TensorInfo& output,
55 armnn::Optional<std::string&> reasonIfUnsupported) const
Narumol Prangnawarat867eba52020-02-03 12:29:56 +000056{
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
Jan Eilersc84e45d2020-08-19 14:14:36 +010076} // namespace sdb