ArmNN
 20.02
ClEndToEndTests.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
7 
20 
21 #include <boost/test/unit_test.hpp>
22 
23 BOOST_AUTO_TEST_SUITE(ClEndToEnd)
24 
26 
27 // Abs
28 BOOST_AUTO_TEST_CASE(ClAbsEndToEndTestFloat32)
29 {
30  std::vector<float> expectedOutput =
31  {
32  1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
33  3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
34  };
35 
36  ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
37  UnaryOperation::Abs,
38  expectedOutput);
39 }
40 
41 // Constant
42 BOOST_AUTO_TEST_CASE(ConstantUsage_Cl_Float32)
43 {
44  ConstantUsageFloat32Test(defaultBackends);
45 }
46 
47 BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Test)
48 {
49  ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
50 }
51 
52 BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Uint8Test)
53 {
54  ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
55 }
56 
57 BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Test)
58 {
59  ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
60 }
61 
62 BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Uint8Test)
63 {
64  ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
65 }
66 
67 BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Test)
68 {
69  ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
70 }
71 
72 BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Uint8Test)
73 {
74  ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
75 }
76 
77 // DepthToSpace
78 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwFloat32)
79 {
80  DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
81 }
82 
83 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwFloat16)
84 {
85  DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
86 }
87 
88 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwUint8)
89 {
90  DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
91 }
92 
93 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwInt16)
94 {
95  DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
96 }
97 
98 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcFloat32)
99 {
100  DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
101 }
102 
103 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcFloat16)
104 {
105  DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
106 }
107 
108 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcUint8)
109 {
110  DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
111 }
112 
113 BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcInt16)
114 {
115  DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
116 }
117 
118 // Dequantize
119 BOOST_AUTO_TEST_CASE(DequantizeEndToEndSimpleTest)
120 {
121  DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
122 }
123 
124 BOOST_AUTO_TEST_CASE(DequantizeEndToEndOffsetTest)
125 {
126  DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
127 }
128 
129 BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndTest)
130 {
131  const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
132  0, 0, 0, 0, 0, 0, 0, 0 });
133 
134  ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
135  ComparisonOperation::Greater,
136  expectedOutput);
137 }
138 
139 BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndUint8Test)
140 {
141  const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
142  0, 0, 0, 0, 0, 0, 0, 0 });
143 
144  ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
145  ComparisonOperation::Greater,
146  expectedOutput);
147 }
148 
149 BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndTest)
150 {
151  const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
152  1, 1, 1, 1, 1, 1 });
153 
154  ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
155  ComparisonOperation::Greater,
156  expectedOutput);
157 }
158 
159 BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndUint8Test)
160 {
161  const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
162  1, 1, 1, 1, 1, 1 });
163 
164  ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
165  ComparisonOperation::Greater,
166  expectedOutput);
167 }
168 
169 // InstanceNormalization
170 BOOST_AUTO_TEST_CASE(ClInstanceNormalizationNhwcEndToEndTest1)
171 {
173 }
174 
175 BOOST_AUTO_TEST_CASE(ClInstanceNormalizationNchwEndToEndTest1)
176 {
178 }
179 
180 BOOST_AUTO_TEST_CASE(ClInstanceNormalizationNhwcEndToEndTest2)
181 {
183 }
184 
185 BOOST_AUTO_TEST_CASE(ClInstanceNormalizationNchwEndToEndTest2)
186 {
188 }
189 
190 BOOST_AUTO_TEST_CASE(ClPreluEndToEndFloat32Test)
191 {
192  PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
193 }
194 
195 BOOST_AUTO_TEST_CASE(ClPreluEndToEndTestUint8)
196 {
197  PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
198 }
199 
200 BOOST_AUTO_TEST_CASE(ClSpaceToDepthNhwcEndToEndTest1)
201 {
203 }
204 
205 BOOST_AUTO_TEST_CASE(ClSpaceToDepthNchwEndToEndTest1)
206 {
208 }
209 
210 BOOST_AUTO_TEST_CASE(ClSpaceToDepthNhwcEndToEndTest2)
211 {
213 }
214 
215 BOOST_AUTO_TEST_CASE(ClSpaceToDepthNchwEndToEndTest2)
216 {
218 }
219 
220 BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndTest)
221 {
222  Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
223 }
224 
225 BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndUint8Test)
226 {
227  Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
228 }
229 
230 BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndTest)
231 {
232  Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
233 }
234 
235 BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndTest)
236 {
237  Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
238 }
239 
240 BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndUint8Test)
241 {
242  Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
243 }
244 
245 BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndUint8Test)
246 {
247  Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
248 }
249 
250 BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndTest)
251 {
252  Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
253 }
254 
255 BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndTest)
256 {
257  Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
258 }
259 
260 BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndTest)
261 {
262  Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
263 }
264 
265 BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndUint8Test)
266 {
267  Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
268 }
269 
270 BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndUint8Test)
271 {
272  Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
273 }
274 
275 BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndUint8Test)
276 {
277  Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
278 }
279 
280 BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndTest)
281 {
282  Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
283 }
284 
285 BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndTest)
286 {
287  Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
288 }
289 
290 BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndTest)
291 {
292  Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
293 }
294 
295 BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndTest)
296 {
297  Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
298 }
299 
300 BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndUint8Test)
301 {
302  Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
303 }
304 
305 BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndUint8Test)
306 {
307  Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
308 }
309 
310 BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndUint8Test)
311 {
312  Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
313 }
314 
315 BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndUint8Test)
316 {
317  Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
318 }
319 
320 // TransposeConvolution2d
321 BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNchwTest)
322 {
323  TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
325 }
326 
327 BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NchwTest)
328 {
329  TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
331 }
332 
333 BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNhwcTest)
334 {
335  TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
337 }
338 
339 BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NhwcTest)
340 {
341  TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
343 }
344 
345 BOOST_AUTO_TEST_CASE(ClQuantizedLstmEndToEndTest)
346 {
348 }
349 
350 // ArgMinMax
351 BOOST_AUTO_TEST_CASE(ClArgMaxSimpleTest)
352 {
353  ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
354 }
355 
356 BOOST_AUTO_TEST_CASE(ClArgMinSimpleTest)
357 {
358  ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
359 }
360 
361 BOOST_AUTO_TEST_CASE(ClArgMaxAxis0Test)
362 {
363  ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
364 }
365 
366 BOOST_AUTO_TEST_CASE(ClArgMinAxis0Test)
367 {
368  ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
369 }
370 
371 BOOST_AUTO_TEST_CASE(ClArgMaxAxis1Test)
372 {
373  ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
374 }
375 
376 BOOST_AUTO_TEST_CASE(ClArgMinAxis1Test)
377 {
378  ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
379 }
380 
381 BOOST_AUTO_TEST_CASE(ClArgMaxAxis2Test)
382 {
383  ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
384 }
385 
386 BOOST_AUTO_TEST_CASE(ClArgMinAxis2Test)
387 {
388  ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
389 }
390 
391 BOOST_AUTO_TEST_CASE(ClArgMaxAxis3Test)
392 {
393  ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
394 }
395 
396 BOOST_AUTO_TEST_CASE(ClArgMinAxis3Test)
397 {
398  ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
399 }
400 
401 BOOST_AUTO_TEST_CASE(ClArgMaxSimpleTestQAsymmU8)
402 {
403  ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
404 }
405 
406 BOOST_AUTO_TEST_CASE(ClArgMinSimpleTestQAsymmU8)
407 {
408  ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
409 }
410 
411 BOOST_AUTO_TEST_CASE(ClArgMaxAxis0TestQAsymmU8)
412 {
413  ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
414 }
415 
416 BOOST_AUTO_TEST_CASE(ClArgMinAxis0TestQAsymmU8)
417 {
418  ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
419 }
420 
421 BOOST_AUTO_TEST_CASE(ClArgMaxAxis1TestQAsymmU8)
422 {
423  ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
424 }
425 
426 BOOST_AUTO_TEST_CASE(ClArgMinAxis1TestQAsymmU8)
427 {
428  ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
429 }
430 
431 BOOST_AUTO_TEST_CASE(ClArgMaxAxis2TestQAsymmU8)
432 {
433  ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
434 }
435 
436 BOOST_AUTO_TEST_CASE(ClArgMinAxis2TestQAsymmU8)
437 {
438  ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
439 }
440 
441 BOOST_AUTO_TEST_CASE(ClArgMaxAxis3TestQAsymmU8)
442 {
443  ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
444 }
445 
446 BOOST_AUTO_TEST_CASE(ClArgMinAxis3TestQAsymmU8)
447 {
448  ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
449 }
450 
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
void SpaceToDepthNchwEndToEndTest1(const std::vector< armnn::BackendId > &defaultBackends)
void InstanceNormalizationNhwcEndToEndTest1(const std::vector< armnn::BackendId > &defaultBackends)
void InstanceNormalizationNchwEndToEndTest1(const std::vector< armnn::BackendId > &defaultBackends)
Copyright (c) 2020 ARM Limited.
void SpaceToDepthNhwcEndToEndTest2(const std::vector< armnn::BackendId > &defaultBackends)
void SpaceToDepthNhwcEndToEndTest1(const std::vector< armnn::BackendId > &defaultBackends)
void SpaceToDepthNchwEndToEndTest2(const std::vector< armnn::BackendId > &defaultBackends)
GPU Execution: OpenCL: ArmCompute.
BOOST_AUTO_TEST_SUITE_END()
void QuantizedLstmEndToEnd(const std::vector< armnn::BackendId > &backends)
std::vector< armnn::BackendId > defaultBackends
BOOST_AUTO_TEST_CASE(ClAbsEndToEndTestFloat32)
void InstanceNormalizationNhwcEndToEndTest2(const std::vector< armnn::BackendId > &defaultBackends)
void InstanceNormalizationNchwEndToEndTest2(const std::vector< armnn::BackendId > &defaultBackends)