blob: c33190f67cd11fb02473915f3661223be2c354f9 [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>
Francis Murtaghb3fc2522019-08-09 13:20:50 +010012#include <backendsCommon/test/QuantizedLstmEndToEndTestImpl.hpp>
James Conroy60597842019-07-02 10:57:56 +010013#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010014#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Aron Virginas-Tar7a3e2fe2019-06-27 18:54:47 +010015#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010016
17#include <boost/test/unit_test.hpp>
18
19BOOST_AUTO_TEST_SUITE(ClEndToEnd)
20
narpra01b9546cf2018-11-20 15:21:28 +000021std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::GpuAcc};
22
Aron Virginas-Tar70104002018-10-24 15:33:28 +010023BOOST_AUTO_TEST_CASE(ConstantUsage_Cl_Float32)
24{
narpra01b9546cf2018-11-20 15:21:28 +000025 ConstantUsageFloat32Test(defaultBackends);
26}
27
Jim Flynne242f2d2019-05-22 14:24:13 +010028BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Test)
narpra01b9546cf2018-11-20 15:21:28 +000029{
Jim Flynne242f2d2019-05-22 14:24:13 +010030 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000031}
32
Jim Flynne242f2d2019-05-22 14:24:13 +010033BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000034{
Jim Flynne242f2d2019-05-22 14:24:13 +010035 ConcatDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000036}
37
Jim Flynne242f2d2019-05-22 14:24:13 +010038BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Test)
narpra01b9546cf2018-11-20 15:21:28 +000039{
Jim Flynne242f2d2019-05-22 14:24:13 +010040 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000041}
42
Jim Flynne242f2d2019-05-22 14:24:13 +010043BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000044{
Jim Flynne242f2d2019-05-22 14:24:13 +010045 ConcatDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000046}
47
Jim Flynne242f2d2019-05-22 14:24:13 +010048BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Test)
narpra01b9546cf2018-11-20 15:21:28 +000049{
Jim Flynne242f2d2019-05-22 14:24:13 +010050 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000051}
52
Jim Flynne242f2d2019-05-22 14:24:13 +010053BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000054{
Jim Flynne242f2d2019-05-22 14:24:13 +010055 ConcatDim3EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Aron Virginas-Tar70104002018-10-24 15:33:28 +010056}
57
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010058BOOST_AUTO_TEST_CASE(DequantizeEndToEndSimpleTest)
59{
60 DequantizeEndToEndSimple<armnn::DataType::QuantisedAsymm8>(defaultBackends);
61}
62
63BOOST_AUTO_TEST_CASE(DequantizeEndToEndOffsetTest)
64{
65 DequantizeEndToEndOffset<armnn::DataType::QuantisedAsymm8>(defaultBackends);
66}
67
Nattapat Chaimanowongc6a41ff2019-01-29 09:56:02 +000068BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndTest)
69{
70 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
71 0, 0, 0, 0, 0, 0, 0, 0 });
72
73 ArithmeticSimpleEndToEnd<armnn::DataType::Float32, armnn::DataType::Boolean>(defaultBackends,
74 LayerType::Greater,
75 expectedOutput);
76}
77
78BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndUint8Test)
79{
80 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
81 0, 0, 0, 0, 0, 0, 0, 0 });
82
83 ArithmeticSimpleEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Boolean>(defaultBackends,
84 LayerType::Greater,
85 expectedOutput);
86}
87
88BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndTest)
89{
90 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
91 1, 1, 1, 1, 1, 1 });
92
93 ArithmeticBroadcastEndToEnd<armnn::DataType::Float32, armnn::DataType::Boolean>(defaultBackends,
94 LayerType::Greater,
95 expectedOutput);
96}
97
98BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndUint8Test)
99{
100 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
101 1, 1, 1, 1, 1, 1 });
102
103 ArithmeticBroadcastEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Boolean>(defaultBackends,
104 LayerType::Greater,
105 expectedOutput);
106}
107
Nikhil Raj2ec73ac2019-07-22 10:13:22 +0100108BOOST_AUTO_TEST_CASE(ClPreluEndToEndFloat32Test)
109{
110 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
111}
112
113BOOST_AUTO_TEST_CASE(ClPreluEndToEndTestUint8)
114{
115 PreluEndToEndPositiveTest<armnn::DataType::QuantisedAsymm8>(defaultBackends);
116}
117
James Conroy60597842019-07-02 10:57:56 +0100118BOOST_AUTO_TEST_CASE(ClSpaceToDepthNHWCEndToEndTest1)
119{
120 SpaceToDepthNHWCEndToEndTest1(defaultBackends);
121}
122
123BOOST_AUTO_TEST_CASE(ClSpaceToDepthNCHWEndToEndTest1)
124{
125 SpaceToDepthNCHWEndToEndTest1(defaultBackends);
126}
127
128BOOST_AUTO_TEST_CASE(ClSpaceToDepthNHWCEndToEndTest2)
129{
130 SpaceToDepthNHWCEndToEndTest2(defaultBackends);
131}
132
133BOOST_AUTO_TEST_CASE(ClSpaceToDepthNCHWEndToEndTest2)
134{
135 SpaceToDepthNCHWEndToEndTest2(defaultBackends);
136}
137
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100138BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100139{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100140 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100141}
142
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100143BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100144{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100145 Splitter1dEndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100146}
147
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100148BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100149{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100150 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100151}
152
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100153BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100154{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100155 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100156}
157
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100158BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100159{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100160 Splitter2dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100161}
162
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100163BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100164{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100165 Splitter2dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100166}
167
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100168BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100169{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100170 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100171}
172
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100173BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100174{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100175 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100176}
177
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100178BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndTest)
179{
180 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
181}
182
183BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndUint8Test)
184{
185 Splitter3dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
186}
187
188BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndUint8Test)
189{
190 Splitter3dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
191}
192
193BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndUint8Test)
194{
195 Splitter3dDim2EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
196}
197
198BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndTest)
199{
200 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
201}
202
203BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndTest)
204{
205 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
206}
207
208BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndTest)
209{
210 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
211}
212
213BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndTest)
214{
215 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
216}
217
218BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndUint8Test)
219{
220 Splitter4dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
221}
222
223BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndUint8Test)
224{
225 Splitter4dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
226}
227
228BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndUint8Test)
229{
230 Splitter4dDim2EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
231}
232
233BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndUint8Test)
234{
235 Splitter4dDim3EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
236}
Nattapat Chaimanowongc6a41ff2019-01-29 09:56:02 +0000237
Aron Virginas-Tar7a3e2fe2019-06-27 18:54:47 +0100238// TransposeConvolution2d
239BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNchwTest)
240{
241 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
242 defaultBackends, armnn::DataLayout::NCHW);
243}
244
245BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NchwTest)
246{
247 TransposeConvolution2dEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>(
248 defaultBackends, armnn::DataLayout::NCHW);
249}
250
251BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNhwcTest)
252{
253 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
254 defaultBackends, armnn::DataLayout::NHWC);
255}
256
257BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NhwcTest)
258{
259 TransposeConvolution2dEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>(
260 defaultBackends, armnn::DataLayout::NHWC);
261}
262
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100263BOOST_AUTO_TEST_CASE(ClQuantizedLstmEndToEndTest)
264{
265 QuantizedLstmEndToEnd(defaultBackends);
266}
267
Aron Virginas-Tar7a3e2fe2019-06-27 18:54:47 +0100268BOOST_AUTO_TEST_SUITE_END()