blob: 05d4114382837420adc937572bc2d81bf972269e [file] [log] [blame]
Ryan OShea3c2795a2022-11-03 17:51:52 +00001//
David Monahand7fca092023-01-12 14:53:34 +00002// Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved.
Ryan OShea3c2795a2022-11-03 17:51:52 +00003// SPDX-License-Identifier: MIT
4//
5
6#include "backendsCommon/test/EndToEndTestImpl.hpp"
7
8#include "backendsCommon/test/AdditionEndToEndTestImpl.hpp"
Matthew Sloyanc5fe6e72022-11-25 16:10:00 +00009#include "backendsCommon/test/Convolution2dEndToEndTestImpl.hpp"
Kevin May5b58e312022-12-15 10:15:21 +000010#include "backendsCommon/test/ConcatEndToEndTestImpl.hpp"
Tianle Cheng7790dc62023-12-12 13:52:22 +000011#include "backendsCommon/test/ElementwiseBinaryEndToEndTestImpl.hpp"
12#include "backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp"
Nikhil Raj9a339462022-12-05 11:24:35 +000013#include "backendsCommon/test/MultiplicationEndToEndTestImpl.hpp"
Cathal Corbettbd18eab2022-11-15 12:56:16 +000014#include "backendsCommon/test/Pooling2dEndToEndTestImpl.hpp"
Cathal Corbettb30e6552022-12-07 11:50:50 +000015#include "backendsCommon/test/ReshapeEndToEndTestImpl.hpp"
Teresa Charlince655882023-11-21 15:44:13 +000016#include "backendsCommon/test/ResizeEndToEndTestImpl.hpp"
Cathal Corbett3b9acd52022-12-09 12:17:27 +000017#include "backendsCommon/test/SliceEndToEndTestImpl.hpp"
Kevin May1bea6be2023-12-12 11:18:46 +000018#include "backendsCommon/test/SplitterEndToEndTestImpl.hpp"
Nikhil Raj9a339462022-12-05 11:24:35 +000019#include "backendsCommon/test/SubtractionEndToEndTestImpl.hpp"
Matthew Sloyanfc9d5e72022-12-08 13:38:23 +000020#include "backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp"
Cathal Corbett0bb096d2022-12-22 13:09:38 +000021#include "backendsCommon/test/TransposeEndToEndTestImpl.hpp"
Ryan OShea3c2795a2022-11-03 17:51:52 +000022
23#include <doctest/doctest.h>
24
25TEST_SUITE("TosaRefEndToEnd")
26{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000027std::vector<BackendId> tosaDefaultBackends = { "TosaRef" };
Ryan OShea3c2795a2022-11-03 17:51:52 +000028
29// Addition
Cathal Corbettbd18eab2022-11-15 12:56:16 +000030TEST_CASE("TosaRefAdditionEndtoEndTestFloat32")
Ryan OShea3c2795a2022-11-03 17:51:52 +000031{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000032 AdditionEndToEnd<DataType::Float32>(tosaDefaultBackends);
Ryan OShea3c2795a2022-11-03 17:51:52 +000033}
34
Cathal Corbettbd18eab2022-11-15 12:56:16 +000035TEST_CASE("TosaRefAdditionEndtoEndTestInt32")
Matthew Sloyan2523b792022-11-14 10:18:01 +000036{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000037 AdditionEndToEnd<DataType::Signed32>(tosaDefaultBackends);
Matthew Sloyan2523b792022-11-14 10:18:01 +000038}
39
Cathal Corbettbd18eab2022-11-15 12:56:16 +000040TEST_CASE("TosaRefAdditionEndtoEndTestFloat16")
Matthew Sloyan2523b792022-11-14 10:18:01 +000041{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000042 AdditionEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
43}
44
Kevin May5b58e312022-12-15 10:15:21 +000045// Concat
46TEST_CASE("TosaRefConcatEndToEndDim0TestFloat32")
47{
48 ConcatDim0EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
49}
50
51TEST_CASE("TosaRefConcatEndToEndDim0TestInt32")
52{
53 ConcatDim0EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
54}
55
56TEST_CASE("TosaRefConcatEndToEndDim1TestFloat32")
57{
58 ConcatDim1EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
59}
60
61TEST_CASE("TosaRefConcatEndToEndDim1TestInt32")
62{
63 ConcatDim1EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
64}
65
66TEST_CASE("TosaRefConcatEndToEndDim2TestFloat32")
67{
68 ConcatDim2EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
69}
70
71TEST_CASE("TosaRefConcatEndToEndDim2TestInt32")
72{
73 ConcatDim2EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
74}
75
76TEST_CASE("TosaRefConcatEndToEndDim3TestFloat32")
77{
78 ConcatDim3EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
79}
80
81TEST_CASE("TosaRefConcatEndToEndDim3TestInt32")
82{
83 ConcatDim3EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
84}
85
Matthew Sloyanc5fe6e72022-11-25 16:10:00 +000086// Conv2d
87TEST_CASE("TosaRefConv2dEndtoEndTestFloat32")
88{
89 Convolution2dEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC);
90}
91
92TEST_CASE("TosaRefConv2dWithoutBiasEndtoEndTestFloat32")
93{
94 Convolution2dEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, false);
95}
96
Cathal Corbettbd18eab2022-11-15 12:56:16 +000097// Average Pool 2D
98TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat32")
99{
100 AvgPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends);
101}
102
103TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat16")
104{
105 AvgPool2dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
106}
107
108TEST_CASE("TosaRefAvgPool2DIgnoreValueEndtoEndTestFloat32")
109{
110 AvgPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends, PaddingMethod::IgnoreValue);
Matthew Sloyan2523b792022-11-14 10:18:01 +0000111}
112
Tianle Cheng7790dc62023-12-12 13:52:22 +0000113// Maximum
114TEST_CASE("TosaRefMaximumEndtoEndTestInt8")
115{
116 ElementwiseBinarySimpleNoReshapeEndToEnd<DataType::Signed32>(tosaDefaultBackends,
117 armnn::BinaryOperation::Maximum);
118}
119
Teresa Charlin3fbad942022-12-15 10:35:37 +0000120// Max Pool 2D
121TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat32")
122{
123 MaxPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends);
124}
125
126TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat16")
127{
128 MaxPool2dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
129}
130
131TEST_CASE("TosaRefMaxPool2DIgnoreValueEndtoEndTestFloat32")
132{
133 MaxPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends, PaddingMethod::IgnoreValue);
134}
135
Cathal Corbettb30e6552022-12-07 11:50:50 +0000136// Reshape
137TEST_CASE("TosaRefReshapeEndtoEndTestFloat32")
138{
139 ReshapeEndToEnd<DataType::Float32>(tosaDefaultBackends);
140}
141
142TEST_CASE("TosaRefReshapeEndtoEndTestInt32")
143{
144 ReshapeEndToEnd<DataType::Signed32>(tosaDefaultBackends);
145}
146
147TEST_CASE("TosaRefReshapeEndtoEndTestFloat16")
148{
149 ReshapeEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
150}
151
David Monahand7fca092023-01-12 14:53:34 +0000152TEST_CASE("TosaRefRsqrtEndtoEndTestFloat32")
153{
154 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends,
155 UnaryOperation::Rsqrt);
156}
157
Teresa Charlince655882023-11-21 15:44:13 +0000158// Resize
159TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32AlignCornersNhwcTest")
160{
161 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
162}
163
164TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32HalfPixelNhwcTest")
165{
166 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
167}
168
169TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16AlignCornersNhwcTest")
170{
171 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
172}
173
174TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16HalfPixelNhwcTest")
175{
176 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
177}
178
179TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8AlignCornersNhwcTest")
180{
181 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
182}
183
184TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8HalfPixelNhwcTest")
185{
186 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
187}
188
189TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16AlignCornersNhwcTest")
190{
191 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
192}
193
194TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16HalfPixelNhwcTest")
195{
196 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
197}
198
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000199// Slice
200TEST_CASE("TosaRefSliceEndtoEndTestFloat32")
201{
202 SliceEndToEnd<DataType::Float32>(tosaDefaultBackends);
203}
204
205TEST_CASE("TosaRefSliceEndtoEndTestInt32")
206{
207 SliceEndToEnd<DataType::Signed32>(tosaDefaultBackends);
208}
209
210TEST_CASE("TosaRefSliceEndtoEndTestFloat16")
211{
212 SliceEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
213}
Kevin May1bea6be2023-12-12 11:18:46 +0000214
215// Split
216TEST_CASE("TosaRefSplit1dEndtoEndTestBoolean")
217{
218 Splitter1dEndToEnd<DataType::Boolean>(tosaDefaultBackends);
219}
220
221TEST_CASE("TosaRefSplit1dEndtoEndTestInt8")
222{
223 Splitter1dEndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
224}
225
226TEST_CASE("TosaRefSplit1dEndtoEndTestSigned16")
227{
228 Splitter1dEndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
229}
230
231TEST_CASE("TosaRefSplit1dEndtoEndTestInt32")
232{
233 Splitter1dEndToEnd<DataType::Signed32>(tosaDefaultBackends);
234}
235
236TEST_CASE("TosaRefSplit1dEndtoEndTestFloat16")
237{
238 Splitter1dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
239}
240
241TEST_CASE("TosaRefSplit1dEndToEndFloat32")
242{
243 Splitter1dEndToEnd<DataType::Float32>(tosaDefaultBackends);
244}
245
246TEST_CASE("TosaRefSplit2dDim0EndtoEndTestFloat32")
247{
248 Splitter2dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
249}
250
251TEST_CASE("TosaRefSplit2dDim1EndtoEndTestFloat32")
252{
253 Splitter2dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
254}
255
256TEST_CASE("TosaRefSplit3dDim0EndtoEndTestFloat32")
257{
258 Splitter3dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
259}
260
261TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat32")
262{
263 Splitter3dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
264}
265
266TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat16")
267{
268 Splitter3dDim1EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
269}
270
271TEST_CASE("TosaRefSplit3dDim1EndtoEndTestBoolean")
272{
273 Splitter3dDim1EndToEnd<DataType::Boolean>(tosaDefaultBackends);
274}
275
276TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt8")
277{
278 Splitter3dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
279}
280
281TEST_CASE("TosaRefSplit3dDim1EndtoEndTestSigned16")
282{
283 Splitter3dDim1EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
284}
285
286TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt32")
287{
288 Splitter3dDim1EndToEnd<DataType::Signed32>(tosaDefaultBackends);
289}
290
291TEST_CASE("TosaRefSplit3dDim2EndtoEndTestInt8")
292{
293 Splitter3dDim2EndToEnd<DataType::QAsymmS8>(tosaDefaultBackends);
294}
295
296TEST_CASE("TosaRefSplit4dDim0EndtoEndTestInt8")
297{
298 Splitter4dDim0EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
299}
300
301TEST_CASE("TosaRefSplit4dDim1EndtoEndTestInt8")
302{
303 Splitter4dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
304}
305
306TEST_CASE("TosaRefSplit4dDim2EndtoEndTestBoolean")
307{
308 Splitter4dDim2EndToEnd<DataType::Boolean>(tosaDefaultBackends);
309}
310
311TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt8")
312{
313 Splitter4dDim2EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
314}
315
316TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt16")
317{
318 Splitter4dDim2EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
319}
320
321TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt32")
322{
323 Splitter4dDim2EndToEnd<DataType::Signed32>(tosaDefaultBackends);
324}
325
326TEST_CASE("TosaRefSplit4dDim2EndtoEndTestFloat16")
327{
328 Splitter4dDim2EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
329}
330
331TEST_CASE("TosaRefSplit4dDim3EndtoEndTestInt8")
332{
333 Splitter4dDim3EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
334}
335
336// Subtraction
Nikhil Raj9a339462022-12-05 11:24:35 +0000337TEST_CASE("TosaRefSubtractionEndtoEndTestFloat32")
338{
339 SubtractionEndToEnd<DataType::Float32>(tosaDefaultBackends);
340}
341
342TEST_CASE("TosaRefSubtractionEndtoEndTestInt32")
343{
344 SubtractionEndToEnd<DataType::Signed32>(tosaDefaultBackends);
345}
346
347TEST_CASE("TosaRefSubtractionEndtoEndTestFloat16")
348{
349 SubtractionEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
350}
351
352TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat32")
353{
354 MultiplicationEndToEnd<DataType::Float32>(tosaDefaultBackends);
355}
356
357TEST_CASE("TosaRefMultiplicationEndtoEndTestInt32")
358{
359 MultiplicationEndToEnd<DataType::Signed32>(tosaDefaultBackends);
360}
361
362TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat16")
363{
364 MultiplicationEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
365}
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000366
Matthew Sloyanfc9d5e72022-12-08 13:38:23 +0000367// TransposeConvolution2d
368TEST_CASE("TosaRefTransposeConvolution2dEndToEndFloatNhwcTest")
369{
370 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
371 tosaDefaultBackends, armnn::DataLayout::NHWC);
372}
373
374TEST_CASE("TosaRefSimpleTransposeConvolution2dEndToEndFloatNhwcTest")
375{
376 SimpleTransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
377 tosaDefaultBackends, armnn::DataLayout::NHWC);
378}
379
Cathal Corbett0bb096d2022-12-22 13:09:38 +0000380// Transpose
381TEST_CASE("TosaRefTransposeEndtoEndTestFloat32")
382{
383 TransposeEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
384}
385
Ryan OShea3c2795a2022-11-03 17:51:52 +0000386}