xref: /aosp_15_r20/external/armnn/include/armnn/LayerSupport.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker #pragma once
6*89c4ff92SAndroid Build Coastguard Worker 
7*89c4ff92SAndroid Build Coastguard Worker #include <armnn/Deprecated.hpp>
8*89c4ff92SAndroid Build Coastguard Worker #include <armnn/DescriptorsFwd.hpp>
9*89c4ff92SAndroid Build Coastguard Worker #include <armnn/Optional.hpp>
10*89c4ff92SAndroid Build Coastguard Worker #include <armnn/Tensor.hpp>
11*89c4ff92SAndroid Build Coastguard Worker #include <armnn/Types.hpp>
12*89c4ff92SAndroid Build Coastguard Worker #include "LstmParams.hpp"
13*89c4ff92SAndroid Build Coastguard Worker #include "QuantizedLstmParams.hpp"
14*89c4ff92SAndroid Build Coastguard Worker 
15*89c4ff92SAndroid Build Coastguard Worker namespace armnn
16*89c4ff92SAndroid Build Coastguard Worker {
17*89c4ff92SAndroid Build Coastguard Worker 
18*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
19*89c4ff92SAndroid Build Coastguard Worker bool IsActivationSupported(const BackendId& backend,
20*89c4ff92SAndroid Build Coastguard Worker                            const TensorInfo& input,
21*89c4ff92SAndroid Build Coastguard Worker                            const TensorInfo& output,
22*89c4ff92SAndroid Build Coastguard Worker                            const ActivationDescriptor& descriptor,
23*89c4ff92SAndroid Build Coastguard Worker                            char* reasonIfUnsupported = nullptr,
24*89c4ff92SAndroid Build Coastguard Worker                            size_t reasonIfUnsupportedMaxLength = 1024);
25*89c4ff92SAndroid Build Coastguard Worker 
26*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
27*89c4ff92SAndroid Build Coastguard Worker bool IsAdditionSupported(const BackendId& backend,
28*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& input0,
29*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& input1,
30*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& output,
31*89c4ff92SAndroid Build Coastguard Worker                          char* reasonIfUnsupported = nullptr,
32*89c4ff92SAndroid Build Coastguard Worker                          size_t reasonIfUnsupportedMaxLength = 1024);
33*89c4ff92SAndroid Build Coastguard Worker 
34*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
35*89c4ff92SAndroid Build Coastguard Worker bool IsBatchNormalizationSupported(const BackendId& backend,
36*89c4ff92SAndroid Build Coastguard Worker                                    const TensorInfo& input,
37*89c4ff92SAndroid Build Coastguard Worker                                    const TensorInfo& output,
38*89c4ff92SAndroid Build Coastguard Worker                                    const TensorInfo& mean,
39*89c4ff92SAndroid Build Coastguard Worker                                    const TensorInfo& var,
40*89c4ff92SAndroid Build Coastguard Worker                                    const TensorInfo& beta,
41*89c4ff92SAndroid Build Coastguard Worker                                    const TensorInfo& gamma,
42*89c4ff92SAndroid Build Coastguard Worker                                    const BatchNormalizationDescriptor& descriptor,
43*89c4ff92SAndroid Build Coastguard Worker                                    char* reasonIfUnsupported = nullptr,
44*89c4ff92SAndroid Build Coastguard Worker                                    size_t reasonIfUnsupportedMaxLength = 1024);
45*89c4ff92SAndroid Build Coastguard Worker 
46*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
47*89c4ff92SAndroid Build Coastguard Worker bool IsBatchToSpaceNdSupported(const BackendId& backend,
48*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& input,
49*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& output,
50*89c4ff92SAndroid Build Coastguard Worker                                const BatchToSpaceNdDescriptor& descriptor,
51*89c4ff92SAndroid Build Coastguard Worker                                char* reasonIfUnsupported = nullptr,
52*89c4ff92SAndroid Build Coastguard Worker                                size_t reasonIfUnsupportedMaxLength = 1024);
53*89c4ff92SAndroid Build Coastguard Worker 
54*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
55*89c4ff92SAndroid Build Coastguard Worker bool IsConcatSupported(const BackendId& backend,
56*89c4ff92SAndroid Build Coastguard Worker                        const std::vector<const TensorInfo*> inputs,
57*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& output,
58*89c4ff92SAndroid Build Coastguard Worker                        const OriginsDescriptor& descriptor,
59*89c4ff92SAndroid Build Coastguard Worker                        char* reasonIfUnsupported = nullptr,
60*89c4ff92SAndroid Build Coastguard Worker                        size_t reasonIfUnsupportedMaxLength = 1024);
61*89c4ff92SAndroid Build Coastguard Worker 
62*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
63*89c4ff92SAndroid Build Coastguard Worker bool IsConstantSupported(const BackendId& backend,
64*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& output,
65*89c4ff92SAndroid Build Coastguard Worker                          char* reasonIfUnsupported = nullptr,
66*89c4ff92SAndroid Build Coastguard Worker                          size_t reasonIfUnsupportedMaxLength = 1024);
67*89c4ff92SAndroid Build Coastguard Worker 
68*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
69*89c4ff92SAndroid Build Coastguard Worker bool IsConvertFp16ToFp32Supported(const BackendId& backend,
70*89c4ff92SAndroid Build Coastguard Worker                                   const TensorInfo& input,
71*89c4ff92SAndroid Build Coastguard Worker                                   const TensorInfo& output,
72*89c4ff92SAndroid Build Coastguard Worker                                   char* reasonIfUnsupported = nullptr,
73*89c4ff92SAndroid Build Coastguard Worker                                   size_t reasonIfUnsupportedMaxLength = 1024);
74*89c4ff92SAndroid Build Coastguard Worker 
75*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
76*89c4ff92SAndroid Build Coastguard Worker bool IsConvertFp32ToFp16Supported(const BackendId& backend,
77*89c4ff92SAndroid Build Coastguard Worker                                   const TensorInfo& input,
78*89c4ff92SAndroid Build Coastguard Worker                                   const TensorInfo& output,
79*89c4ff92SAndroid Build Coastguard Worker                                   char* reasonIfUnsupported = nullptr,
80*89c4ff92SAndroid Build Coastguard Worker                                   size_t reasonIfUnsupportedMaxLength = 1024);
81*89c4ff92SAndroid Build Coastguard Worker 
82*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
83*89c4ff92SAndroid Build Coastguard Worker bool IsConvolution2dSupported(const BackendId& backend,
84*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& input,
85*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& output,
86*89c4ff92SAndroid Build Coastguard Worker                               const Convolution2dDescriptor& descriptor,
87*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& weights,
88*89c4ff92SAndroid Build Coastguard Worker                               const Optional<TensorInfo>& biases,
89*89c4ff92SAndroid Build Coastguard Worker                               char* reasonIfUnsupported = nullptr,
90*89c4ff92SAndroid Build Coastguard Worker                               size_t reasonIfUnsupportedMaxLength = 1024);
91*89c4ff92SAndroid Build Coastguard Worker 
92*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
93*89c4ff92SAndroid Build Coastguard Worker bool IsDebugSupported(const BackendId& backend,
94*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input,
95*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& output,
96*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
97*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
98*89c4ff92SAndroid Build Coastguard Worker 
99*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
100*89c4ff92SAndroid Build Coastguard Worker bool IsDepthwiseConvolutionSupported(const BackendId& backend,
101*89c4ff92SAndroid Build Coastguard Worker                                      const TensorInfo& input,
102*89c4ff92SAndroid Build Coastguard Worker                                      const TensorInfo& output,
103*89c4ff92SAndroid Build Coastguard Worker                                      const DepthwiseConvolution2dDescriptor& descriptor,
104*89c4ff92SAndroid Build Coastguard Worker                                      const TensorInfo& weights,
105*89c4ff92SAndroid Build Coastguard Worker                                      const Optional<TensorInfo>& biases,
106*89c4ff92SAndroid Build Coastguard Worker                                      char* reasonIfUnsupported = nullptr,
107*89c4ff92SAndroid Build Coastguard Worker                                      size_t reasonIfUnsupportedMaxLength = 1024);
108*89c4ff92SAndroid Build Coastguard Worker 
109*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
110*89c4ff92SAndroid Build Coastguard Worker bool IsDequantizeSupported(const BackendId& backend,
111*89c4ff92SAndroid Build Coastguard Worker                            const TensorInfo& input,
112*89c4ff92SAndroid Build Coastguard Worker                            const TensorInfo& output,
113*89c4ff92SAndroid Build Coastguard Worker                            char* reasonIfUnsupported = nullptr,
114*89c4ff92SAndroid Build Coastguard Worker                            size_t reasonIfUnsupportedMaxLength = 1024);
115*89c4ff92SAndroid Build Coastguard Worker 
116*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
117*89c4ff92SAndroid Build Coastguard Worker bool IsDivisionSupported(const BackendId& backend,
118*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& input0,
119*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& input1,
120*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& output,
121*89c4ff92SAndroid Build Coastguard Worker                          char* reasonIfUnsupported = nullptr,
122*89c4ff92SAndroid Build Coastguard Worker                          size_t reasonIfUnsupportedMaxLength = 1024);
123*89c4ff92SAndroid Build Coastguard Worker 
124*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
125*89c4ff92SAndroid Build Coastguard Worker bool IsEqualSupported(const BackendId& backend,
126*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input0,
127*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input1,
128*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& output,
129*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
130*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
131*89c4ff92SAndroid Build Coastguard Worker 
132*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
133*89c4ff92SAndroid Build Coastguard Worker bool IsFakeQuantizationSupported(const BackendId& backend,
134*89c4ff92SAndroid Build Coastguard Worker                                  const TensorInfo& input,
135*89c4ff92SAndroid Build Coastguard Worker                                  const FakeQuantizationDescriptor& descriptor,
136*89c4ff92SAndroid Build Coastguard Worker                                  char* reasonIfUnsupported = nullptr,
137*89c4ff92SAndroid Build Coastguard Worker                                  size_t reasonIfUnsupportedMaxLength = 1024);
138*89c4ff92SAndroid Build Coastguard Worker 
139*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
140*89c4ff92SAndroid Build Coastguard Worker bool IsFloorSupported(const BackendId& backend,
141*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input,
142*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& output,
143*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
144*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
145*89c4ff92SAndroid Build Coastguard Worker 
146*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
147*89c4ff92SAndroid Build Coastguard Worker bool IsFullyConnectedSupported(const BackendId& backend,
148*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& input,
149*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& output,
150*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& weights,
151*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& biases,
152*89c4ff92SAndroid Build Coastguard Worker                                const FullyConnectedDescriptor& descriptor,
153*89c4ff92SAndroid Build Coastguard Worker                                char* reasonIfUnsupported = nullptr,
154*89c4ff92SAndroid Build Coastguard Worker                                size_t reasonIfUnsupportedMaxLength = 1024);
155*89c4ff92SAndroid Build Coastguard Worker 
156*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
157*89c4ff92SAndroid Build Coastguard Worker bool IsGreaterSupported(const BackendId& backend,
158*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input0,
159*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input1,
160*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& output,
161*89c4ff92SAndroid Build Coastguard Worker                         char* reasonIfUnsupported = nullptr,
162*89c4ff92SAndroid Build Coastguard Worker                         size_t reasonIfUnsupportedMaxLength = 1024);
163*89c4ff92SAndroid Build Coastguard Worker 
164*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
165*89c4ff92SAndroid Build Coastguard Worker bool IsInputSupported(const BackendId& backend,
166*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input,
167*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
168*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
169*89c4ff92SAndroid Build Coastguard Worker 
170*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
171*89c4ff92SAndroid Build Coastguard Worker bool IsL2NormalizationSupported(const BackendId& backend,
172*89c4ff92SAndroid Build Coastguard Worker                                 const TensorInfo& input,
173*89c4ff92SAndroid Build Coastguard Worker                                 const TensorInfo& output,
174*89c4ff92SAndroid Build Coastguard Worker                                 const L2NormalizationDescriptor& descriptor,
175*89c4ff92SAndroid Build Coastguard Worker                                 char* reasonIfUnsupported = nullptr,
176*89c4ff92SAndroid Build Coastguard Worker                                 size_t reasonIfUnsupportedMaxLength = 1024);
177*89c4ff92SAndroid Build Coastguard Worker 
178*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
179*89c4ff92SAndroid Build Coastguard Worker bool IsLstmSupported(const BackendId& backend, const TensorInfo& input, const TensorInfo& outputStateIn,
180*89c4ff92SAndroid Build Coastguard Worker                      const TensorInfo& cellStateIn, const TensorInfo& scratchBuffer,
181*89c4ff92SAndroid Build Coastguard Worker                      const TensorInfo& outputStateOut, const TensorInfo& cellStateOut,
182*89c4ff92SAndroid Build Coastguard Worker                      const TensorInfo& output, const LstmDescriptor& descriptor,
183*89c4ff92SAndroid Build Coastguard Worker                      const LstmInputParamsInfo& paramsInfo, char* reasonIfUnsupported = nullptr,
184*89c4ff92SAndroid Build Coastguard Worker                      size_t reasonIfUnsupportedMaxLength = 1024);
185*89c4ff92SAndroid Build Coastguard Worker 
186*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
187*89c4ff92SAndroid Build Coastguard Worker bool IsMaximumSupported(const BackendId& backend,
188*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input0,
189*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input1,
190*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& output,
191*89c4ff92SAndroid Build Coastguard Worker                         char* reasonIfUnSupported = nullptr,
192*89c4ff92SAndroid Build Coastguard Worker                         size_t reasonIfUnSupportedMaxLength = 0);
193*89c4ff92SAndroid Build Coastguard Worker 
194*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
195*89c4ff92SAndroid Build Coastguard Worker bool IsMeanSupported(const BackendId& backend,
196*89c4ff92SAndroid Build Coastguard Worker                      const TensorInfo& input,
197*89c4ff92SAndroid Build Coastguard Worker                      const TensorInfo& output,
198*89c4ff92SAndroid Build Coastguard Worker                      const MeanDescriptor& descriptor,
199*89c4ff92SAndroid Build Coastguard Worker                      char* reasonIfUnsupported = nullptr,
200*89c4ff92SAndroid Build Coastguard Worker                      size_t reasonIfUnsupportedMaxLength = 1024);
201*89c4ff92SAndroid Build Coastguard Worker 
202*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
203*89c4ff92SAndroid Build Coastguard Worker bool IsMemCopySupported(const BackendId& backend,
204*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input,
205*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& output,
206*89c4ff92SAndroid Build Coastguard Worker                         char* reasonIfUnsupported = nullptr,
207*89c4ff92SAndroid Build Coastguard Worker                         size_t reasonIfUnsupportedMaxLength = 1024);
208*89c4ff92SAndroid Build Coastguard Worker 
209*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
210*89c4ff92SAndroid Build Coastguard Worker bool IsMergeSupported(const BackendId& backend,
211*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input0,
212*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input1,
213*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& output,
214*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
215*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
216*89c4ff92SAndroid Build Coastguard Worker 
217*89c4ff92SAndroid Build Coastguard Worker 
218*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
219*89c4ff92SAndroid Build Coastguard Worker bool IsMinimumSupported(const BackendId& backend,
220*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input0,
221*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input1,
222*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& output,
223*89c4ff92SAndroid Build Coastguard Worker                         char* reasonIfUnsupported = nullptr,
224*89c4ff92SAndroid Build Coastguard Worker                         size_t reasonIfUnsupportedMaxLength = 1024);
225*89c4ff92SAndroid Build Coastguard Worker 
226*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
227*89c4ff92SAndroid Build Coastguard Worker bool IsMultiplicationSupported(const BackendId& backend,
228*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& input0,
229*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& input1,
230*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& output,
231*89c4ff92SAndroid Build Coastguard Worker                                char* reasonIfUnsupported = nullptr,
232*89c4ff92SAndroid Build Coastguard Worker                                size_t reasonIfUnsupportedMaxLength = 1024);
233*89c4ff92SAndroid Build Coastguard Worker 
234*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
235*89c4ff92SAndroid Build Coastguard Worker bool IsNormalizationSupported(const BackendId& backend,
236*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& input,
237*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& output,
238*89c4ff92SAndroid Build Coastguard Worker                               const NormalizationDescriptor& descriptor,
239*89c4ff92SAndroid Build Coastguard Worker                               char* reasonIfUnsupported = nullptr,
240*89c4ff92SAndroid Build Coastguard Worker                               size_t reasonIfUnsupportedMaxLength = 1024);
241*89c4ff92SAndroid Build Coastguard Worker 
242*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
243*89c4ff92SAndroid Build Coastguard Worker bool IsOutputSupported(const BackendId& backend,
244*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& output,
245*89c4ff92SAndroid Build Coastguard Worker                        char* reasonIfUnsupported = nullptr,
246*89c4ff92SAndroid Build Coastguard Worker                        size_t reasonIfUnsupportedMaxLength = 1024);
247*89c4ff92SAndroid Build Coastguard Worker 
248*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
249*89c4ff92SAndroid Build Coastguard Worker bool IsPadSupported(const BackendId& backend,
250*89c4ff92SAndroid Build Coastguard Worker                      const TensorInfo& input,
251*89c4ff92SAndroid Build Coastguard Worker                      const TensorInfo& output,
252*89c4ff92SAndroid Build Coastguard Worker                      const PadDescriptor& descriptor,
253*89c4ff92SAndroid Build Coastguard Worker                      char* reasonIfUnsupported = nullptr,
254*89c4ff92SAndroid Build Coastguard Worker                      size_t reasonIfUnsupportedMaxLength = 1024);
255*89c4ff92SAndroid Build Coastguard Worker 
256*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
257*89c4ff92SAndroid Build Coastguard Worker bool IsPermuteSupported(const BackendId& backend,
258*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input,
259*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& output,
260*89c4ff92SAndroid Build Coastguard Worker                         const PermuteDescriptor& descriptor,
261*89c4ff92SAndroid Build Coastguard Worker                         char* reasonIfUnsupported = nullptr,
262*89c4ff92SAndroid Build Coastguard Worker                         size_t reasonIfUnsupportedMaxLength = 1024);
263*89c4ff92SAndroid Build Coastguard Worker 
264*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
265*89c4ff92SAndroid Build Coastguard Worker bool IsPreCompiledSupported(const BackendId& backend,
266*89c4ff92SAndroid Build Coastguard Worker                             const TensorInfo& input,
267*89c4ff92SAndroid Build Coastguard Worker                             char* reasonIfUnsupported = nullptr,
268*89c4ff92SAndroid Build Coastguard Worker                             size_t reasonIfUnsupportedMaxLength = 1024);
269*89c4ff92SAndroid Build Coastguard Worker 
270*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
271*89c4ff92SAndroid Build Coastguard Worker bool IsPreluSupported(const BackendId& backend,
272*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input,
273*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& alpha,
274*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& output,
275*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
276*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
277*89c4ff92SAndroid Build Coastguard Worker 
278*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
279*89c4ff92SAndroid Build Coastguard Worker bool IsPooling2dSupported(const BackendId& backend,
280*89c4ff92SAndroid Build Coastguard Worker                           const TensorInfo& input,
281*89c4ff92SAndroid Build Coastguard Worker                           const TensorInfo& output,
282*89c4ff92SAndroid Build Coastguard Worker                           const Pooling2dDescriptor& descriptor,
283*89c4ff92SAndroid Build Coastguard Worker                           char* reasonIfUnsupported = nullptr,
284*89c4ff92SAndroid Build Coastguard Worker                           size_t reasonIfUnsupportedMaxLength = 1024);
285*89c4ff92SAndroid Build Coastguard Worker 
286*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
287*89c4ff92SAndroid Build Coastguard Worker bool IsQuantizedLstmSupported(const BackendId& backend,
288*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& input,
289*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& previousCellStateIn,
290*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& previousOutputIn,
291*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& cellStateOut,
292*89c4ff92SAndroid Build Coastguard Worker                               const TensorInfo& output,
293*89c4ff92SAndroid Build Coastguard Worker                               const QuantizedLstmInputParamsInfo& paramsInfo,
294*89c4ff92SAndroid Build Coastguard Worker                               char* reasonIfUnsupported = nullptr,
295*89c4ff92SAndroid Build Coastguard Worker                               size_t reasonIfUnsupportedMaxLength = 1024);
296*89c4ff92SAndroid Build Coastguard Worker 
297*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
298*89c4ff92SAndroid Build Coastguard Worker bool IsReduceSupported(const BackendId& backend,
299*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& input,
300*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& output,
301*89c4ff92SAndroid Build Coastguard Worker                        const ReduceDescriptor& descriptor,
302*89c4ff92SAndroid Build Coastguard Worker                        char* reasonIfUnsupported = nullptr,
303*89c4ff92SAndroid Build Coastguard Worker                        size_t reasonIfUnsupportedMaxLength = 1024);
304*89c4ff92SAndroid Build Coastguard Worker 
305*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
306*89c4ff92SAndroid Build Coastguard Worker bool IsReshapeSupported(const BackendId& backend,
307*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input,
308*89c4ff92SAndroid Build Coastguard Worker                         const ReshapeDescriptor& descriptor,
309*89c4ff92SAndroid Build Coastguard Worker                         char* reasonIfUnsupported = nullptr,
310*89c4ff92SAndroid Build Coastguard Worker                         size_t reasonIfUnsupportedMaxLength = 1024);
311*89c4ff92SAndroid Build Coastguard Worker 
312*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
313*89c4ff92SAndroid Build Coastguard Worker bool IsResizeSupported(const BackendId& backend,
314*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& input,
315*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& output,
316*89c4ff92SAndroid Build Coastguard Worker                        const ResizeDescriptor& descriptor,
317*89c4ff92SAndroid Build Coastguard Worker                        char* reasonIfUnsupported = nullptr,
318*89c4ff92SAndroid Build Coastguard Worker                        size_t reasonIfUnsupportedMaxLength = 1024);
319*89c4ff92SAndroid Build Coastguard Worker 
320*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
321*89c4ff92SAndroid Build Coastguard Worker bool IsRsqrtSupported(const BackendId& backend,
322*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& input,
323*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& output,
324*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
325*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
326*89c4ff92SAndroid Build Coastguard Worker 
327*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
328*89c4ff92SAndroid Build Coastguard Worker bool IsSoftmaxSupported(const BackendId& backend,
329*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& input,
330*89c4ff92SAndroid Build Coastguard Worker                         const TensorInfo& output,
331*89c4ff92SAndroid Build Coastguard Worker                         const SoftmaxDescriptor& descriptor,
332*89c4ff92SAndroid Build Coastguard Worker                         char* reasonIfUnsupported = nullptr,
333*89c4ff92SAndroid Build Coastguard Worker                         size_t reasonIfUnsupportedMaxLength = 1024);
334*89c4ff92SAndroid Build Coastguard Worker 
335*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
336*89c4ff92SAndroid Build Coastguard Worker bool IsSpaceToBatchNdSupported(const BackendId& backend,
337*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& input,
338*89c4ff92SAndroid Build Coastguard Worker                                const TensorInfo& output,
339*89c4ff92SAndroid Build Coastguard Worker                                const SpaceToBatchNdDescriptor& descriptor,
340*89c4ff92SAndroid Build Coastguard Worker                                char* reasonIfUnsupported = nullptr,
341*89c4ff92SAndroid Build Coastguard Worker                                size_t reasonIfUnsupportedMaxLength = 1024);
342*89c4ff92SAndroid Build Coastguard Worker 
343*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
344*89c4ff92SAndroid Build Coastguard Worker bool IsSpaceToDepthSupported(const BackendId& backend,
345*89c4ff92SAndroid Build Coastguard Worker                              const TensorInfo& input,
346*89c4ff92SAndroid Build Coastguard Worker                              const TensorInfo& output,
347*89c4ff92SAndroid Build Coastguard Worker                              const SpaceToDepthDescriptor& descriptor,
348*89c4ff92SAndroid Build Coastguard Worker                              char* reasonIfUnsupported = nullptr,
349*89c4ff92SAndroid Build Coastguard Worker                              size_t reasonIfUnsupportedMaxLength = 1024);
350*89c4ff92SAndroid Build Coastguard Worker 
351*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
352*89c4ff92SAndroid Build Coastguard Worker bool IsSplitterSupported(const BackendId& backend,
353*89c4ff92SAndroid Build Coastguard Worker                          const TensorInfo& input,
354*89c4ff92SAndroid Build Coastguard Worker                          const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
355*89c4ff92SAndroid Build Coastguard Worker                          const ViewsDescriptor& descriptor,
356*89c4ff92SAndroid Build Coastguard Worker                          char* reasonIfUnsupported = nullptr,
357*89c4ff92SAndroid Build Coastguard Worker                          size_t reasonIfUnsupportedMaxLength = 1024);
358*89c4ff92SAndroid Build Coastguard Worker 
359*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
360*89c4ff92SAndroid Build Coastguard Worker bool IsStackSupported(const BackendId& backend,
361*89c4ff92SAndroid Build Coastguard Worker                       const std::vector<const TensorInfo*> inputs,
362*89c4ff92SAndroid Build Coastguard Worker                       const TensorInfo& output,
363*89c4ff92SAndroid Build Coastguard Worker                       const StackDescriptor& descriptor,
364*89c4ff92SAndroid Build Coastguard Worker                       char* reasonIfUnsupported = nullptr,
365*89c4ff92SAndroid Build Coastguard Worker                       size_t reasonIfUnsupportedMaxLength = 1024);
366*89c4ff92SAndroid Build Coastguard Worker 
367*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
368*89c4ff92SAndroid Build Coastguard Worker bool IsStridedSliceSupported(const BackendId& backend,
369*89c4ff92SAndroid Build Coastguard Worker                              const TensorInfo& input,
370*89c4ff92SAndroid Build Coastguard Worker                              const TensorInfo& output,
371*89c4ff92SAndroid Build Coastguard Worker                              const StridedSliceDescriptor& descriptor,
372*89c4ff92SAndroid Build Coastguard Worker                              char* reasonIfUnsupported = nullptr,
373*89c4ff92SAndroid Build Coastguard Worker                              size_t reasonIfUnsupportedMaxLength = 1024);
374*89c4ff92SAndroid Build Coastguard Worker 
375*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
376*89c4ff92SAndroid Build Coastguard Worker bool IsSubtractionSupported(const BackendId& backend,
377*89c4ff92SAndroid Build Coastguard Worker                             const TensorInfo& input0,
378*89c4ff92SAndroid Build Coastguard Worker                             const TensorInfo& input1,
379*89c4ff92SAndroid Build Coastguard Worker                             const TensorInfo& output,
380*89c4ff92SAndroid Build Coastguard Worker                             char* reasonIfUnsupported = nullptr,
381*89c4ff92SAndroid Build Coastguard Worker                             size_t reasonIfUnsupportedMaxLength = 1024);
382*89c4ff92SAndroid Build Coastguard Worker 
383*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
384*89c4ff92SAndroid Build Coastguard Worker bool IsSwitchSupported(const BackendId& backend,
385*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& input0,
386*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& input1,
387*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& output0,
388*89c4ff92SAndroid Build Coastguard Worker                        const TensorInfo& output1,
389*89c4ff92SAndroid Build Coastguard Worker                        char* reasonIfUnsupported = nullptr,
390*89c4ff92SAndroid Build Coastguard Worker                        size_t reasonIfUnsupportedMaxLength = 1024);
391*89c4ff92SAndroid Build Coastguard Worker 
392*89c4ff92SAndroid Build Coastguard Worker /// Deprecated in favor of IBackend and ILayerSupport interfaces
393*89c4ff92SAndroid Build Coastguard Worker bool IsTransposeConvolution2dSupported(const BackendId& backend,
394*89c4ff92SAndroid Build Coastguard Worker                                        const TensorInfo& input,
395*89c4ff92SAndroid Build Coastguard Worker                                        const TensorInfo& output,
396*89c4ff92SAndroid Build Coastguard Worker                                        const TransposeConvolution2dDescriptor& descriptor,
397*89c4ff92SAndroid Build Coastguard Worker                                        const TensorInfo& weights,
398*89c4ff92SAndroid Build Coastguard Worker                                        const Optional<TensorInfo>& biases,
399*89c4ff92SAndroid Build Coastguard Worker                                        char* reasonIfUnsupported = nullptr,
400*89c4ff92SAndroid Build Coastguard Worker                                        size_t reasonIfUnsupportedMaxLength = 1024);
401*89c4ff92SAndroid Build Coastguard Worker 
402*89c4ff92SAndroid Build Coastguard Worker }
403