blob: b7f5f0497d4ba442d83befbc763afbd9f39466b5 [file] [log] [blame]
David Becke97c6e02018-10-03 13:09:28 +01001//
Teresa Charlin52664732020-06-29 16:27:03 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
David Becke97c6e02018-10-03 13:09:28 +01003// SPDX-License-Identifier: MIT
4//
5#pragma once
6
Jim Flynn906f9462019-05-10 13:55:21 +01007#include <armnn/Deprecated.hpp>
Cathal Corbett34b429c2021-12-24 12:24:40 +00008#include <armnn/Descriptors.hpp>
Jan Eilersd01a83c2019-07-03 18:20:40 +01009#include <armnn/LstmParams.hpp>
James Conroyee18dc82019-07-17 11:27:46 +010010#include <armnn/Optional.hpp>
11#include <armnn/QuantizedLstmParams.hpp>
Matthew Bentham313e1c82019-03-25 17:37:47 +000012
David Beck5eec11d2018-10-04 15:43:17 +010013#include <cctype>
Narumol Prangnawarat15eb5832019-05-20 15:31:05 +010014#include <functional>
David Beck3e9e1152018-10-17 14:17:50 +010015#include <memory>
Matthew Bentham313e1c82019-03-25 17:37:47 +000016#include <vector>
David Becke97c6e02018-10-03 13:09:28 +010017
18namespace armnn
19{
20
21class TensorInfo;
22
23class ILayerSupport
24{
25protected:
26 ILayerSupport() {}
27 virtual ~ILayerSupport() {}
28
29public:
Cathal Corbett34b429c2021-12-24 12:24:40 +000030 virtual bool IsLayerSupported(const LayerType& type,
31 const std::vector<TensorInfo>& infos,
32 const BaseDescriptor& descriptor,
33 const Optional<LstmInputParamsInfo>& lstmParamsInfo = EmptyOptional(),
34 const Optional<QuantizedLstmInputParamsInfo>& quantizedLstmParamsInfo =
35 EmptyOptional(),
36 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
37
Francis Murtaghb03043e2022-01-20 14:31:30 +000038 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010039 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +010040 virtual bool IsActivationSupported(const TensorInfo& input,
41 const TensorInfo& output,
42 const ActivationDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +000043 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +010044
Francis Murtaghb03043e2022-01-20 14:31:30 +000045 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010046 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +010047 virtual bool IsAdditionSupported(const TensorInfo& input0,
48 const TensorInfo& input1,
49 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +000050 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +010051
Francis Murtaghb03043e2022-01-20 14:31:30 +000052 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010053 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Nikhil Rajee391d52019-09-05 17:50:44 +010054 virtual bool IsArgMinMaxSupported(const TensorInfo& input,
55 const TensorInfo& output,
56 const ArgMinMaxDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +000057 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Nikhil Rajee391d52019-09-05 17:50:44 +010058
Francis Murtaghb03043e2022-01-20 14:31:30 +000059 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010060 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +010061 virtual bool IsBatchNormalizationSupported(const TensorInfo& input,
62 const TensorInfo& output,
63 const TensorInfo& mean,
64 const TensorInfo& var,
65 const TensorInfo& beta,
66 const TensorInfo& gamma,
67 const BatchNormalizationDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +000068 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +010069
Francis Murtaghb03043e2022-01-20 14:31:30 +000070 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010071 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +000072 virtual bool IsBatchToSpaceNdSupported(const TensorInfo& input,
73 const TensorInfo& output,
74 const BatchToSpaceNdDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +000075 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +000076
Francis Murtaghb03043e2022-01-20 14:31:30 +000077 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010078 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
mathad01b392e982021-04-07 12:07:30 +010079 virtual bool IsCastSupported(const TensorInfo& input,
80 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +000081 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
mathad01b392e982021-04-07 12:07:30 +010082
Francis Murtaghb03043e2022-01-20 14:31:30 +000083 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010084 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Simon Obute51f67772021-09-03 15:50:13 +010085 virtual bool IsChannelShuffleSupported(const TensorInfo& input,
86 const TensorInfo& output,
87 const ChannelShuffleDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +000088 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Simon Obute51f67772021-09-03 15:50:13 +010089
Francis Murtaghb03043e2022-01-20 14:31:30 +000090 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010091 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010092 virtual bool IsComparisonSupported(const TensorInfo& input0,
93 const TensorInfo& input1,
94 const TensorInfo& output,
95 const ComparisonDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +000096 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010097
Francis Murtaghb03043e2022-01-20 14:31:30 +000098 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +010099 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Jim Flynn906f9462019-05-10 13:55:21 +0100100 virtual bool IsConcatSupported(const std::vector<const TensorInfo*> inputs,
101 const TensorInfo& output,
102 const OriginsDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000103 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Jim Flynn906f9462019-05-10 13:55:21 +0100104
Francis Murtaghb03043e2022-01-20 14:31:30 +0000105 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100106 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100107 virtual bool IsConstantSupported(const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000108 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100109
Francis Murtaghb03043e2022-01-20 14:31:30 +0000110 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100111 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Narumol Prangnawarat7ddbbae2020-03-13 10:26:05 +0000112 virtual bool IsConvertBf16ToFp32Supported(const TensorInfo& input,
113 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000114 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Narumol Prangnawarat7ddbbae2020-03-13 10:26:05 +0000115
Francis Murtaghb03043e2022-01-20 14:31:30 +0000116 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100117 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Narumol Prangnawaratea54a012020-03-16 16:36:10 +0000118 virtual bool IsConvertFp32ToBf16Supported(const TensorInfo& input,
119 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000120 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Narumol Prangnawaratea54a012020-03-16 16:36:10 +0000121
Francis Murtaghb03043e2022-01-20 14:31:30 +0000122 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100123 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100124 virtual bool IsConvertFp16ToFp32Supported(const TensorInfo& input,
125 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000126 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100127
Francis Murtaghb03043e2022-01-20 14:31:30 +0000128 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100129 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100130 virtual bool IsConvertFp32ToFp16Supported(const TensorInfo& input,
131 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000132 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100133
Francis Murtaghb03043e2022-01-20 14:31:30 +0000134 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100135 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100136 virtual bool IsConvolution2dSupported(const TensorInfo& input,
137 const TensorInfo& output,
138 const Convolution2dDescriptor& descriptor,
139 const TensorInfo& weights,
David Beck5eec11d2018-10-04 15:43:17 +0100140 const Optional<TensorInfo>& biases,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000141 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100142
Francis Murtaghb03043e2022-01-20 14:31:30 +0000143 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100144 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100145 virtual bool IsConvolution3dSupported(const TensorInfo& input,
146 const TensorInfo& output,
147 const Convolution3dDescriptor& descriptor,
148 const TensorInfo& weights,
149 const Optional<TensorInfo>& biases,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000150 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Matthew Sloyanb63a3112021-09-08 13:05:51 +0100151
Francis Murtaghb03043e2022-01-20 14:31:30 +0000152 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100153 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Nattapat Chaimanowonga9a1cf12018-12-03 16:06:49 +0000154 virtual bool IsDebugSupported(const TensorInfo& input,
155 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000156 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Nattapat Chaimanowonga9a1cf12018-12-03 16:06:49 +0000157
Francis Murtaghb03043e2022-01-20 14:31:30 +0000158 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100159 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Aron Virginas-Tardd6247f2019-09-19 14:31:17 +0100160 virtual bool IsDepthToSpaceSupported(const TensorInfo& input,
161 const TensorInfo& output,
162 const DepthToSpaceDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000163 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Aron Virginas-Tardd6247f2019-09-19 14:31:17 +0100164
Francis Murtaghb03043e2022-01-20 14:31:30 +0000165 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100166 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Matteo Martincigh992d6dc2019-01-10 17:34:20 +0000167 virtual bool IsDepthwiseConvolutionSupported(
168 const TensorInfo& input,
169 const TensorInfo& output,
170 const DepthwiseConvolution2dDescriptor& descriptor,
171 const TensorInfo& weights,
172 const Optional<TensorInfo>& biases,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000173 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100174
Francis Murtaghb03043e2022-01-20 14:31:30 +0000175 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100176 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Nattapat Chaimanowonge4294fd2019-03-28 09:56:53 +0000177 virtual bool IsDequantizeSupported(const TensorInfo& input,
178 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000179 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Nattapat Chaimanowonge4294fd2019-03-28 09:56:53 +0000180
Francis Murtaghb03043e2022-01-20 14:31:30 +0000181 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100182 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000183 virtual bool IsDetectionPostProcessSupported(const TensorInfo& boxEncodings,
184 const TensorInfo& scores,
185 const TensorInfo& anchors,
186 const TensorInfo& detectionBoxes,
187 const TensorInfo& detectionClasses,
188 const TensorInfo& detectionScores,
189 const TensorInfo& numDetections,
190 const DetectionPostProcessDescriptor& descriptor,
Francis Murtaghbf354142022-08-12 13:54:17 +0100191 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Narumol Prangnawarat94dd5d82019-01-23 18:06:26 +0000192
Francis Murtaghb03043e2022-01-20 14:31:30 +0000193 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100194 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Pablo Tellof0bd6832019-04-26 17:58:13 +0100195 virtual bool IsDilatedDepthwiseConvolutionSupported(
196 const TensorInfo& input,
197 const TensorInfo& output,
198 const DepthwiseConvolution2dDescriptor& descriptor,
199 const TensorInfo& weights,
200 const Optional<TensorInfo>& biases,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000201 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Pablo Tellof0bd6832019-04-26 17:58:13 +0100202
Francis Murtaghb03043e2022-01-20 14:31:30 +0000203 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100204 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100205 virtual bool IsDivisionSupported(const TensorInfo& input0,
206 const TensorInfo& input1,
207 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000208 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100209
Francis Murtaghb03043e2022-01-20 14:31:30 +0000210 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100211 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
josh minor4a3c6102020-01-06 16:40:46 -0600212 virtual bool IsElementwiseUnarySupported(const TensorInfo& input,
213 const TensorInfo& output,
214 const ElementwiseUnaryDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000215 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
josh minor4a3c6102020-01-06 16:40:46 -0600216
Francis Murtaghb03043e2022-01-20 14:31:30 +0000217 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100218 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
arovir01537a0b62018-10-08 12:01:04 +0100219 virtual bool IsFakeQuantizationSupported(const TensorInfo& input,
220 const FakeQuantizationDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000221 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100222
Francis Murtaghb03043e2022-01-20 14:31:30 +0000223 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100224 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Ryan OSheaec6c6802020-06-05 17:17:06 +0100225 virtual bool IsFillSupported(const TensorInfo& input,
226 const TensorInfo& output,
227 const FillDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000228 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Ryan OSheaec6c6802020-06-05 17:17:06 +0100229
Francis Murtaghb03043e2022-01-20 14:31:30 +0000230 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100231 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
arovir01537a0b62018-10-08 12:01:04 +0100232 virtual bool IsFloorSupported(const TensorInfo& input,
233 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000234 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100235
Francis Murtaghb03043e2022-01-20 14:31:30 +0000236 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100237 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100238 virtual bool IsFullyConnectedSupported(const TensorInfo& input,
239 const TensorInfo& output,
240 const TensorInfo& weights,
241 const TensorInfo& biases,
242 const FullyConnectedDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000243 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100244
Francis Murtaghb03043e2022-01-20 14:31:30 +0000245 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100246 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Derek Lamberti61f54632019-03-25 16:28:44 +0000247 virtual bool IsGatherSupported(const TensorInfo& input0,
248 const TensorInfo& input1,
249 const TensorInfo& output,
Teresa Charlin52664732020-06-29 16:27:03 +0100250 const GatherDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000251 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Teresa Charlin52664732020-06-29 16:27:03 +0100252
Francis Murtaghb03043e2022-01-20 14:31:30 +0000253 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100254 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
arovir01537a0b62018-10-08 12:01:04 +0100255 virtual bool IsInputSupported(const TensorInfo& input,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000256 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
arovir01537a0b62018-10-08 12:01:04 +0100257
Francis Murtaghb03043e2022-01-20 14:31:30 +0000258 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100259 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Kevin Mayce5045a2019-10-02 14:07:47 +0100260 virtual bool IsInstanceNormalizationSupported(
261 const TensorInfo& input,
262 const TensorInfo& output,
263 const InstanceNormalizationDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000264 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Kevin Mayce5045a2019-10-02 14:07:47 +0100265
Francis Murtaghb03043e2022-01-20 14:31:30 +0000266 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100267 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100268 virtual bool IsL2NormalizationSupported(const TensorInfo& input,
269 const TensorInfo& output,
270 const L2NormalizationDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000271 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100272
Francis Murtaghb03043e2022-01-20 14:31:30 +0000273 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100274 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
James Conroyaba90cd2020-11-06 16:28:18 +0000275 virtual bool IsLogicalBinarySupported(const TensorInfo& input0,
276 const TensorInfo& input1,
277 const TensorInfo& output,
278 const LogicalBinaryDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000279 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
James Conroyaba90cd2020-11-06 16:28:18 +0000280
Francis Murtaghb03043e2022-01-20 14:31:30 +0000281 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100282 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
James Conroyaba90cd2020-11-06 16:28:18 +0000283 virtual bool IsLogicalUnarySupported(const TensorInfo& input,
284 const TensorInfo& output,
285 const ElementwiseUnaryDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000286 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
James Conroyaba90cd2020-11-06 16:28:18 +0000287
Francis Murtaghb03043e2022-01-20 14:31:30 +0000288 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100289 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Aron Virginas-Tarf982dea2019-10-11 14:07:53 +0100290 virtual bool IsLogSoftmaxSupported(const TensorInfo& input,
291 const TensorInfo& output,
292 const LogSoftmaxDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000293 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Aron Virginas-Tarf982dea2019-10-11 14:07:53 +0100294
Francis Murtaghb03043e2022-01-20 14:31:30 +0000295 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100296 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100297 virtual bool IsLstmSupported(const TensorInfo& input,
298 const TensorInfo& outputStateIn,
299 const TensorInfo& cellStateIn,
300 const TensorInfo& scratchBuffer,
301 const TensorInfo& outputStateOut,
302 const TensorInfo& cellStateOut,
303 const TensorInfo& output,
304 const LstmDescriptor& descriptor,
Jan Eilersd01a83c2019-07-03 18:20:40 +0100305 const LstmInputParamsInfo& paramsInfo,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000306 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100307
Francis Murtaghb03043e2022-01-20 14:31:30 +0000308 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100309 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +0000310 virtual bool IsMaximumSupported(const TensorInfo& input0,
311 const TensorInfo& input1,
312 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000313 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +0000314
Francis Murtaghb03043e2022-01-20 14:31:30 +0000315 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100316 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
arovir01537a0b62018-10-08 12:01:04 +0100317 virtual bool IsMeanSupported(const TensorInfo& input,
318 const TensorInfo& output,
319 const MeanDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000320 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Matteo Martincigh992d6dc2019-01-10 17:34:20 +0000321
Francis Murtaghb03043e2022-01-20 14:31:30 +0000322 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100323 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Matteo Martincigh992d6dc2019-01-10 17:34:20 +0000324 virtual bool IsMemCopySupported(const TensorInfo& input,
325 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000326 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
arovir01537a0b62018-10-08 12:01:04 +0100327
Francis Murtaghb03043e2022-01-20 14:31:30 +0000328 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100329 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Derek Lambertif674aa02019-08-01 15:56:25 +0100330 virtual bool IsMemImportSupported(const TensorInfo& input,
331 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000332 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Derek Lambertif674aa02019-08-01 15:56:25 +0100333
Francis Murtaghb03043e2022-01-20 14:31:30 +0000334 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100335 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Nattapat Chaimanowong1f886302019-04-05 13:37:19 +0100336 virtual bool IsMergeSupported(const TensorInfo& input0,
337 const TensorInfo& input1,
338 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000339 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Nattapat Chaimanowong1f886302019-04-05 13:37:19 +0100340
Francis Murtaghb03043e2022-01-20 14:31:30 +0000341 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100342 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
kevmay0190539692018-11-29 08:40:19 +0000343 virtual bool IsMinimumSupported(const TensorInfo& input0,
344 const TensorInfo& input1,
345 const TensorInfo& ouput,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000346 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
kevmay0190539692018-11-29 08:40:19 +0000347
Francis Murtaghb03043e2022-01-20 14:31:30 +0000348 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100349 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100350 virtual bool IsMultiplicationSupported(const TensorInfo& input0,
351 const TensorInfo& input1,
352 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000353 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100354
Francis Murtaghb03043e2022-01-20 14:31:30 +0000355 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100356 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100357 virtual bool IsNormalizationSupported(const TensorInfo& input,
358 const TensorInfo& output,
359 const NormalizationDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000360 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100361
Francis Murtaghb03043e2022-01-20 14:31:30 +0000362 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100363 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100364 virtual bool IsOutputSupported(const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000365 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100366
Francis Murtaghb03043e2022-01-20 14:31:30 +0000367 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100368 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
arovir01537a0b62018-10-08 12:01:04 +0100369 virtual bool IsPadSupported(const TensorInfo& input,
370 const TensorInfo& output,
371 const PadDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000372 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
arovir01537a0b62018-10-08 12:01:04 +0100373
Francis Murtaghb03043e2022-01-20 14:31:30 +0000374 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100375 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100376 virtual bool IsPermuteSupported(const TensorInfo& input,
377 const TensorInfo& output,
378 const PermuteDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000379 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100380
Francis Murtaghb03043e2022-01-20 14:31:30 +0000381 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100382 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100383 virtual bool IsPooling2dSupported(const TensorInfo& input,
384 const TensorInfo& output,
385 const Pooling2dDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000386 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100387
Francis Murtaghb03043e2022-01-20 14:31:30 +0000388 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100389 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Tamás Nyíri7b885b32021-10-26 14:47:57 +0100390 virtual bool IsPooling3dSupported(const TensorInfo& input,
391 const TensorInfo& output,
392 const Pooling3dDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000393 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Tamás Nyíri7b885b32021-10-26 14:47:57 +0100394
Francis Murtaghb03043e2022-01-20 14:31:30 +0000395 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100396 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Matteo Martincigh49124022019-01-11 13:25:59 +0000397 virtual bool IsPreCompiledSupported(const TensorInfo& input,
398 const PreCompiledDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000399 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Matteo Martincigh49124022019-01-11 13:25:59 +0000400
Francis Murtaghb03043e2022-01-20 14:31:30 +0000401 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100402 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Matteo Martincigh0e406ee2019-06-12 15:42:18 +0100403 virtual bool IsPreluSupported(const TensorInfo& input,
404 const TensorInfo& alpha,
405 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000406 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Matteo Martincigh0e406ee2019-06-12 15:42:18 +0100407
Francis Murtaghb03043e2022-01-20 14:31:30 +0000408 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100409 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Derek Lambertia9cca6a2019-03-25 15:41:58 +0000410 virtual bool IsQuantizeSupported(const TensorInfo& input,
411 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000412 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Derek Lambertia9cca6a2019-03-25 15:41:58 +0000413
Francis Murtaghb03043e2022-01-20 14:31:30 +0000414 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100415 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
James Conroy586a9aa2020-03-20 08:49:33 +0000416 virtual bool IsQLstmSupported(const TensorInfo& input,
417 const TensorInfo& previousOutputIn,
418 const TensorInfo& previousCellStateIn,
419 const TensorInfo& outputStateOut,
420 const TensorInfo& cellStateOut,
421 const TensorInfo& output,
422 const QLstmDescriptor& descriptor,
423 const LstmInputParamsInfo& paramsInfo,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000424 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
James Conroy586a9aa2020-03-20 08:49:33 +0000425
Francis Murtaghb03043e2022-01-20 14:31:30 +0000426 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100427 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
James Conroyee18dc82019-07-17 11:27:46 +0100428 virtual bool IsQuantizedLstmSupported(const TensorInfo& input,
429 const TensorInfo& previousCellStateIn,
430 const TensorInfo& previousOutputIn,
431 const TensorInfo& cellStateOut,
432 const TensorInfo& output,
433 const QuantizedLstmInputParamsInfo& paramsInfo,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000434 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
James Conroyee18dc82019-07-17 11:27:46 +0100435
Francis Murtaghb03043e2022-01-20 14:31:30 +0000436 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100437 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Finn Williams2605b232020-06-10 15:53:46 +0100438 virtual bool IsRankSupported(const TensorInfo& input,
439 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000440 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Finn Williams2605b232020-06-10 15:53:46 +0100441
Francis Murtaghb03043e2022-01-20 14:31:30 +0000442 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100443 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000444 virtual bool IsReduceSupported(const TensorInfo& input,
445 const TensorInfo& output,
446 const ReduceDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000447 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +0000448
Francis Murtaghb03043e2022-01-20 14:31:30 +0000449 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100450 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
arovir01537a0b62018-10-08 12:01:04 +0100451 virtual bool IsReshapeSupported(const TensorInfo& input,
Kevin Maya023c402019-12-12 17:28:05 +0000452 const TensorInfo& output,
Matteo Martincigh992d6dc2019-01-10 17:34:20 +0000453 const ReshapeDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000454 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
arovir01537a0b62018-10-08 12:01:04 +0100455
Francis Murtaghb03043e2022-01-20 14:31:30 +0000456 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100457 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Teresa Charlina9075df2019-06-27 15:41:57 +0100458 virtual bool IsResizeSupported(const TensorInfo& input,
459 const TensorInfo& output,
460 const ResizeDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000461 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Teresa Charlina9075df2019-06-27 15:41:57 +0100462
Francis Murtaghb03043e2022-01-20 14:31:30 +0000463 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100464 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Keith Davis3ae3f972021-05-21 16:33:48 +0100465 virtual bool IsShapeSupported(const TensorInfo& input,
466 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000467 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Keith Davis3ae3f972021-05-21 16:33:48 +0100468
Francis Murtaghb03043e2022-01-20 14:31:30 +0000469 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100470 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Aron Virginas-Tar636ab402019-09-16 14:27:45 +0100471 virtual bool IsSliceSupported(const TensorInfo& input,
472 const TensorInfo& output,
473 const SliceDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000474 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Aron Virginas-Tar636ab402019-09-16 14:27:45 +0100475
Francis Murtaghb03043e2022-01-20 14:31:30 +0000476 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100477 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100478 virtual bool IsSoftmaxSupported(const TensorInfo& input,
479 const TensorInfo& output,
480 const SoftmaxDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000481 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
David Becke97c6e02018-10-03 13:09:28 +0100482
Francis Murtaghb03043e2022-01-20 14:31:30 +0000483 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100484 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Derek Lamberti61f54632019-03-25 16:28:44 +0000485 virtual bool IsSpaceToBatchNdSupported(const TensorInfo& input,
486 const TensorInfo& output,
487 const SpaceToBatchNdDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000488 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Derek Lamberti61f54632019-03-25 16:28:44 +0000489
Francis Murtaghb03043e2022-01-20 14:31:30 +0000490 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100491 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Aron Virginas-Tar972af152019-06-11 14:14:03 +0100492 virtual bool IsSpaceToDepthSupported(const TensorInfo& input,
493 const TensorInfo& output,
494 const SpaceToDepthDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000495 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Aron Virginas-Tar972af152019-06-11 14:14:03 +0100496
Francis Murtaghb03043e2022-01-20 14:31:30 +0000497 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100498 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
David Becke97c6e02018-10-03 13:09:28 +0100499 virtual bool IsSplitterSupported(const TensorInfo& input,
Narumol Prangnawarat15eb5832019-05-20 15:31:05 +0100500 const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
501 const ViewsDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000502 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Narumol Prangnawarat15eb5832019-05-20 15:31:05 +0100503
Francis Murtaghb03043e2022-01-20 14:31:30 +0000504 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100505 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Matthew Jackson81e601c2019-07-11 12:07:09 +0100506 virtual bool IsStackSupported(const std::vector<const TensorInfo*>& inputs,
Matthew Jackson2b8c1da2019-07-04 14:59:16 +0100507 const TensorInfo& output,
508 const StackDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000509 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Matthew Jackson2b8c1da2019-07-04 14:59:16 +0100510
Francis Murtaghb03043e2022-01-20 14:31:30 +0000511 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100512 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Derek Lamberti013c3902019-10-21 10:46:16 +0100513 virtual bool IsStandInSupported(const std::vector<const TensorInfo*>& inputs,
514 const std::vector<const TensorInfo*>& outputs,
515 const StandInDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000516 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Derek Lamberti013c3902019-10-21 10:46:16 +0100517
Francis Murtaghb03043e2022-01-20 14:31:30 +0000518 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100519 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Conor Kennedy430b5d82018-11-14 15:28:28 +0000520 virtual bool IsStridedSliceSupported(const TensorInfo& input,
521 const TensorInfo& output,
522 const StridedSliceDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000523 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Conor Kennedy430b5d82018-11-14 15:28:28 +0000524
Francis Murtaghb03043e2022-01-20 14:31:30 +0000525 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100526 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
arovir01537a0b62018-10-08 12:01:04 +0100527 virtual bool IsSubtractionSupported(const TensorInfo& input0,
528 const TensorInfo& input1,
529 const TensorInfo& output,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000530 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Sadik Armaganeff363d2019-04-05 15:25:46 +0100531
Francis Murtaghb03043e2022-01-20 14:31:30 +0000532 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100533 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Sadik Armaganeff363d2019-04-05 15:25:46 +0100534 virtual bool IsSwitchSupported(const TensorInfo& input0,
535 const TensorInfo& input1,
536 const TensorInfo& output0,
537 const TensorInfo& output1,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000538 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Aron Virginas-Tar639fb042019-06-20 14:28:19 +0100539
Francis Murtaghb03043e2022-01-20 14:31:30 +0000540 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100541 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Aron Virginas-Tar639fb042019-06-20 14:28:19 +0100542 virtual bool IsTransposeConvolution2dSupported(
543 const TensorInfo& input,
544 const TensorInfo& output,
545 const TransposeConvolution2dDescriptor& descriptor,
546 const TensorInfo& weights,
547 const Optional<TensorInfo>& biases,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000548 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Aron Virginas-Tar639fb042019-06-20 14:28:19 +0100549
Francis Murtaghb03043e2022-01-20 14:31:30 +0000550 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100551 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Mike Kellyc9ea45a2020-02-28 18:11:58 +0000552 virtual bool IsTransposeSupported(const TensorInfo& input,
553 const TensorInfo& output,
554 const TransposeDescriptor& descriptor,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000555 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Mike Kellyc9ea45a2020-02-28 18:11:58 +0000556
Francis Murtaghb03043e2022-01-20 14:31:30 +0000557 ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
Jim Flynnb4efde52022-07-31 18:00:31 +0100558 "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
Narumol Prangnawarat8ed39ae2021-07-15 16:16:25 +0100559 virtual bool IsUnidirectionalSequenceLstmSupported(
560 const TensorInfo& input,
561 const TensorInfo& outputStateIn,
562 const TensorInfo& cellStateIn,
Mike Kelly12994962022-04-21 11:57:09 +0100563 const TensorInfo& outputStateOut,
564 const TensorInfo& cellStateOut,
Narumol Prangnawarat8ed39ae2021-07-15 16:16:25 +0100565 const TensorInfo& output,
Narumol Prangnawarat8ed39ae2021-07-15 16:16:25 +0100566 const LstmDescriptor& descriptor,
567 const LstmInputParamsInfo& paramsInfo,
Francis Murtaghb03043e2022-01-20 14:31:30 +0000568 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
Narumol Prangnawarat8ed39ae2021-07-15 16:16:25 +0100569
David Becke97c6e02018-10-03 13:09:28 +0100570}; // class ILayerSupport
571
David Beck3e9e1152018-10-17 14:17:50 +0100572using ILayerSupportSharedPtr = std::shared_ptr<ILayerSupport>;
573
David Becke97c6e02018-10-03 13:09:28 +0100574} // namespace armnn