blob: 68531f89ff256c2a222698e4696d8bd44224eff6 [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
Teresa Charlina52bca22024-02-01 17:36:48 +000098// Maximum
99TEST_CASE("TosaRefMaximumEndtoEndTestInt8")
100{
101 ElementwiseBinarySimpleNoReshapeEndToEnd<DataType::Signed32>(tosaDefaultBackends,
102 armnn::BinaryOperation::Maximum);
103}
104
105// Pooling
Cathal Corbettbd18eab2022-11-15 12:56:16 +0000106// Average Pool 2D
107TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat32")
108{
109 AvgPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends);
110}
111
112TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat16")
113{
114 AvgPool2dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
115}
116
117TEST_CASE("TosaRefAvgPool2DIgnoreValueEndtoEndTestFloat32")
118{
119 AvgPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends, PaddingMethod::IgnoreValue);
Matthew Sloyan2523b792022-11-14 10:18:01 +0000120}
121
Teresa Charlin3fbad942022-12-15 10:35:37 +0000122// Max Pool 2D
123TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat32")
124{
125 MaxPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends);
126}
127
128TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat16")
129{
130 MaxPool2dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
131}
132
133TEST_CASE("TosaRefMaxPool2DIgnoreValueEndtoEndTestFloat32")
134{
135 MaxPool2dEndToEnd<DataType::Float32>(tosaDefaultBackends, PaddingMethod::IgnoreValue);
136}
137
Tianle Chengfa62fdc2023-12-15 12:38:40 +0000138TEST_CASE("TosaRefMaxPool2DTwoLayerEndtoEndTestFloat32")
139{
140 MaxPool2dTwoLayerEndToEnd<DataType::Float32>(tosaDefaultBackends);
141}
142
143TEST_CASE("TosaRefMaxPool2DThreeLayerEndtoEndTestFloat32")
144{
145 MaxPool2dThreeLayerEndToEnd<DataType::Float32>(tosaDefaultBackends);
146}
147
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000148// Quantization
149TEST_CASE("TosaRefQuantizeFromFloat32ToInt8")
150{
151 QuantizationEndToEndFloat32<DataType::QAsymmS8>(tosaDefaultBackends);
152}
153
154TEST_CASE("TosaRefQuantizeFromFloat32ToInt16")
155{
156 QuantizationEndToEndFloat32<DataType::QSymmS16>(tosaDefaultBackends);
157}
158
159TEST_CASE("TosaRefQuantizeFromFloat32ToInt32")
160{
161 QuantizationEndToEndFloat32<DataType::Signed32>(tosaDefaultBackends);
162}
163
164TEST_CASE("TosaRefQuantizeFromFloat16ToInt8")
165{
166 QuantizationEndToEndFloat16<DataType::QAsymmS8>(tosaDefaultBackends);
167}
168
169TEST_CASE("TosaRefQuantizeFromFloat16ToInt16")
170{
171 QuantizationEndToEndFloat16<DataType::QSymmS16>(tosaDefaultBackends);
172}
173
174TEST_CASE("TosaRefQuantizeFromFloat16ToInt32")
175{
176 QuantizationEndToEndFloat16<DataType::Signed32>(tosaDefaultBackends);
177}
178
Cathal Corbettb30e6552022-12-07 11:50:50 +0000179// Reshape
180TEST_CASE("TosaRefReshapeEndtoEndTestFloat32")
181{
182 ReshapeEndToEnd<DataType::Float32>(tosaDefaultBackends);
183}
184
185TEST_CASE("TosaRefReshapeEndtoEndTestInt32")
186{
187 ReshapeEndToEnd<DataType::Signed32>(tosaDefaultBackends);
188}
189
190TEST_CASE("TosaRefReshapeEndtoEndTestFloat16")
191{
192 ReshapeEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
193}
194
David Monahand7fca092023-01-12 14:53:34 +0000195TEST_CASE("TosaRefRsqrtEndtoEndTestFloat32")
196{
197 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends,
198 UnaryOperation::Rsqrt);
199}
200
Teresa Charlince655882023-11-21 15:44:13 +0000201// Resize
202TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32AlignCornersNhwcTest")
203{
204 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
205}
206
207TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32HalfPixelNhwcTest")
208{
209 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
210}
211
212TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16AlignCornersNhwcTest")
213{
214 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
215}
216
217TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16HalfPixelNhwcTest")
218{
219 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
220}
221
222TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8AlignCornersNhwcTest")
223{
224 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
225}
226
227TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8HalfPixelNhwcTest")
228{
229 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
230}
231
232TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16AlignCornersNhwcTest")
233{
234 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
235}
236
237TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16HalfPixelNhwcTest")
238{
239 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
240}
241
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000242// Slice
243TEST_CASE("TosaRefSliceEndtoEndTestFloat32")
244{
245 SliceEndToEnd<DataType::Float32>(tosaDefaultBackends);
246}
247
248TEST_CASE("TosaRefSliceEndtoEndTestInt32")
249{
250 SliceEndToEnd<DataType::Signed32>(tosaDefaultBackends);
251}
252
253TEST_CASE("TosaRefSliceEndtoEndTestFloat16")
254{
255 SliceEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
256}
Kevin May1bea6be2023-12-12 11:18:46 +0000257
258// Split
259TEST_CASE("TosaRefSplit1dEndtoEndTestBoolean")
260{
261 Splitter1dEndToEnd<DataType::Boolean>(tosaDefaultBackends);
262}
263
264TEST_CASE("TosaRefSplit1dEndtoEndTestInt8")
265{
266 Splitter1dEndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
267}
268
269TEST_CASE("TosaRefSplit1dEndtoEndTestSigned16")
270{
271 Splitter1dEndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
272}
273
274TEST_CASE("TosaRefSplit1dEndtoEndTestInt32")
275{
276 Splitter1dEndToEnd<DataType::Signed32>(tosaDefaultBackends);
277}
278
279TEST_CASE("TosaRefSplit1dEndtoEndTestFloat16")
280{
281 Splitter1dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
282}
283
284TEST_CASE("TosaRefSplit1dEndToEndFloat32")
285{
286 Splitter1dEndToEnd<DataType::Float32>(tosaDefaultBackends);
287}
288
289TEST_CASE("TosaRefSplit2dDim0EndtoEndTestFloat32")
290{
291 Splitter2dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
292}
293
294TEST_CASE("TosaRefSplit2dDim1EndtoEndTestFloat32")
295{
296 Splitter2dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
297}
298
299TEST_CASE("TosaRefSplit3dDim0EndtoEndTestFloat32")
300{
301 Splitter3dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
302}
303
304TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat32")
305{
306 Splitter3dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
307}
308
309TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat16")
310{
311 Splitter3dDim1EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
312}
313
314TEST_CASE("TosaRefSplit3dDim1EndtoEndTestBoolean")
315{
316 Splitter3dDim1EndToEnd<DataType::Boolean>(tosaDefaultBackends);
317}
318
319TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt8")
320{
321 Splitter3dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
322}
323
324TEST_CASE("TosaRefSplit3dDim1EndtoEndTestSigned16")
325{
326 Splitter3dDim1EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
327}
328
329TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt32")
330{
331 Splitter3dDim1EndToEnd<DataType::Signed32>(tosaDefaultBackends);
332}
333
334TEST_CASE("TosaRefSplit3dDim2EndtoEndTestInt8")
335{
336 Splitter3dDim2EndToEnd<DataType::QAsymmS8>(tosaDefaultBackends);
337}
338
339TEST_CASE("TosaRefSplit4dDim0EndtoEndTestInt8")
340{
341 Splitter4dDim0EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
342}
343
344TEST_CASE("TosaRefSplit4dDim1EndtoEndTestInt8")
345{
346 Splitter4dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
347}
348
349TEST_CASE("TosaRefSplit4dDim2EndtoEndTestBoolean")
350{
351 Splitter4dDim2EndToEnd<DataType::Boolean>(tosaDefaultBackends);
352}
353
354TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt8")
355{
356 Splitter4dDim2EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
357}
358
359TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt16")
360{
361 Splitter4dDim2EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
362}
363
364TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt32")
365{
366 Splitter4dDim2EndToEnd<DataType::Signed32>(tosaDefaultBackends);
367}
368
369TEST_CASE("TosaRefSplit4dDim2EndtoEndTestFloat16")
370{
371 Splitter4dDim2EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
372}
373
374TEST_CASE("TosaRefSplit4dDim3EndtoEndTestInt8")
375{
376 Splitter4dDim3EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
377}
378
379// Subtraction
Nikhil Raj9a339462022-12-05 11:24:35 +0000380TEST_CASE("TosaRefSubtractionEndtoEndTestFloat32")
381{
382 SubtractionEndToEnd<DataType::Float32>(tosaDefaultBackends);
383}
384
385TEST_CASE("TosaRefSubtractionEndtoEndTestInt32")
386{
387 SubtractionEndToEnd<DataType::Signed32>(tosaDefaultBackends);
388}
389
390TEST_CASE("TosaRefSubtractionEndtoEndTestFloat16")
391{
392 SubtractionEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
393}
394
395TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat32")
396{
397 MultiplicationEndToEnd<DataType::Float32>(tosaDefaultBackends);
398}
399
400TEST_CASE("TosaRefMultiplicationEndtoEndTestInt32")
401{
402 MultiplicationEndToEnd<DataType::Signed32>(tosaDefaultBackends);
403}
404
405TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat16")
406{
407 MultiplicationEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
408}
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000409
Matthew Sloyanfc9d5e72022-12-08 13:38:23 +0000410// TransposeConvolution2d
411TEST_CASE("TosaRefTransposeConvolution2dEndToEndFloatNhwcTest")
412{
413 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
414 tosaDefaultBackends, armnn::DataLayout::NHWC);
415}
416
417TEST_CASE("TosaRefSimpleTransposeConvolution2dEndToEndFloatNhwcTest")
418{
419 SimpleTransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
420 tosaDefaultBackends, armnn::DataLayout::NHWC);
421}
422
Cathal Corbett0bb096d2022-12-22 13:09:38 +0000423// Transpose
424TEST_CASE("TosaRefTransposeEndtoEndTestFloat32")
425{
426 TransposeEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
427}
428
Ryan OShea3c2795a2022-11-03 17:51:52 +0000429}