blob: 06c24a343920eb40a645a983d61b4a4561dd8e3c [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00006#include <backendsCommon/test/EndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +01007
Nattapat Chaimanowongc6a41ff2019-01-29 09:56:02 +00008#include <backendsCommon/test/ArithmeticTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +01009#include <backendsCommon/test/ConcatTestImpl.hpp>
10#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Nikhil Raj2ec73ac2019-07-22 10:13:22 +010011#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy60597842019-07-02 10:57:56 +010012#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010013#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Aron Virginas-Tar7a3e2fe2019-06-27 18:54:47 +010014#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010015
16#include <boost/test/unit_test.hpp>
17
18BOOST_AUTO_TEST_SUITE(ClEndToEnd)
19
narpra01b9546cf2018-11-20 15:21:28 +000020std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::GpuAcc};
21
Aron Virginas-Tar70104002018-10-24 15:33:28 +010022BOOST_AUTO_TEST_CASE(ConstantUsage_Cl_Float32)
23{
narpra01b9546cf2018-11-20 15:21:28 +000024 ConstantUsageFloat32Test(defaultBackends);
25}
26
Jim Flynne242f2d2019-05-22 14:24:13 +010027BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Test)
narpra01b9546cf2018-11-20 15:21:28 +000028{
Jim Flynne242f2d2019-05-22 14:24:13 +010029 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000030}
31
Jim Flynne242f2d2019-05-22 14:24:13 +010032BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000033{
Jim Flynne242f2d2019-05-22 14:24:13 +010034 ConcatDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000035}
36
Jim Flynne242f2d2019-05-22 14:24:13 +010037BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Test)
narpra01b9546cf2018-11-20 15:21:28 +000038{
Jim Flynne242f2d2019-05-22 14:24:13 +010039 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000040}
41
Jim Flynne242f2d2019-05-22 14:24:13 +010042BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000043{
Jim Flynne242f2d2019-05-22 14:24:13 +010044 ConcatDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000045}
46
Jim Flynne242f2d2019-05-22 14:24:13 +010047BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Test)
narpra01b9546cf2018-11-20 15:21:28 +000048{
Jim Flynne242f2d2019-05-22 14:24:13 +010049 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000050}
51
Jim Flynne242f2d2019-05-22 14:24:13 +010052BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000053{
Jim Flynne242f2d2019-05-22 14:24:13 +010054 ConcatDim3EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Aron Virginas-Tar70104002018-10-24 15:33:28 +010055}
56
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010057BOOST_AUTO_TEST_CASE(DequantizeEndToEndSimpleTest)
58{
59 DequantizeEndToEndSimple<armnn::DataType::QuantisedAsymm8>(defaultBackends);
60}
61
62BOOST_AUTO_TEST_CASE(DequantizeEndToEndOffsetTest)
63{
64 DequantizeEndToEndOffset<armnn::DataType::QuantisedAsymm8>(defaultBackends);
65}
66
Nattapat Chaimanowongc6a41ff2019-01-29 09:56:02 +000067BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndTest)
68{
69 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
70 0, 0, 0, 0, 0, 0, 0, 0 });
71
72 ArithmeticSimpleEndToEnd<armnn::DataType::Float32, armnn::DataType::Boolean>(defaultBackends,
73 LayerType::Greater,
74 expectedOutput);
75}
76
77BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndUint8Test)
78{
79 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
80 0, 0, 0, 0, 0, 0, 0, 0 });
81
82 ArithmeticSimpleEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Boolean>(defaultBackends,
83 LayerType::Greater,
84 expectedOutput);
85}
86
87BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndTest)
88{
89 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
90 1, 1, 1, 1, 1, 1 });
91
92 ArithmeticBroadcastEndToEnd<armnn::DataType::Float32, armnn::DataType::Boolean>(defaultBackends,
93 LayerType::Greater,
94 expectedOutput);
95}
96
97BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndUint8Test)
98{
99 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
100 1, 1, 1, 1, 1, 1 });
101
102 ArithmeticBroadcastEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Boolean>(defaultBackends,
103 LayerType::Greater,
104 expectedOutput);
105}
106
Nikhil Raj2ec73ac2019-07-22 10:13:22 +0100107BOOST_AUTO_TEST_CASE(ClPreluEndToEndFloat32Test)
108{
109 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
110}
111
112BOOST_AUTO_TEST_CASE(ClPreluEndToEndTestUint8)
113{
114 PreluEndToEndPositiveTest<armnn::DataType::QuantisedAsymm8>(defaultBackends);
115}
116
James Conroy60597842019-07-02 10:57:56 +0100117BOOST_AUTO_TEST_CASE(ClSpaceToDepthNHWCEndToEndTest1)
118{
119 SpaceToDepthNHWCEndToEndTest1(defaultBackends);
120}
121
122BOOST_AUTO_TEST_CASE(ClSpaceToDepthNCHWEndToEndTest1)
123{
124 SpaceToDepthNCHWEndToEndTest1(defaultBackends);
125}
126
127BOOST_AUTO_TEST_CASE(ClSpaceToDepthNHWCEndToEndTest2)
128{
129 SpaceToDepthNHWCEndToEndTest2(defaultBackends);
130}
131
132BOOST_AUTO_TEST_CASE(ClSpaceToDepthNCHWEndToEndTest2)
133{
134 SpaceToDepthNCHWEndToEndTest2(defaultBackends);
135}
136
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100137BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100138{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100139 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100140}
141
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100142BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100143{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100144 Splitter1dEndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100145}
146
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100147BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100148{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100149 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100150}
151
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100152BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100153{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100154 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100155}
156
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100157BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100158{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100159 Splitter2dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100160}
161
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100162BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100163{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100164 Splitter2dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100165}
166
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100167BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100168{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100169 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100170}
171
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100172BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100173{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100174 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100175}
176
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100177BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndTest)
178{
179 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
180}
181
182BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndUint8Test)
183{
184 Splitter3dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
185}
186
187BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndUint8Test)
188{
189 Splitter3dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
190}
191
192BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndUint8Test)
193{
194 Splitter3dDim2EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
195}
196
197BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndTest)
198{
199 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
200}
201
202BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndTest)
203{
204 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
205}
206
207BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndTest)
208{
209 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
210}
211
212BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndTest)
213{
214 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
215}
216
217BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndUint8Test)
218{
219 Splitter4dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
220}
221
222BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndUint8Test)
223{
224 Splitter4dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
225}
226
227BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndUint8Test)
228{
229 Splitter4dDim2EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
230}
231
232BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndUint8Test)
233{
234 Splitter4dDim3EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
235}
Nattapat Chaimanowongc6a41ff2019-01-29 09:56:02 +0000236
Aron Virginas-Tar7a3e2fe2019-06-27 18:54:47 +0100237// TransposeConvolution2d
238BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNchwTest)
239{
240 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
241 defaultBackends, armnn::DataLayout::NCHW);
242}
243
244BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NchwTest)
245{
246 TransposeConvolution2dEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>(
247 defaultBackends, armnn::DataLayout::NCHW);
248}
249
250BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNhwcTest)
251{
252 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
253 defaultBackends, armnn::DataLayout::NHWC);
254}
255
256BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NhwcTest)
257{
258 TransposeConvolution2dEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>(
259 defaultBackends, armnn::DataLayout::NHWC);
260}
261
262BOOST_AUTO_TEST_SUITE_END()