blob: ba01c5a980301137975df41a3900a152a4dd04a4 [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>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010011#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Aron Virginas-Tar7a3e2fe2019-06-27 18:54:47 +010012#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010013
14#include <boost/test/unit_test.hpp>
15
16BOOST_AUTO_TEST_SUITE(ClEndToEnd)
17
narpra01b9546cf2018-11-20 15:21:28 +000018std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::GpuAcc};
19
Aron Virginas-Tar70104002018-10-24 15:33:28 +010020BOOST_AUTO_TEST_CASE(ConstantUsage_Cl_Float32)
21{
narpra01b9546cf2018-11-20 15:21:28 +000022 ConstantUsageFloat32Test(defaultBackends);
23}
24
Jim Flynne242f2d2019-05-22 14:24:13 +010025BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Test)
narpra01b9546cf2018-11-20 15:21:28 +000026{
Jim Flynne242f2d2019-05-22 14:24:13 +010027 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000028}
29
Jim Flynne242f2d2019-05-22 14:24:13 +010030BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim0Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000031{
Jim Flynne242f2d2019-05-22 14:24:13 +010032 ConcatDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000033}
34
Jim Flynne242f2d2019-05-22 14:24:13 +010035BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Test)
narpra01b9546cf2018-11-20 15:21:28 +000036{
Jim Flynne242f2d2019-05-22 14:24:13 +010037 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000038}
39
Jim Flynne242f2d2019-05-22 14:24:13 +010040BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim1Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000041{
Jim Flynne242f2d2019-05-22 14:24:13 +010042 ConcatDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000043}
44
Jim Flynne242f2d2019-05-22 14:24:13 +010045BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Test)
narpra01b9546cf2018-11-20 15:21:28 +000046{
Jim Flynne242f2d2019-05-22 14:24:13 +010047 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +000048}
49
Jim Flynne242f2d2019-05-22 14:24:13 +010050BOOST_AUTO_TEST_CASE(ClConcatEndToEndDim3Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +000051{
Jim Flynne242f2d2019-05-22 14:24:13 +010052 ConcatDim3EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Aron Virginas-Tar70104002018-10-24 15:33:28 +010053}
54
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010055BOOST_AUTO_TEST_CASE(DequantizeEndToEndSimpleTest)
56{
57 DequantizeEndToEndSimple<armnn::DataType::QuantisedAsymm8>(defaultBackends);
58}
59
60BOOST_AUTO_TEST_CASE(DequantizeEndToEndOffsetTest)
61{
62 DequantizeEndToEndOffset<armnn::DataType::QuantisedAsymm8>(defaultBackends);
63}
64
Nattapat Chaimanowongc6a41ff2019-01-29 09:56:02 +000065BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndTest)
66{
67 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
68 0, 0, 0, 0, 0, 0, 0, 0 });
69
70 ArithmeticSimpleEndToEnd<armnn::DataType::Float32, armnn::DataType::Boolean>(defaultBackends,
71 LayerType::Greater,
72 expectedOutput);
73}
74
75BOOST_AUTO_TEST_CASE(ClGreaterSimpleEndToEndUint8Test)
76{
77 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
78 0, 0, 0, 0, 0, 0, 0, 0 });
79
80 ArithmeticSimpleEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Boolean>(defaultBackends,
81 LayerType::Greater,
82 expectedOutput);
83}
84
85BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndTest)
86{
87 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
88 1, 1, 1, 1, 1, 1 });
89
90 ArithmeticBroadcastEndToEnd<armnn::DataType::Float32, armnn::DataType::Boolean>(defaultBackends,
91 LayerType::Greater,
92 expectedOutput);
93}
94
95BOOST_AUTO_TEST_CASE(ClGreaterBroadcastEndToEndUint8Test)
96{
97 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
98 1, 1, 1, 1, 1, 1 });
99
100 ArithmeticBroadcastEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Boolean>(defaultBackends,
101 LayerType::Greater,
102 expectedOutput);
103}
104
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100105BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100106{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100107 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100108}
109
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100110BOOST_AUTO_TEST_CASE(ClSplitter1dEndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100111{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100112 Splitter1dEndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100113}
114
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100115BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100116{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100117 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100118}
119
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100120BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100121{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100122 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100123}
124
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100125BOOST_AUTO_TEST_CASE(ClSplitter2dDim0EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100126{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100127 Splitter2dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100128}
129
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100130BOOST_AUTO_TEST_CASE(ClSplitter2dDim1EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100131{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100132 Splitter2dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100133}
134
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100135BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100136{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100137 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100138}
139
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100140BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100141{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100142 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100143}
144
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100145BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndTest)
146{
147 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
148}
149
150BOOST_AUTO_TEST_CASE(ClSplitter3dDim0EndToEndUint8Test)
151{
152 Splitter3dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
153}
154
155BOOST_AUTO_TEST_CASE(ClSplitter3dDim1EndToEndUint8Test)
156{
157 Splitter3dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
158}
159
160BOOST_AUTO_TEST_CASE(ClSplitter3dDim2EndToEndUint8Test)
161{
162 Splitter3dDim2EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
163}
164
165BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndTest)
166{
167 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
168}
169
170BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndTest)
171{
172 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
173}
174
175BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndTest)
176{
177 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
178}
179
180BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndTest)
181{
182 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
183}
184
185BOOST_AUTO_TEST_CASE(ClSplitter4dDim0EndToEndUint8Test)
186{
187 Splitter4dDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
188}
189
190BOOST_AUTO_TEST_CASE(ClSplitter4dDim1EndToEndUint8Test)
191{
192 Splitter4dDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
193}
194
195BOOST_AUTO_TEST_CASE(ClSplitter4dDim2EndToEndUint8Test)
196{
197 Splitter4dDim2EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
198}
199
200BOOST_AUTO_TEST_CASE(ClSplitter4dDim3EndToEndUint8Test)
201{
202 Splitter4dDim3EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
203}
Nattapat Chaimanowongc6a41ff2019-01-29 09:56:02 +0000204
Aron Virginas-Tar7a3e2fe2019-06-27 18:54:47 +0100205// TransposeConvolution2d
206BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNchwTest)
207{
208 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
209 defaultBackends, armnn::DataLayout::NCHW);
210}
211
212BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NchwTest)
213{
214 TransposeConvolution2dEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>(
215 defaultBackends, armnn::DataLayout::NCHW);
216}
217
218BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndFloatNhwcTest)
219{
220 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
221 defaultBackends, armnn::DataLayout::NHWC);
222}
223
224BOOST_AUTO_TEST_CASE(ClTransposeConvolution2dEndToEndUint8NhwcTest)
225{
226 TransposeConvolution2dEndToEnd<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>(
227 defaultBackends, armnn::DataLayout::NHWC);
228}
229
230BOOST_AUTO_TEST_SUITE_END()