blob: 7a3edaf212db4e4d83ca291750859a062c84ade7 [file] [log] [blame]
Ryan OShea3c2795a2022-11-03 17:51:52 +00001//
Tianle Chengfa62fdc2023-12-15 12:38:40 +00002// Copyright © 2022-2024 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"
Teresa Charlinca5a23a2023-12-15 14:20:47 +000015#include "backendsCommon/test/QuantizationEndToEndTestImpl.hpp"
Cathal Corbettb30e6552022-12-07 11:50:50 +000016#include "backendsCommon/test/ReshapeEndToEndTestImpl.hpp"
Teresa Charlince655882023-11-21 15:44:13 +000017#include "backendsCommon/test/ResizeEndToEndTestImpl.hpp"
Cathal Corbett3b9acd52022-12-09 12:17:27 +000018#include "backendsCommon/test/SliceEndToEndTestImpl.hpp"
Kevin May1bea6be2023-12-12 11:18:46 +000019#include "backendsCommon/test/SplitterEndToEndTestImpl.hpp"
Nikhil Raj9a339462022-12-05 11:24:35 +000020#include "backendsCommon/test/SubtractionEndToEndTestImpl.hpp"
Matthew Sloyanfc9d5e72022-12-08 13:38:23 +000021#include "backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp"
Cathal Corbett0bb096d2022-12-22 13:09:38 +000022#include "backendsCommon/test/TransposeEndToEndTestImpl.hpp"
Ryan OShea3c2795a2022-11-03 17:51:52 +000023
24#include <doctest/doctest.h>
25
26TEST_SUITE("TosaRefEndToEnd")
27{
Tracy Narine10403ec2023-11-28 11:55:08 +000028static std::vector<BackendId> tosaDefaultBackends = { "TosaRef" };
Ryan OShea3c2795a2022-11-03 17:51:52 +000029
30// Addition
Cathal Corbettbd18eab2022-11-15 12:56:16 +000031TEST_CASE("TosaRefAdditionEndtoEndTestFloat32")
Ryan OShea3c2795a2022-11-03 17:51:52 +000032{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000033 AdditionEndToEnd<DataType::Float32>(tosaDefaultBackends);
Ryan OShea3c2795a2022-11-03 17:51:52 +000034}
35
Cathal Corbettbd18eab2022-11-15 12:56:16 +000036TEST_CASE("TosaRefAdditionEndtoEndTestInt32")
Matthew Sloyan2523b792022-11-14 10:18:01 +000037{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000038 AdditionEndToEnd<DataType::Signed32>(tosaDefaultBackends);
Matthew Sloyan2523b792022-11-14 10:18:01 +000039}
40
Cathal Corbettbd18eab2022-11-15 12:56:16 +000041TEST_CASE("TosaRefAdditionEndtoEndTestFloat16")
Matthew Sloyan2523b792022-11-14 10:18:01 +000042{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000043 AdditionEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
44}
45
Kevin May5b58e312022-12-15 10:15:21 +000046// Concat
47TEST_CASE("TosaRefConcatEndToEndDim0TestFloat32")
48{
49 ConcatDim0EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
50}
51
52TEST_CASE("TosaRefConcatEndToEndDim0TestInt32")
53{
54 ConcatDim0EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
55}
56
57TEST_CASE("TosaRefConcatEndToEndDim1TestFloat32")
58{
59 ConcatDim1EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
60}
61
62TEST_CASE("TosaRefConcatEndToEndDim1TestInt32")
63{
64 ConcatDim1EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
65}
66
67TEST_CASE("TosaRefConcatEndToEndDim2TestFloat32")
68{
69 ConcatDim2EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
70}
71
72TEST_CASE("TosaRefConcatEndToEndDim2TestInt32")
73{
74 ConcatDim2EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
75}
76
77TEST_CASE("TosaRefConcatEndToEndDim3TestFloat32")
78{
79 ConcatDim3EndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
80}
81
82TEST_CASE("TosaRefConcatEndToEndDim3TestInt32")
83{
84 ConcatDim3EndToEnd<armnn::DataType::Signed32>(tosaDefaultBackends);
85}
86
Matthew Sloyanc5fe6e72022-11-25 16:10:00 +000087// Conv2d
88TEST_CASE("TosaRefConv2dEndtoEndTestFloat32")
89{
90 Convolution2dEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC);
91}
92
93TEST_CASE("TosaRefConv2dWithoutBiasEndtoEndTestFloat32")
94{
95 Convolution2dEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, false);
96}
97
Cathal Corbettbd18eab2022-11-15 12:56:16 +000098// Average Pool 2D
99TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat32")
100{
101 AvgPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends);
102}
103
104TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat16")
105{
106 AvgPool2dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
107}
108
109TEST_CASE("TosaRefAvgPool2DIgnoreValueEndtoEndTestFloat32")
110{
111 AvgPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends, PaddingMethod::IgnoreValue);
Matthew Sloyan2523b792022-11-14 10:18:01 +0000112}
113
Tianle Cheng7790dc62023-12-12 13:52:22 +0000114// Maximum
115TEST_CASE("TosaRefMaximumEndtoEndTestInt8")
116{
117 ElementwiseBinarySimpleNoReshapeEndToEnd<DataType::Signed32>(tosaDefaultBackends,
118 armnn::BinaryOperation::Maximum);
119}
120
Teresa Charlin3fbad942022-12-15 10:35:37 +0000121// Max Pool 2D
122TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat32")
123{
124 MaxPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends);
125}
126
127TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat16")
128{
129 MaxPool2dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
130}
131
132TEST_CASE("TosaRefMaxPool2DIgnoreValueEndtoEndTestFloat32")
133{
134 MaxPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends, PaddingMethod::IgnoreValue);
135}
136
Tianle Chengfa62fdc2023-12-15 12:38:40 +0000137TEST_CASE("TosaRefMaxPool2DTwoLayerEndtoEndTestFloat32")
138{
139 MaxPool2dTwoLayerEndToEnd<DataType::Float32>(tosaDefaultBackends);
140}
141
142TEST_CASE("TosaRefMaxPool2DThreeLayerEndtoEndTestFloat32")
143{
144 MaxPool2dThreeLayerEndToEnd<DataType::Float32>(tosaDefaultBackends);
145}
146
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000147// Quantization
148TEST_CASE("TosaRefQuantizeFromFloat32ToInt8")
149{
150 QuantizationEndToEndFloat32<DataType::QAsymmS8>(tosaDefaultBackends);
151}
152
153TEST_CASE("TosaRefQuantizeFromFloat32ToInt16")
154{
155 QuantizationEndToEndFloat32<DataType::QSymmS16>(tosaDefaultBackends);
156}
157
158TEST_CASE("TosaRefQuantizeFromFloat32ToInt32")
159{
160 QuantizationEndToEndFloat32<DataType::Signed32>(tosaDefaultBackends);
161}
162
163TEST_CASE("TosaRefQuantizeFromFloat16ToInt8")
164{
165 QuantizationEndToEndFloat16<DataType::QAsymmS8>(tosaDefaultBackends);
166}
167
168TEST_CASE("TosaRefQuantizeFromFloat16ToInt16")
169{
170 QuantizationEndToEndFloat16<DataType::QSymmS16>(tosaDefaultBackends);
171}
172
173TEST_CASE("TosaRefQuantizeFromFloat16ToInt32")
174{
175 QuantizationEndToEndFloat16<DataType::Signed32>(tosaDefaultBackends);
176}
177
Cathal Corbettb30e6552022-12-07 11:50:50 +0000178// Reshape
179TEST_CASE("TosaRefReshapeEndtoEndTestFloat32")
180{
181 ReshapeEndToEnd<DataType::Float32>(tosaDefaultBackends);
182}
183
184TEST_CASE("TosaRefReshapeEndtoEndTestInt32")
185{
186 ReshapeEndToEnd<DataType::Signed32>(tosaDefaultBackends);
187}
188
189TEST_CASE("TosaRefReshapeEndtoEndTestFloat16")
190{
191 ReshapeEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
192}
193
David Monahand7fca092023-01-12 14:53:34 +0000194TEST_CASE("TosaRefRsqrtEndtoEndTestFloat32")
195{
196 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends,
197 UnaryOperation::Rsqrt);
198}
199
Teresa Charlince655882023-11-21 15:44:13 +0000200// Resize
201TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32AlignCornersNhwcTest")
202{
203 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
204}
205
206TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32HalfPixelNhwcTest")
207{
208 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
209}
210
211TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16AlignCornersNhwcTest")
212{
213 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
214}
215
216TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16HalfPixelNhwcTest")
217{
218 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
219}
220
221TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8AlignCornersNhwcTest")
222{
223 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
224}
225
226TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8HalfPixelNhwcTest")
227{
228 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
229}
230
231TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16AlignCornersNhwcTest")
232{
233 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
234}
235
236TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16HalfPixelNhwcTest")
237{
238 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
239}
240
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000241// Slice
242TEST_CASE("TosaRefSliceEndtoEndTestFloat32")
243{
244 SliceEndToEnd<DataType::Float32>(tosaDefaultBackends);
245}
246
247TEST_CASE("TosaRefSliceEndtoEndTestInt32")
248{
249 SliceEndToEnd<DataType::Signed32>(tosaDefaultBackends);
250}
251
252TEST_CASE("TosaRefSliceEndtoEndTestFloat16")
253{
254 SliceEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
255}
Kevin May1bea6be2023-12-12 11:18:46 +0000256
257// Split
258TEST_CASE("TosaRefSplit1dEndtoEndTestBoolean")
259{
260 Splitter1dEndToEnd<DataType::Boolean>(tosaDefaultBackends);
261}
262
263TEST_CASE("TosaRefSplit1dEndtoEndTestInt8")
264{
265 Splitter1dEndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
266}
267
268TEST_CASE("TosaRefSplit1dEndtoEndTestSigned16")
269{
270 Splitter1dEndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
271}
272
273TEST_CASE("TosaRefSplit1dEndtoEndTestInt32")
274{
275 Splitter1dEndToEnd<DataType::Signed32>(tosaDefaultBackends);
276}
277
278TEST_CASE("TosaRefSplit1dEndtoEndTestFloat16")
279{
280 Splitter1dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
281}
282
283TEST_CASE("TosaRefSplit1dEndToEndFloat32")
284{
285 Splitter1dEndToEnd<DataType::Float32>(tosaDefaultBackends);
286}
287
288TEST_CASE("TosaRefSplit2dDim0EndtoEndTestFloat32")
289{
290 Splitter2dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
291}
292
293TEST_CASE("TosaRefSplit2dDim1EndtoEndTestFloat32")
294{
295 Splitter2dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
296}
297
298TEST_CASE("TosaRefSplit3dDim0EndtoEndTestFloat32")
299{
300 Splitter3dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
301}
302
303TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat32")
304{
305 Splitter3dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
306}
307
308TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat16")
309{
310 Splitter3dDim1EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
311}
312
313TEST_CASE("TosaRefSplit3dDim1EndtoEndTestBoolean")
314{
315 Splitter3dDim1EndToEnd<DataType::Boolean>(tosaDefaultBackends);
316}
317
318TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt8")
319{
320 Splitter3dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
321}
322
323TEST_CASE("TosaRefSplit3dDim1EndtoEndTestSigned16")
324{
325 Splitter3dDim1EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
326}
327
328TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt32")
329{
330 Splitter3dDim1EndToEnd<DataType::Signed32>(tosaDefaultBackends);
331}
332
333TEST_CASE("TosaRefSplit3dDim2EndtoEndTestInt8")
334{
335 Splitter3dDim2EndToEnd<DataType::QAsymmS8>(tosaDefaultBackends);
336}
337
338TEST_CASE("TosaRefSplit4dDim0EndtoEndTestInt8")
339{
340 Splitter4dDim0EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
341}
342
343TEST_CASE("TosaRefSplit4dDim1EndtoEndTestInt8")
344{
345 Splitter4dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
346}
347
348TEST_CASE("TosaRefSplit4dDim2EndtoEndTestBoolean")
349{
350 Splitter4dDim2EndToEnd<DataType::Boolean>(tosaDefaultBackends);
351}
352
353TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt8")
354{
355 Splitter4dDim2EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
356}
357
358TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt16")
359{
360 Splitter4dDim2EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
361}
362
363TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt32")
364{
365 Splitter4dDim2EndToEnd<DataType::Signed32>(tosaDefaultBackends);
366}
367
368TEST_CASE("TosaRefSplit4dDim2EndtoEndTestFloat16")
369{
370 Splitter4dDim2EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
371}
372
373TEST_CASE("TosaRefSplit4dDim3EndtoEndTestInt8")
374{
375 Splitter4dDim3EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
376}
377
378// Subtraction
Nikhil Raj9a339462022-12-05 11:24:35 +0000379TEST_CASE("TosaRefSubtractionEndtoEndTestFloat32")
380{
381 SubtractionEndToEnd<DataType::Float32>(tosaDefaultBackends);
382}
383
384TEST_CASE("TosaRefSubtractionEndtoEndTestInt32")
385{
386 SubtractionEndToEnd<DataType::Signed32>(tosaDefaultBackends);
387}
388
389TEST_CASE("TosaRefSubtractionEndtoEndTestFloat16")
390{
391 SubtractionEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
392}
393
394TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat32")
395{
396 MultiplicationEndToEnd<DataType::Float32>(tosaDefaultBackends);
397}
398
399TEST_CASE("TosaRefMultiplicationEndtoEndTestInt32")
400{
401 MultiplicationEndToEnd<DataType::Signed32>(tosaDefaultBackends);
402}
403
404TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat16")
405{
406 MultiplicationEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
407}
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000408
Matthew Sloyanfc9d5e72022-12-08 13:38:23 +0000409// TransposeConvolution2d
410TEST_CASE("TosaRefTransposeConvolution2dEndToEndFloatNhwcTest")
411{
412 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
413 tosaDefaultBackends, armnn::DataLayout::NHWC);
414}
415
416TEST_CASE("TosaRefSimpleTransposeConvolution2dEndToEndFloatNhwcTest")
417{
418 SimpleTransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
419 tosaDefaultBackends, armnn::DataLayout::NHWC);
420}
421
Cathal Corbett0bb096d2022-12-22 13:09:38 +0000422// Transpose
423TEST_CASE("TosaRefTransposeEndtoEndTestFloat32")
424{
425 TransposeEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
426}
427
Ryan OShea3c2795a2022-11-03 17:51:52 +0000428}