blob: 914df766eb9709ab234f7d3274e2e3f81bbe4273 [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"
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{
Cathal Corbettbd18eab2022-11-15 12:56:16 +000028std::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
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000137// Quantization
138TEST_CASE("TosaRefQuantizeFromFloat32ToInt8")
139{
140 QuantizationEndToEndFloat32<DataType::QAsymmS8>(tosaDefaultBackends);
141}
142
143TEST_CASE("TosaRefQuantizeFromFloat32ToInt16")
144{
145 QuantizationEndToEndFloat32<DataType::QSymmS16>(tosaDefaultBackends);
146}
147
148TEST_CASE("TosaRefQuantizeFromFloat32ToInt32")
149{
150 QuantizationEndToEndFloat32<DataType::Signed32>(tosaDefaultBackends);
151}
152
153TEST_CASE("TosaRefQuantizeFromFloat16ToInt8")
154{
155 QuantizationEndToEndFloat16<DataType::QAsymmS8>(tosaDefaultBackends);
156}
157
158TEST_CASE("TosaRefQuantizeFromFloat16ToInt16")
159{
160 QuantizationEndToEndFloat16<DataType::QSymmS16>(tosaDefaultBackends);
161}
162
163TEST_CASE("TosaRefQuantizeFromFloat16ToInt32")
164{
165 QuantizationEndToEndFloat16<DataType::Signed32>(tosaDefaultBackends);
166}
167
Cathal Corbettb30e6552022-12-07 11:50:50 +0000168// Reshape
169TEST_CASE("TosaRefReshapeEndtoEndTestFloat32")
170{
171 ReshapeEndToEnd<DataType::Float32>(tosaDefaultBackends);
172}
173
174TEST_CASE("TosaRefReshapeEndtoEndTestInt32")
175{
176 ReshapeEndToEnd<DataType::Signed32>(tosaDefaultBackends);
177}
178
179TEST_CASE("TosaRefReshapeEndtoEndTestFloat16")
180{
181 ReshapeEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
182}
183
David Monahand7fca092023-01-12 14:53:34 +0000184TEST_CASE("TosaRefRsqrtEndtoEndTestFloat32")
185{
186 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends,
187 UnaryOperation::Rsqrt);
188}
189
Teresa Charlince655882023-11-21 15:44:13 +0000190// Resize
191TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32AlignCornersNhwcTest")
192{
193 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
194}
195
196TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32HalfPixelNhwcTest")
197{
198 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
199}
200
201TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16AlignCornersNhwcTest")
202{
203 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
204}
205
206TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16HalfPixelNhwcTest")
207{
208 ResizeNearestNeighborEndToEnd<armnn::DataType::Float16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
209}
210
211TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8AlignCornersNhwcTest")
212{
213 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
214}
215
216TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8HalfPixelNhwcTest")
217{
218 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
219}
220
221TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16AlignCornersNhwcTest")
222{
223 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false);
224}
225
226TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16HalfPixelNhwcTest")
227{
228 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true);
229}
230
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000231// Slice
232TEST_CASE("TosaRefSliceEndtoEndTestFloat32")
233{
234 SliceEndToEnd<DataType::Float32>(tosaDefaultBackends);
235}
236
237TEST_CASE("TosaRefSliceEndtoEndTestInt32")
238{
239 SliceEndToEnd<DataType::Signed32>(tosaDefaultBackends);
240}
241
242TEST_CASE("TosaRefSliceEndtoEndTestFloat16")
243{
244 SliceEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
245}
Kevin May1bea6be2023-12-12 11:18:46 +0000246
247// Split
248TEST_CASE("TosaRefSplit1dEndtoEndTestBoolean")
249{
250 Splitter1dEndToEnd<DataType::Boolean>(tosaDefaultBackends);
251}
252
253TEST_CASE("TosaRefSplit1dEndtoEndTestInt8")
254{
255 Splitter1dEndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
256}
257
258TEST_CASE("TosaRefSplit1dEndtoEndTestSigned16")
259{
260 Splitter1dEndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
261}
262
263TEST_CASE("TosaRefSplit1dEndtoEndTestInt32")
264{
265 Splitter1dEndToEnd<DataType::Signed32>(tosaDefaultBackends);
266}
267
268TEST_CASE("TosaRefSplit1dEndtoEndTestFloat16")
269{
270 Splitter1dEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
271}
272
273TEST_CASE("TosaRefSplit1dEndToEndFloat32")
274{
275 Splitter1dEndToEnd<DataType::Float32>(tosaDefaultBackends);
276}
277
278TEST_CASE("TosaRefSplit2dDim0EndtoEndTestFloat32")
279{
280 Splitter2dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
281}
282
283TEST_CASE("TosaRefSplit2dDim1EndtoEndTestFloat32")
284{
285 Splitter2dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
286}
287
288TEST_CASE("TosaRefSplit3dDim0EndtoEndTestFloat32")
289{
290 Splitter3dDim0EndToEnd<DataType::Float32>(tosaDefaultBackends);
291}
292
293TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat32")
294{
295 Splitter3dDim1EndToEnd<DataType::Float32>(tosaDefaultBackends);
296}
297
298TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat16")
299{
300 Splitter3dDim1EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
301}
302
303TEST_CASE("TosaRefSplit3dDim1EndtoEndTestBoolean")
304{
305 Splitter3dDim1EndToEnd<DataType::Boolean>(tosaDefaultBackends);
306}
307
308TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt8")
309{
310 Splitter3dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
311}
312
313TEST_CASE("TosaRefSplit3dDim1EndtoEndTestSigned16")
314{
315 Splitter3dDim1EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
316}
317
318TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt32")
319{
320 Splitter3dDim1EndToEnd<DataType::Signed32>(tosaDefaultBackends);
321}
322
323TEST_CASE("TosaRefSplit3dDim2EndtoEndTestInt8")
324{
325 Splitter3dDim2EndToEnd<DataType::QAsymmS8>(tosaDefaultBackends);
326}
327
328TEST_CASE("TosaRefSplit4dDim0EndtoEndTestInt8")
329{
330 Splitter4dDim0EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
331}
332
333TEST_CASE("TosaRefSplit4dDim1EndtoEndTestInt8")
334{
335 Splitter4dDim1EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
336}
337
338TEST_CASE("TosaRefSplit4dDim2EndtoEndTestBoolean")
339{
340 Splitter4dDim2EndToEnd<DataType::Boolean>(tosaDefaultBackends);
341}
342
343TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt8")
344{
345 Splitter4dDim2EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
346}
347
348TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt16")
349{
350 Splitter4dDim2EndToEnd<DataType::QSymmS16>(tosaDefaultBackends);
351}
352
353TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt32")
354{
355 Splitter4dDim2EndToEnd<DataType::Signed32>(tosaDefaultBackends);
356}
357
358TEST_CASE("TosaRefSplit4dDim2EndtoEndTestFloat16")
359{
360 Splitter4dDim2EndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
361}
362
363TEST_CASE("TosaRefSplit4dDim3EndtoEndTestInt8")
364{
365 Splitter4dDim3EndToEnd<DataType::QSymmS8>(tosaDefaultBackends);
366}
367
368// Subtraction
Nikhil Raj9a339462022-12-05 11:24:35 +0000369TEST_CASE("TosaRefSubtractionEndtoEndTestFloat32")
370{
371 SubtractionEndToEnd<DataType::Float32>(tosaDefaultBackends);
372}
373
374TEST_CASE("TosaRefSubtractionEndtoEndTestInt32")
375{
376 SubtractionEndToEnd<DataType::Signed32>(tosaDefaultBackends);
377}
378
379TEST_CASE("TosaRefSubtractionEndtoEndTestFloat16")
380{
381 SubtractionEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
382}
383
384TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat32")
385{
386 MultiplicationEndToEnd<DataType::Float32>(tosaDefaultBackends);
387}
388
389TEST_CASE("TosaRefMultiplicationEndtoEndTestInt32")
390{
391 MultiplicationEndToEnd<DataType::Signed32>(tosaDefaultBackends);
392}
393
394TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat16")
395{
396 MultiplicationEndToEndFloat16<DataType::Float16>(tosaDefaultBackends);
397}
Cathal Corbett3b9acd52022-12-09 12:17:27 +0000398
Matthew Sloyanfc9d5e72022-12-08 13:38:23 +0000399// TransposeConvolution2d
400TEST_CASE("TosaRefTransposeConvolution2dEndToEndFloatNhwcTest")
401{
402 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
403 tosaDefaultBackends, armnn::DataLayout::NHWC);
404}
405
406TEST_CASE("TosaRefSimpleTransposeConvolution2dEndToEndFloatNhwcTest")
407{
408 SimpleTransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
409 tosaDefaultBackends, armnn::DataLayout::NHWC);
410}
411
Cathal Corbett0bb096d2022-12-22 13:09:38 +0000412// Transpose
413TEST_CASE("TosaRefTransposeEndtoEndTestFloat32")
414{
415 TransposeEndToEnd<armnn::DataType::Float32>(tosaDefaultBackends);
416}
417
Ryan OShea3c2795a2022-11-03 17:51:52 +0000418}