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