blob: 424df977c87c5064547b7396a393aec89685b734 [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
Mike Kelly386ff1a2021-03-29 15:04:50 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Aron Virginas-Tar70104002018-10-24 15:33:28 +01003// SPDX-License-Identifier: MIT
4//
5
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00006#include <backendsCommon/test/EndToEndTestImpl.hpp>
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +00007
Jan Eilersbca73e12020-03-11 12:52:46 +00008#include <backendsCommon/test/ActivationEndToEndTestImpl.hpp>
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00009#include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
Francis Murtaghe24e3cd2019-06-25 14:41:55 +010010#include <backendsCommon/test/BatchToSpaceNdEndToEndTestImpl.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010011#include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010012#include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +010013#include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010014#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010015#include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060016#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
Teresa Charlin44088502020-07-27 11:27:19 +010017#include <backendsCommon/test/FillEndToEndTestImpl.hpp>
Sadik Armaganf0a6dec2021-03-25 07:46:55 +000018#include <backendsCommon/test/FullyConnectedEndToEndTestImpl.hpp>
narpra01db2b1602019-01-23 15:23:11 +000019#include <backendsCommon/test/GatherEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010020#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Sadik Armagan20bea002019-10-16 09:29:38 +010021#include <backendsCommon/test/LogSoftmaxEndToEndTestImpl.hpp>
Nikhil Raj747f5862019-07-19 15:15:23 +010022#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010023#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Teresa Charlin2e3f4d22020-07-29 14:29:20 +010024#include <backendsCommon/test/RankEndToEndTestImpl.hpp>
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010025#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Keith Davis9515c7e2019-06-21 09:33:59 +010026#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010027#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly386ff1a2021-03-29 15:04:50 +010028#include <backendsCommon/test/StridedSliceAsyncEndToEndTest.hpp>
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +010029#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010030
Sadik Armagan1625efc2021-06-10 18:24:34 +010031#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010032
Sadik Armagan1625efc2021-06-10 18:24:34 +010033TEST_SUITE("RefEndToEnd")
34{
narpra01b9546cf2018-11-20 15:21:28 +000035std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuRef};
36
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010037// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010038TEST_CASE("RefAbsEndToEndTestFloat32")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010039{
josh minor4a3c6102020-01-06 16:40:46 -060040 std::vector<float> expectedOutput =
41 {
42 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
43 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
44 };
45
46 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
47 UnaryOperation::Abs,
48 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010049}
50
Sadik Armagan1625efc2021-06-10 18:24:34 +010051TEST_CASE("RefAbsEndToEndTestUint8")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010052{
josh minor4a3c6102020-01-06 16:40:46 -060053 // Note the expected output will be implicitly quantized by the below test function
54 std::vector<float> expectedOutput =
55 {
56 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
57 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
58 };
59
60 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
61 UnaryOperation::Abs,
62 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010063}
64
Sadik Armagan1625efc2021-06-10 18:24:34 +010065TEST_CASE("RefAbsEndToEndTestInt16")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010066{
josh minor4a3c6102020-01-06 16:40:46 -060067 // Note the expected output will be implicitly quantized by the below test function
68 std::vector<float> expectedOutput =
69 {
70 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
71 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
72 };
73
74 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
75 UnaryOperation::Abs,
76 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010077}
78
79// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010080TEST_CASE("ConstantUsage_Ref_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010081{
Sadik Armagan1625efc2021-06-10 18:24:34 +010082 CHECK(ConstantUsageFloat32Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010083}
84
Sadik Armagan1625efc2021-06-10 18:24:34 +010085TEST_CASE("ConstantUsage_Ref_Uint8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010086{
Sadik Armagan1625efc2021-06-10 18:24:34 +010087 CHECK(ConstantUsageUint8Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010088}
89
Sadik Armagan1625efc2021-06-10 18:24:34 +010090TEST_CASE("Unsigned8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010091{
92 using namespace armnn;
93
94 // Create runtime in which test will run
95 armnn::IRuntime::CreationOptions options;
96 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
97
98 // Builds up the structure of the network.
99 armnn::INetworkPtr net(INetwork::Create());
100
101 IConnectableLayer* input = net->AddInputLayer(0, "input");
102 IConnectableLayer* softmax = net->AddSoftmaxLayer(SoftmaxDescriptor(), "softmax");
103 IConnectableLayer* output = net->AddOutputLayer(0, "output");
104
105 input->GetOutputSlot(0).Connect(softmax->GetInputSlot(0));
106 softmax->GetOutputSlot(0).Connect(output->GetInputSlot(0));
107
108 // Sets the tensors in the network.
Derek Lambertif90c56d2020-01-10 17:14:08 +0000109 TensorInfo inputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100110 inputTensorInfo.SetQuantizationOffset(100);
111 inputTensorInfo.SetQuantizationScale(10000.0f);
112 input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
113
Derek Lambertif90c56d2020-01-10 17:14:08 +0000114 TensorInfo outputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100115 outputTensorInfo.SetQuantizationOffset(0);
116 outputTensorInfo.SetQuantizationScale(1.0f/255.0f);
117 softmax->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
118
119 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000120 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100121
122 // Loads it into the runtime.
123 NetworkId netId;
124 auto error = runtime->LoadNetwork(netId, std::move(optNet));
Sadik Armagan1625efc2021-06-10 18:24:34 +0100125 CHECK(error == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100126
127 // Creates structures for input & output.
128 std::vector<uint8_t> inputData
129 {
130 1, 10, 3, 200, 5 // Some inputs - one of which is sufficiently larger than the others to saturate softmax.
131 };
132 std::vector<uint8_t> outputData(5);
133
134 armnn::InputTensors inputTensors
135 {
136 {0, armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())}
137 };
138 armnn::OutputTensors outputTensors
139 {
140 {0, armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
141 };
142
143 // Does the inference.
144 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
145
146 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100147 CHECK(outputData[0] == 0);
148 CHECK(outputData[1] == 0);
149 CHECK(outputData[2] == 0);
150 CHECK(outputData[3] == 255); // softmax has been saturated.
151 CHECK(outputData[4] == 0);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100152}
153
Sadik Armagan1625efc2021-06-10 18:24:34 +0100154TEST_CASE("TrivialAdd")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100155{
156 // This test was designed to match "AddTwo" in android nn/runtime/test/TestTrivialModel.cpp.
157
158 using namespace armnn;
159
160 // Create runtime in which test will run
161 armnn::IRuntime::CreationOptions options;
162 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
163
164 // Builds up the structure of the network.
165 armnn::INetworkPtr net(INetwork::Create());
166
167 IConnectableLayer* input1 = net->AddInputLayer(0);
168 IConnectableLayer* input2 = net->AddInputLayer(1);
169 IConnectableLayer* add = net->AddAdditionLayer();
170 IConnectableLayer* output = net->AddOutputLayer(0);
171
172 input1->GetOutputSlot(0).Connect(add->GetInputSlot(0));
173 input2->GetOutputSlot(0).Connect(add->GetInputSlot(1));
174 add->GetOutputSlot(0).Connect(output->GetInputSlot(0));
175
176 // Sets the tensors in the network.
177 TensorInfo tensorInfo(TensorShape({3, 4}), DataType::Float32);
178 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
179 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
180 add->GetOutputSlot(0).SetTensorInfo(tensorInfo);
181
182 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000183 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100184
185 // Loads it into the runtime.
186 NetworkId netId;
187 runtime->LoadNetwork(netId, std::move(optNet));
188
189 // Creates structures for input & output - matching android nn test.
190 std::vector<float> input1Data
191 {
192 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f
193 };
194 std::vector<float> input2Data
195 {
196 100.f, 200.f, 300.f, 400.f, 500.f, 600.f, 700.f, 800.f, 900.f, 1000.f, 1100.f, 1200.f
197 };
198 std::vector<float> outputData(12);
199
200 InputTensors inputTensors
201 {
202 {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input1Data.data())},
203 {1,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input2Data.data())}
204 };
205 OutputTensors outputTensors
206 {
207 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
208 };
209
210 // Does the inference.
211 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
212
213 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100214 CHECK(outputData[0] == 101);
215 CHECK(outputData[1] == 202);
216 CHECK(outputData[2] == 303);
217 CHECK(outputData[3] == 404);
218 CHECK(outputData[4] == 505);
219 CHECK(outputData[5] == 606);
220 CHECK(outputData[6] == 707);
221 CHECK(outputData[7] == 808);
222 CHECK(outputData[8] == 909);
223 CHECK(outputData[9] == 1010);
224 CHECK(outputData[10] == 1111);
225 CHECK(outputData[11] == 1212);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100226}
227
Sadik Armagan1625efc2021-06-10 18:24:34 +0100228TEST_CASE("MultipleOutputs")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100229{
230 using namespace armnn;
231
232 // Create runtime in which test will run
233 armnn::IRuntime::CreationOptions options;
234 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
235
236 // Builds up the structure of the network.
237 INetworkPtr net(INetwork::Create());
238
239 IConnectableLayer* input = net->AddInputLayer(0);
240
241 // ReLu1
242 ActivationDescriptor activation1Descriptor;
243 activation1Descriptor.m_Function = ActivationFunction::BoundedReLu;
244 activation1Descriptor.m_A = 1.f;
245 activation1Descriptor.m_B = -1.f;
246 IConnectableLayer* activation1 = net->AddActivationLayer(activation1Descriptor);
247
248 // ReLu6
249 ActivationDescriptor activation2Descriptor;
250 activation2Descriptor.m_Function = ActivationFunction::BoundedReLu;
251 activation2Descriptor.m_A = 6.0f;
252 IConnectableLayer* activation2 = net->AddActivationLayer(activation2Descriptor);
253
254 // BoundedReLu(min=2, max=5)
255 ActivationDescriptor activation3Descriptor;
256 activation3Descriptor.m_Function = ActivationFunction::BoundedReLu;
257 activation3Descriptor.m_A = 5.0f;
258 activation3Descriptor.m_B = 2.0f;
259 IConnectableLayer* activation3 = net->AddActivationLayer(activation3Descriptor);
260
261 IConnectableLayer* output1 = net->AddOutputLayer(0);
262 IConnectableLayer* output2 = net->AddOutputLayer(1);
263 IConnectableLayer* output3 = net->AddOutputLayer(2);
264
265 input->GetOutputSlot(0).Connect(activation1->GetInputSlot(0));
266 input->GetOutputSlot(0).Connect(activation2->GetInputSlot(0));
267 input->GetOutputSlot(0).Connect(activation3->GetInputSlot(0));
268
269 activation1->GetOutputSlot(0).Connect(output1->GetInputSlot(0));
270 activation2->GetOutputSlot(0).Connect(output2->GetInputSlot(0));
271 activation3->GetOutputSlot(0).Connect(output3->GetInputSlot(0));
272
273 // Sets the tensors in the network.
274 TensorInfo tensorInfo(TensorShape({ 10 }), DataType::Float32);
275 input->GetOutputSlot(0).SetTensorInfo(tensorInfo);
276 activation1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
277 activation2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
278 activation3->GetOutputSlot(0).SetTensorInfo(tensorInfo);
279
280 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000281 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100282
283 // Loads it into the runtime.
284 NetworkId netId;
285 runtime->LoadNetwork(netId, std::move(optNet));
286
287 // Creates structures for input & output.
288 const std::vector<float> inputData{ 3.f, 5.f, 2.f, 3.f, 7.f, 0.f, -2.f, -1.f, 3.f, 3.f };
289
290 std::vector<float> output1Data(inputData.size());
291 std::vector<float> output2Data(inputData.size());
292 std::vector<float> output3Data(inputData.size());
293
294 InputTensors inputTensors
295 {
296 {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())}
297 };
298 OutputTensors outputTensors
299 {
300 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), output1Data.data())},
301 {1,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 1), output2Data.data())},
302 {2,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 2), output3Data.data())}
303 };
304
305 // Does the inference.
306 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
307
308 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100309 CHECK(output1Data == std::vector<float>({ 1.f, 1.f, 1.f, 1.f, 1.f, 0.f, -1.f, -1.f, 1.f, 1.f })); // ReLu1
310 CHECK(output2Data == std::vector<float>({ 3.f, 5.f, 2.f, 3.f, 6.f, 0.f, 0.f, 0.f, 3.f, 3.f })); // ReLu6
311 CHECK(output3Data == std::vector<float>({ 3.f, 5.f, 2.f, 3.f, 5.f, 2.f, 2.f, 2.f, 3.f, 3.f })); // [2, 5]
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100312}
313
Sadik Armagan1625efc2021-06-10 18:24:34 +0100314TEST_CASE("TrivialMin")
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000315{
316 using namespace armnn;
317
318 // Create runtime in which test will run
319 armnn::IRuntime::CreationOptions options;
320 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
321
322 // Builds up the structure of the network.
323 armnn::INetworkPtr net(INetwork::Create());
324
325 IConnectableLayer* input1 = net->AddInputLayer(0);
326 IConnectableLayer* input2 = net->AddInputLayer(1);
327 IConnectableLayer* min = net->AddMinimumLayer();
328 IConnectableLayer* output = net->AddOutputLayer(0);
329
330 input1->GetOutputSlot(0).Connect(min->GetInputSlot(0));
331 input2->GetOutputSlot(0).Connect(min->GetInputSlot(1));
332 min->GetOutputSlot(0).Connect(output->GetInputSlot(0));
333
334 // Sets the tensors in the network.
335 TensorInfo tensorInfo(TensorShape({1, 1, 1, 4}), DataType::Float32);
336 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
337 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
338 min->GetOutputSlot(0).SetTensorInfo(tensorInfo);
339
340 // optimize the network
341 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
342
343 // Loads it into the runtime.
344 NetworkId netId;
345 runtime->LoadNetwork(netId, std::move(optNet));
346
347 // Creates structures for input & output - matching android nn test.
348 std::vector<float> input1Data
349 {
350 1.0f, 2.0f, 3.0f, 4.0f
351 };
352 std::vector<float> input2Data
353 {
354 2.0f, 1.0f, 5.0f, 2.0f
355 };
356 std::vector<float> outputData(4);
357
358 InputTensors inputTensors
359 {
360 {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input1Data.data())},
361 {1,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input2Data.data())}
362 };
363 OutputTensors outputTensors
364 {
365 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
366 };
367
368 // Does the inference.
369 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
370
371 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100372 CHECK(outputData[0] == 1);
373 CHECK(outputData[1] == 1);
374 CHECK(outputData[2] == 3);
375 CHECK(outputData[3] == 2);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000376}
377
Sadik Armagan1625efc2021-06-10 18:24:34 +0100378TEST_CASE("RefEqualSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000379{
kevmay012b4d88e2019-01-24 14:05:09 +0000380 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
381 0, 0, 0, 0, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000382
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100383 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
384 ComparisonOperation::Equal,
385 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000386}
387
Sadik Armagan1625efc2021-06-10 18:24:34 +0100388TEST_CASE("RefGreaterSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000389{
kevmay012b4d88e2019-01-24 14:05:09 +0000390 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
391 0, 0, 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000392
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100393 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
394 ComparisonOperation::Greater,
395 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000396}
397
Sadik Armagan1625efc2021-06-10 18:24:34 +0100398TEST_CASE("RefEqualSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000399{
400 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
401 0, 0, 0, 0, 1, 1, 1, 1 });
402
Derek Lambertif90c56d2020-01-10 17:14:08 +0000403 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100404 ComparisonOperation::Equal,
405 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000406}
407
Sadik Armagan1625efc2021-06-10 18:24:34 +0100408TEST_CASE("RefGreaterSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000409{
410 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
411 0, 0, 0, 0, 0, 0, 0, 0 });
412
Derek Lambertif90c56d2020-01-10 17:14:08 +0000413 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100414 ComparisonOperation::Greater,
415 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000416}
417
Sadik Armagan1625efc2021-06-10 18:24:34 +0100418TEST_CASE("RefEqualBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000419{
kevmay012b4d88e2019-01-24 14:05:09 +0000420 const std::vector<uint8_t> expectedOutput({ 1, 0, 1, 1, 0, 0,
421 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000422
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100423 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
424 ComparisonOperation::Equal,
425 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000426}
427
Sadik Armagan1625efc2021-06-10 18:24:34 +0100428TEST_CASE("RefGreaterBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000429{
kevmay012b4d88e2019-01-24 14:05:09 +0000430 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
431 1, 1, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000432
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100433 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
434 ComparisonOperation::Greater,
435 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000436}
437
Sadik Armagan1625efc2021-06-10 18:24:34 +0100438TEST_CASE("RefEqualBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000439{
440 const std::vector<uint8_t > expectedOutput({ 1, 0, 1, 1, 0, 0,
441 0, 0, 0, 0, 0, 0 });
442
Derek Lambertif90c56d2020-01-10 17:14:08 +0000443 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100444 ComparisonOperation::Equal,
445 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000446}
447
Sadik Armagan1625efc2021-06-10 18:24:34 +0100448TEST_CASE("RefGreaterBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000449{
450 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
451 1, 1, 1, 1, 1, 1 });
452
Derek Lambertif90c56d2020-01-10 17:14:08 +0000453 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100454 ComparisonOperation::Greater,
455 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000456}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000457
Sadik Armagan1625efc2021-06-10 18:24:34 +0100458TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100459{
460 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
461}
462
Sadik Armagan1625efc2021-06-10 18:24:34 +0100463TEST_CASE("RefBatchToSpaceNdEndToEndUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100464{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000465 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100466}
467
Sadik Armagan1625efc2021-06-10 18:24:34 +0100468TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100469{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000470 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100471}
472
Sadik Armagan1625efc2021-06-10 18:24:34 +0100473TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100474{
475 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
476}
477
Sadik Armagan1625efc2021-06-10 18:24:34 +0100478TEST_CASE("RefBatchToSpaceNdEndToEndUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100479{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000480 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100481}
482
Sadik Armagan1625efc2021-06-10 18:24:34 +0100483TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100484{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000485 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100486}
487
Sadik Armagan1625efc2021-06-10 18:24:34 +0100488TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100489{
490 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
491}
492
Sadik Armagan1625efc2021-06-10 18:24:34 +0100493TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100494{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000495 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100496}
497
Sadik Armagan1625efc2021-06-10 18:24:34 +0100498TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100499{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000500 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100501}
502
Sadik Armagan1625efc2021-06-10 18:24:34 +0100503TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100504{
505 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
506}
507
Sadik Armagan1625efc2021-06-10 18:24:34 +0100508TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100509{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000510 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100511}
512
Sadik Armagan1625efc2021-06-10 18:24:34 +0100513TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100514{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000515 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100516}
517
Sadik Armagan1625efc2021-06-10 18:24:34 +0100518TEST_CASE("RefConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000519{
Jim Flynne242f2d2019-05-22 14:24:13 +0100520 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000521}
522
Sadik Armagan1625efc2021-06-10 18:24:34 +0100523TEST_CASE("RefConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000524{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000525 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000526}
527
Sadik Armagan1625efc2021-06-10 18:24:34 +0100528TEST_CASE("RefConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000529{
Jim Flynne242f2d2019-05-22 14:24:13 +0100530 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000531}
532
Sadik Armagan1625efc2021-06-10 18:24:34 +0100533TEST_CASE("RefConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000534{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000535 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000536}
537
Sadik Armagan1625efc2021-06-10 18:24:34 +0100538TEST_CASE("RefConcatEndToEndDim2Test")
narpra01b9546cf2018-11-20 15:21:28 +0000539{
Jim Flynne242f2d2019-05-22 14:24:13 +0100540 ConcatDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000541}
542
Sadik Armagan1625efc2021-06-10 18:24:34 +0100543TEST_CASE("RefConcatEndToEndDim2Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000544{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000545 ConcatDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000546}
547
Sadik Armagan1625efc2021-06-10 18:24:34 +0100548TEST_CASE("RefConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000549{
Jim Flynne242f2d2019-05-22 14:24:13 +0100550 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000551}
552
Sadik Armagan1625efc2021-06-10 18:24:34 +0100553TEST_CASE("RefConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000554{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000555 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000556}
557
Sadik Armagan1625efc2021-06-10 18:24:34 +0100558TEST_CASE("RefEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000559{
560 EluEndToEndTest<armnn::DataType::Float32>(defaultBackends);
561}
562
Sadik Armagan1625efc2021-06-10 18:24:34 +0100563TEST_CASE("RefEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000564{
565 EluEndToEndTest<armnn::DataType::Float16>(defaultBackends);
566}
567
Sadik Armagan1625efc2021-06-10 18:24:34 +0100568TEST_CASE("RefEluEndToEndTestBFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000569{
570 EluEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
571}
572
Sadik Armagan1625efc2021-06-10 18:24:34 +0100573TEST_CASE("RefEluEndToEndTestQAsymmS8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000574{
575 EluEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
576}
577
Sadik Armagan1625efc2021-06-10 18:24:34 +0100578TEST_CASE("RefEluEndToEndTestQAsymmU8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000579{
580 EluEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
581}
582
Sadik Armagan1625efc2021-06-10 18:24:34 +0100583TEST_CASE("RefEluEndToEndTestQSymmS16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000584{
585 EluEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
586}
587
Sadik Armagan1625efc2021-06-10 18:24:34 +0100588TEST_CASE("RefFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100589{
590 FillEndToEnd<armnn::DataType::Float32>(defaultBackends);
591}
592
Sadik Armagan1625efc2021-06-10 18:24:34 +0100593TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100594{
595 FillEndToEnd<armnn::DataType::Float16>(defaultBackends);
596}
Teresa Charlin44088502020-07-27 11:27:19 +0100597
Sadik Armagan1625efc2021-06-10 18:24:34 +0100598TEST_CASE("RefFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100599{
600 FillEndToEnd<armnn::DataType::Signed32>(defaultBackends);
601}
602
Matthew Sloyan81beae32021-07-13 19:46:11 +0100603TEST_CASE("RefFullyConnectedEndToEndTestFloat32")
Sadik Armaganf0a6dec2021-03-25 07:46:55 +0000604{
605 FullyConnectedWithDynamicWeightsEndToEnd<armnn::DataType::Float32>(defaultBackends);
606}
607
Matthew Sloyan81beae32021-07-13 19:46:11 +0100608TEST_CASE("RefFullyConnectedEndToEndTestNonConstantWeightsConstantBiasesFloat32")
609{
610 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
611}
612
613TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsNonConstantBiasesFloat32")
614{
615 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
616}
617
Sadik Armagan1625efc2021-06-10 18:24:34 +0100618TEST_CASE("RefGatherFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000619{
620 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
621}
622
Sadik Armagan1625efc2021-06-10 18:24:34 +0100623TEST_CASE("RefGatherUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000624{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000625 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000626}
627
Sadik Armagan1625efc2021-06-10 18:24:34 +0100628TEST_CASE("RefGatherInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100629{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000630 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100631}
632
Sadik Armagan1625efc2021-06-10 18:24:34 +0100633TEST_CASE("RefGatherMultiDimFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000634{
635 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
636}
637
Sadik Armagan1625efc2021-06-10 18:24:34 +0100638TEST_CASE("RefGatherMultiDimUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000639{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000640 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000641}
642
Sadik Armagan1625efc2021-06-10 18:24:34 +0100643TEST_CASE("RefGatherMultiDimInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100644{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000645 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100646}
647
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100648// DepthToSpace
Sadik Armagan1625efc2021-06-10 18:24:34 +0100649TEST_CASE("DephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100650{
651 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
652}
653
Sadik Armagan1625efc2021-06-10 18:24:34 +0100654TEST_CASE("DephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100655{
656 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
657}
658
Sadik Armagan1625efc2021-06-10 18:24:34 +0100659TEST_CASE("DephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100660{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000661 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100662}
663
Sadik Armagan1625efc2021-06-10 18:24:34 +0100664TEST_CASE("DephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100665{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000666 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100667}
668
Sadik Armagan1625efc2021-06-10 18:24:34 +0100669TEST_CASE("DephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100670{
671 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
672}
673
Sadik Armagan1625efc2021-06-10 18:24:34 +0100674TEST_CASE("DephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100675{
676 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
677}
678
Sadik Armagan1625efc2021-06-10 18:24:34 +0100679TEST_CASE("DephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100680{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000681 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100682}
683
Sadik Armagan1625efc2021-06-10 18:24:34 +0100684TEST_CASE("DephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100685{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000686 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100687}
688
689// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100690TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100691{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000692 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100693}
694
Sadik Armagan1625efc2021-06-10 18:24:34 +0100695TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100696{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000697 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100698}
699
Sadik Armagan1625efc2021-06-10 18:24:34 +0100700TEST_CASE("DequantizeEndToEndSimpleInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100701{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000702 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100703}
704
Sadik Armagan1625efc2021-06-10 18:24:34 +0100705TEST_CASE("DequantizeEndToEndOffsetInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100706{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000707 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100708}
709
Sadik Armagan1625efc2021-06-10 18:24:34 +0100710TEST_CASE("RefDetectionPostProcessRegularNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000711{
712 std::vector<float> boxEncodings({
713 0.0f, 0.0f, 0.0f, 0.0f,
714 0.0f, 1.0f, 0.0f, 0.0f,
715 0.0f, -1.0f, 0.0f, 0.0f,
716 0.0f, 0.0f, 0.0f, 0.0f,
717 0.0f, 1.0f, 0.0f, 0.0f,
718 0.0f, 0.0f, 0.0f, 0.0f
719 });
720 std::vector<float> scores({
721 0.0f, 0.9f, 0.8f,
722 0.0f, 0.75f, 0.72f,
723 0.0f, 0.6f, 0.5f,
724 0.0f, 0.93f, 0.95f,
725 0.0f, 0.5f, 0.4f,
726 0.0f, 0.3f, 0.2f
727 });
728 std::vector<float> anchors({
729 0.5f, 0.5f, 1.0f, 1.0f,
730 0.5f, 0.5f, 1.0f, 1.0f,
731 0.5f, 0.5f, 1.0f, 1.0f,
732 0.5f, 10.5f, 1.0f, 1.0f,
733 0.5f, 10.5f, 1.0f, 1.0f,
734 0.5f, 100.5f, 1.0f, 1.0f
735 });
736 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
737}
738
739inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
740{
741 for (size_t i = 0; i < info.GetNumElements(); i++)
742 {
743 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
744 }
745}
746
Sadik Armagan1625efc2021-06-10 18:24:34 +0100747TEST_CASE("RefDetectionPostProcessRegularNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000748{
749 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
750 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
751 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
752
753 boxEncodingsInfo.SetQuantizationScale(1.0f);
754 boxEncodingsInfo.SetQuantizationOffset(1);
755 scoresInfo.SetQuantizationScale(0.01f);
756 scoresInfo.SetQuantizationOffset(0);
757 anchorsInfo.SetQuantizationScale(0.5f);
758 anchorsInfo.SetQuantizationOffset(0);
759
760 std::vector<float> boxEncodings({
761 0.0f, 0.0f, 0.0f, 0.0f,
762 0.0f, 1.0f, 0.0f, 0.0f,
763 0.0f, -1.0f, 0.0f, 0.0f,
764 0.0f, 0.0f, 0.0f, 0.0f,
765 0.0f, 1.0f, 0.0f, 0.0f,
766 0.0f, 0.0f, 0.0f, 0.0f
767 });
768 std::vector<float> scores({
769 0.0f, 0.9f, 0.8f,
770 0.0f, 0.75f, 0.72f,
771 0.0f, 0.6f, 0.5f,
772 0.0f, 0.93f, 0.95f,
773 0.0f, 0.5f, 0.4f,
774 0.0f, 0.3f, 0.2f
775 });
776 std::vector<float> anchors({
777 0.5f, 0.5f, 1.0f, 1.0f,
778 0.5f, 0.5f, 1.0f, 1.0f,
779 0.5f, 0.5f, 1.0f, 1.0f,
780 0.5f, 10.5f, 1.0f, 1.0f,
781 0.5f, 10.5f, 1.0f, 1.0f,
782 0.5f, 100.5f, 1.0f, 1.0f
783 });
784
785 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
786 std::vector<uint8_t> qScores(scores.size(), 0);
787 std::vector<uint8_t> qAnchors(anchors.size(), 0);
788 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
789 QuantizeData(qScores.data(), scores.data(), scoresInfo);
790 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000791 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000792 qScores, qAnchors,
793 1.0f, 1, 0.01f, 0, 0.5f, 0);
794}
795
Sadik Armagan1625efc2021-06-10 18:24:34 +0100796TEST_CASE("RefDetectionPostProcessFastNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000797{
798 std::vector<float> boxEncodings({
799 0.0f, 0.0f, 0.0f, 0.0f,
800 0.0f, 1.0f, 0.0f, 0.0f,
801 0.0f, -1.0f, 0.0f, 0.0f,
802 0.0f, 0.0f, 0.0f, 0.0f,
803 0.0f, 1.0f, 0.0f, 0.0f,
804 0.0f, 0.0f, 0.0f, 0.0f
805 });
806 std::vector<float> scores({
807 0.0f, 0.9f, 0.8f,
808 0.0f, 0.75f, 0.72f,
809 0.0f, 0.6f, 0.5f,
810 0.0f, 0.93f, 0.95f,
811 0.0f, 0.5f, 0.4f,
812 0.0f, 0.3f, 0.2f
813 });
814 std::vector<float> anchors({
815 0.5f, 0.5f, 1.0f, 1.0f,
816 0.5f, 0.5f, 1.0f, 1.0f,
817 0.5f, 0.5f, 1.0f, 1.0f,
818 0.5f, 10.5f, 1.0f, 1.0f,
819 0.5f, 10.5f, 1.0f, 1.0f,
820 0.5f, 100.5f, 1.0f, 1.0f
821 });
822 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
823}
824
Sadik Armagan1625efc2021-06-10 18:24:34 +0100825TEST_CASE("RefDetectionPostProcessFastNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000826{
827 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
828 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
829 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
830
831 boxEncodingsInfo.SetQuantizationScale(1.0f);
832 boxEncodingsInfo.SetQuantizationOffset(1);
833 scoresInfo.SetQuantizationScale(0.01f);
834 scoresInfo.SetQuantizationOffset(0);
835 anchorsInfo.SetQuantizationScale(0.5f);
836 anchorsInfo.SetQuantizationOffset(0);
837
838 std::vector<float> boxEncodings({
839 0.0f, 0.0f, 0.0f, 0.0f,
840 0.0f, 1.0f, 0.0f, 0.0f,
841 0.0f, -1.0f, 0.0f, 0.0f,
842 0.0f, 0.0f, 0.0f, 0.0f,
843 0.0f, 1.0f, 0.0f, 0.0f,
844 0.0f, 0.0f, 0.0f, 0.0f
845 });
846 std::vector<float> scores({
847 0.0f, 0.9f, 0.8f,
848 0.0f, 0.75f, 0.72f,
849 0.0f, 0.6f, 0.5f,
850 0.0f, 0.93f, 0.95f,
851 0.0f, 0.5f, 0.4f,
852 0.0f, 0.3f, 0.2f
853 });
854 std::vector<float> anchors({
855 0.5f, 0.5f, 1.0f, 1.0f,
856 0.5f, 0.5f, 1.0f, 1.0f,
857 0.5f, 0.5f, 1.0f, 1.0f,
858 0.5f, 10.5f, 1.0f, 1.0f,
859 0.5f, 10.5f, 1.0f, 1.0f,
860 0.5f, 100.5f, 1.0f, 1.0f
861 });
862
863 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
864 std::vector<uint8_t> qScores(scores.size(), 0);
865 std::vector<uint8_t> qAnchors(anchors.size(), 0);
866 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
867 QuantizeData(qScores.data(), scores.data(), scoresInfo);
868 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000869 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000870 qScores, qAnchors,
871 1.0f, 1, 0.01f, 0, 0.5f, 0);
872}
873
Jan Eilersa83af7b2020-03-18 15:58:11 +0000874// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100875TEST_CASE("RefHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000876{
877 HardSwishEndToEndTest<armnn::DataType::Float32>(defaultBackends);
878}
879
Sadik Armagan1625efc2021-06-10 18:24:34 +0100880TEST_CASE("RefHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000881{
882 HardSwishEndToEndTest<armnn::DataType::Float16>(defaultBackends);
883}
884
Sadik Armagan1625efc2021-06-10 18:24:34 +0100885TEST_CASE("RefHardSwishEndToEndTestBFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000886{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100887 HardSwishEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000888}
889
Sadik Armagan1625efc2021-06-10 18:24:34 +0100890TEST_CASE("RefHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000891{
892 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
893}
894
Sadik Armagan1625efc2021-06-10 18:24:34 +0100895TEST_CASE("RefHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000896{
897 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
898}
899
Sadik Armagan1625efc2021-06-10 18:24:34 +0100900TEST_CASE("RefHardSwishEndToEndTestQSymmS16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000901{
902 HardSwishEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
903}
904
Sadik Armagan20bea002019-10-16 09:29:38 +0100905// LogSoftmax
Sadik Armagan1625efc2021-06-10 18:24:34 +0100906TEST_CASE("RefLogSoftmaxEndToEndTest")
Sadik Armagan20bea002019-10-16 09:29:38 +0100907{
908 LogSoftmaxEndToEndTest(defaultBackends);
909}
910
Sadik Armagan1625efc2021-06-10 18:24:34 +0100911TEST_CASE("RefPreluEndToEndTestFloat32")
Nikhil Raj747f5862019-07-19 15:15:23 +0100912{
913 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
914}
915
Sadik Armagan1625efc2021-06-10 18:24:34 +0100916TEST_CASE("RefPreluEndToEndTestUint8")
Nikhil Raj747f5862019-07-19 15:15:23 +0100917{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000918 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +0100919}
920
Sadik Armagan1625efc2021-06-10 18:24:34 +0100921TEST_CASE("RefPreluEndToEndTestQSymm16")
Nikhil Raj747f5862019-07-19 15:15:23 +0100922{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000923 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +0100924}
925
Sadik Armagan1625efc2021-06-10 18:24:34 +0100926TEST_CASE("RefSpaceToDepthNhwcEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +0100927{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100928 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100929}
930
Sadik Armagan1625efc2021-06-10 18:24:34 +0100931TEST_CASE("RefSpaceToDepthNchwEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +0100932{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100933 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100934}
935
Sadik Armagan1625efc2021-06-10 18:24:34 +0100936TEST_CASE("RefSpaceToDepthNhwcEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +0100937{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100938 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100939}
940
Sadik Armagan1625efc2021-06-10 18:24:34 +0100941TEST_CASE("RefSpaceToDepthNchwEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +0100942{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100943 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100944}
945
Sadik Armagan1625efc2021-06-10 18:24:34 +0100946TEST_CASE("RefSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100947{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100948 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100949}
950
Sadik Armagan1625efc2021-06-10 18:24:34 +0100951TEST_CASE("RefSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100952{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000953 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100954}
955
Sadik Armagan1625efc2021-06-10 18:24:34 +0100956TEST_CASE("RefSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100957{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100958 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100959}
960
Sadik Armagan1625efc2021-06-10 18:24:34 +0100961TEST_CASE("RefSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100962{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100963 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100964}
965
Sadik Armagan1625efc2021-06-10 18:24:34 +0100966TEST_CASE("RefSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100967{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000968 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100969}
970
Sadik Armagan1625efc2021-06-10 18:24:34 +0100971TEST_CASE("RefSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100972{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000973 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100974}
975
Sadik Armagan1625efc2021-06-10 18:24:34 +0100976TEST_CASE("RefSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100977{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100978 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100979}
980
Sadik Armagan1625efc2021-06-10 18:24:34 +0100981TEST_CASE("RefSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100982{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100983 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
984}
985
Sadik Armagan1625efc2021-06-10 18:24:34 +0100986TEST_CASE("RefSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100987{
988 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
989}
990
Sadik Armagan1625efc2021-06-10 18:24:34 +0100991TEST_CASE("RefSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100992{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000993 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100994}
995
Sadik Armagan1625efc2021-06-10 18:24:34 +0100996TEST_CASE("RefSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100997{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000998 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100999}
1000
Sadik Armagan1625efc2021-06-10 18:24:34 +01001001TEST_CASE("RefSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001002{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001003 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001004}
1005
Sadik Armagan1625efc2021-06-10 18:24:34 +01001006TEST_CASE("RefSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001007{
1008 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1009}
1010
Sadik Armagan1625efc2021-06-10 18:24:34 +01001011TEST_CASE("RefSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001012{
1013 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1014}
1015
Sadik Armagan1625efc2021-06-10 18:24:34 +01001016TEST_CASE("RefSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001017{
1018 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1019}
1020
Sadik Armagan1625efc2021-06-10 18:24:34 +01001021TEST_CASE("RefSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001022{
1023 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1024}
1025
Sadik Armagan1625efc2021-06-10 18:24:34 +01001026TEST_CASE("RefSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001027{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001028 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001029}
1030
Sadik Armagan1625efc2021-06-10 18:24:34 +01001031TEST_CASE("RefSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001032{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001033 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001034}
1035
Sadik Armagan1625efc2021-06-10 18:24:34 +01001036TEST_CASE("RefSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001037{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001038 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001039}
1040
Sadik Armagan1625efc2021-06-10 18:24:34 +01001041TEST_CASE("RefSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001042{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001043 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001044}
1045
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001046// TransposeConvolution2d
Sadik Armagan1625efc2021-06-10 18:24:34 +01001047TEST_CASE("RefTransposeConvolution2dEndToEndFloatNchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001048{
1049 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1050 defaultBackends, armnn::DataLayout::NCHW);
1051}
1052
Sadik Armagan1625efc2021-06-10 18:24:34 +01001053TEST_CASE("RefTransposeConvolution2dEndToEndUint8NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001054{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001055 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001056 defaultBackends, armnn::DataLayout::NCHW);
1057}
1058
Sadik Armagan1625efc2021-06-10 18:24:34 +01001059TEST_CASE("RefTransposeConvolution2dEndToEndInt16NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001060{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001061 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001062 defaultBackends, armnn::DataLayout::NCHW);
1063}
1064
Sadik Armagan1625efc2021-06-10 18:24:34 +01001065TEST_CASE("RefTransposeConvolution2dEndToEndFloatNhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001066{
1067 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1068 defaultBackends, armnn::DataLayout::NHWC);
1069}
1070
Sadik Armagan1625efc2021-06-10 18:24:34 +01001071TEST_CASE("RefTransposeConvolution2dEndToEndUint8NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001072{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001073 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001074 defaultBackends, armnn::DataLayout::NHWC);
1075}
1076
Sadik Armagan1625efc2021-06-10 18:24:34 +01001077TEST_CASE("RefTransposeConvolution2dEndToEndInt16NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001078{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001079 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001080 defaultBackends, armnn::DataLayout::NHWC);
1081}
1082
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001083// Resize Bilinear
Sadik Armagan1625efc2021-06-10 18:24:34 +01001084TEST_CASE("RefResizeBilinearEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001085{
1086 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1087}
1088
Sadik Armagan1625efc2021-06-10 18:24:34 +01001089TEST_CASE("RefResizeBilinearEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001090{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001091 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001092}
1093
Sadik Armagan1625efc2021-06-10 18:24:34 +01001094TEST_CASE("RefResizeBilinearEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001095{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001096 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001097}
1098
Sadik Armagan1625efc2021-06-10 18:24:34 +01001099TEST_CASE("RefResizeBilinearEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001100{
1101 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1102}
1103
Sadik Armagan1625efc2021-06-10 18:24:34 +01001104TEST_CASE("RefResizeBilinearEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001105{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001106 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001107}
1108
Sadik Armagan1625efc2021-06-10 18:24:34 +01001109TEST_CASE("RefResizeBilinearEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001110{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001111 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001112}
1113
1114// Resize NearestNeighbor
Sadik Armagan1625efc2021-06-10 18:24:34 +01001115TEST_CASE("RefResizeNearestNeighborEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001116{
1117 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1118}
1119
Sadik Armagan1625efc2021-06-10 18:24:34 +01001120TEST_CASE("RefResizeNearestNeighborEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001121{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001122 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001123}
1124
Sadik Armagan1625efc2021-06-10 18:24:34 +01001125TEST_CASE("RefResizeNearestNeighborEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001126{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001127 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001128}
1129
Sadik Armagan1625efc2021-06-10 18:24:34 +01001130TEST_CASE("RefResizeNearestNeighborEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001131{
1132 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1133}
1134
Sadik Armagan1625efc2021-06-10 18:24:34 +01001135TEST_CASE("RefResizeNearestNeighborEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001136{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001137 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001138}
1139
Sadik Armagan1625efc2021-06-10 18:24:34 +01001140TEST_CASE("RefResizeNearestNeighborEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001141{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001142 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001143}
1144
Sadik Armagan062e0e92019-10-14 10:31:43 +01001145// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +01001146TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001147{
1148 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1149}
1150
Sadik Armagan1625efc2021-06-10 18:24:34 +01001151TEST_CASE("RefInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001152{
1153 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1154}
1155
Sadik Armagan1625efc2021-06-10 18:24:34 +01001156TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001157{
1158 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1159}
1160
Sadik Armagan1625efc2021-06-10 18:24:34 +01001161TEST_CASE("RefInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001162{
1163 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1164}
1165
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001166// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001167TEST_CASE("RefArgMaxSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001168{
1169 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1170}
1171
Sadik Armagan1625efc2021-06-10 18:24:34 +01001172TEST_CASE("RefArgMaxSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001173{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001174 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001175}
1176
Sadik Armagan1625efc2021-06-10 18:24:34 +01001177TEST_CASE("RefArgMinSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001178{
1179 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1180}
1181
Sadik Armagan1625efc2021-06-10 18:24:34 +01001182TEST_CASE("RefArgMinSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001183{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001184 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001185}
1186
Sadik Armagan1625efc2021-06-10 18:24:34 +01001187TEST_CASE("RefArgMaxAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001188{
1189 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1190}
1191
Sadik Armagan1625efc2021-06-10 18:24:34 +01001192TEST_CASE("RefArgMaxAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001193{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001194 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001195}
1196
Sadik Armagan1625efc2021-06-10 18:24:34 +01001197TEST_CASE("RefArgMinAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001198{
1199 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1200}
1201
Sadik Armagan1625efc2021-06-10 18:24:34 +01001202TEST_CASE("RefArgMinAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001203{
1204
Derek Lambertif90c56d2020-01-10 17:14:08 +00001205 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001206}
1207
Sadik Armagan1625efc2021-06-10 18:24:34 +01001208TEST_CASE("RefArgMaxAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001209{
1210 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1211}
1212
Sadik Armagan1625efc2021-06-10 18:24:34 +01001213TEST_CASE("RefArgMaxAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001214{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001215 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001216}
1217
Sadik Armagan1625efc2021-06-10 18:24:34 +01001218TEST_CASE("RefArgMinAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001219{
1220 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1221}
1222
Sadik Armagan1625efc2021-06-10 18:24:34 +01001223TEST_CASE("RefArgMinAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001224{
1225
Derek Lambertif90c56d2020-01-10 17:14:08 +00001226 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001227}
1228
Sadik Armagan1625efc2021-06-10 18:24:34 +01001229TEST_CASE("RefArgMaxAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001230{
1231 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1232}
1233
Sadik Armagan1625efc2021-06-10 18:24:34 +01001234TEST_CASE("RefArgMaxAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001235{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001236 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001237}
1238
Sadik Armagan1625efc2021-06-10 18:24:34 +01001239TEST_CASE("RefArgMinAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001240{
1241 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1242}
1243
Sadik Armagan1625efc2021-06-10 18:24:34 +01001244TEST_CASE("RefArgMinAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001245{
1246
Derek Lambertif90c56d2020-01-10 17:14:08 +00001247 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001248}
1249
Sadik Armagan1625efc2021-06-10 18:24:34 +01001250TEST_CASE("RefArgMaxAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001251{
1252 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1253}
1254
Sadik Armagan1625efc2021-06-10 18:24:34 +01001255TEST_CASE("RefArgMaxAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001256{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001257 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001258}
1259
Sadik Armagan1625efc2021-06-10 18:24:34 +01001260TEST_CASE("RefArgMinAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001261{
1262 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1263}
1264
Sadik Armagan1625efc2021-06-10 18:24:34 +01001265TEST_CASE("RefArgMinAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001266{
1267
Derek Lambertif90c56d2020-01-10 17:14:08 +00001268 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001269}
1270
Sadik Armagan1625efc2021-06-10 18:24:34 +01001271TEST_CASE("RefQLstmEndToEndTest")
James Conroy0800bf52020-05-14 12:46:44 +01001272{
1273 QLstmEndToEnd(defaultBackends);
1274}
1275
Sadik Armagan1625efc2021-06-10 18:24:34 +01001276TEST_CASE("RefRankEndToEndTest")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001277{
1278 RankEndToEnd<armnn::DataType::Float32>(defaultBackends);
1279}
1280
Sadik Armagan1625efc2021-06-10 18:24:34 +01001281TEST_CASE("RefRankEndToEndTestFloat16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001282{
1283 RankEndToEnd<armnn::DataType::Float16>(defaultBackends);
1284}
1285
Sadik Armagan1625efc2021-06-10 18:24:34 +01001286TEST_CASE("RefRankEndToEndTestInt32")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001287{
1288 RankEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1289}
1290
Sadik Armagan1625efc2021-06-10 18:24:34 +01001291TEST_CASE("RefRankEndToEndTestQAsymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001292{
1293 RankEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1294}
1295
Sadik Armagan1625efc2021-06-10 18:24:34 +01001296TEST_CASE("RefRankEndToEndTestQSymmS16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001297{
1298 RankEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1299}
1300
Sadik Armagan1625efc2021-06-10 18:24:34 +01001301TEST_CASE("RefRankEndToEndTestQSymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001302{
1303 RankEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1304}
1305
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001306#if !defined(__ANDROID__)
1307// Only run these tests on non Android platforms
Sadik Armagan1625efc2021-06-10 18:24:34 +01001308TEST_CASE("RefImportNonAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001309{
David Monahan4f1e8e42019-09-04 09:22:10 +01001310 ImportNonAlignedInputPointerTest(defaultBackends);
1311}
1312
Sadik Armagan1625efc2021-06-10 18:24:34 +01001313TEST_CASE("RefExportNonAlignedPointerTest")
David Monahan4f1e8e42019-09-04 09:22:10 +01001314{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001315 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001316}
1317
Sadik Armagan1625efc2021-06-10 18:24:34 +01001318TEST_CASE("RefImportAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001319{
1320 ImportAlignedPointerTest(defaultBackends);
1321}
1322
Sadik Armagan1625efc2021-06-10 18:24:34 +01001323TEST_CASE("RefImportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001324{
1325 ImportOnlyWorkload(defaultBackends);
1326}
1327
Sadik Armagan1625efc2021-06-10 18:24:34 +01001328TEST_CASE("RefExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001329{
1330 ExportOnlyWorkload(defaultBackends);
1331}
1332
Sadik Armagan1625efc2021-06-10 18:24:34 +01001333TEST_CASE("RefImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001334{
1335 ImportAndExportWorkload(defaultBackends);
1336}
1337
Sadik Armagan1625efc2021-06-10 18:24:34 +01001338TEST_CASE("RefExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001339{
1340 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1341}
1342
Sadik Armagan1625efc2021-06-10 18:24:34 +01001343TEST_CASE("RefStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +00001344{
1345 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1346}
1347
Sadik Armagan1625efc2021-06-10 18:24:34 +01001348TEST_CASE("RefThreadSafeFP32StridedSlicedEndToEndTest")
Mike Kelly386ff1a2021-03-29 15:04:50 +01001349{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001350 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 1);
Mike Kelly386ff1a2021-03-29 15:04:50 +01001351}
Finn Williamsb8181f72021-04-07 10:23:21 +01001352
Sadik Armagan1625efc2021-06-10 18:24:34 +01001353TEST_CASE("RefAsyncFP32StridedSlicedMultiThreadedEndToEndTest")
Finn Williamsb8181f72021-04-07 10:23:21 +01001354{
1355 armnn::experimental::StridedSlicedMultiThreadedEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1356}
Keith Davise813d672021-04-22 10:10:34 +01001357
Sadik Armagan1625efc2021-06-10 18:24:34 +01001358TEST_CASE("RefAsyncFP32StridedSlicedScheduledMultiThreadedEndToEndTest")
Keith Davise813d672021-04-22 10:10:34 +01001359{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001360 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 3);
Keith Davise813d672021-04-22 10:10:34 +01001361}
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001362#endif
1363
Sadik Armagan1625efc2021-06-10 18:24:34 +01001364}