blob: ff13fb0f68fd6d22d7fdba7f560bbf1e98242339 [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
Jan Eilersbca73e12020-03-11 12:52:46 +00008#include <backendsCommon/test/ActivationEndToEndTestImpl.hpp>
James Conroy68a4dbc2019-11-13 15:35:59 +00009#include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010010#include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010011#include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +010012#include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010013#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Derek Lamberti6a5e5e82019-12-05 14:41:20 +000014#include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060015#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
Teresa Charlin44088502020-07-27 11:27:19 +010016#include <backendsCommon/test/FillEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010017#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Nikhil Raj1c8adac2019-07-22 11:27:29 +010018#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010019#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Francis Murtaghb3fc2522019-08-09 13:20:50 +010020#include <backendsCommon/test/QuantizedLstmEndToEndTestImpl.hpp>
Ellen Norris-Thompson29794572019-06-26 16:40:36 +010021#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010022#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Sadik Armagan581742d2019-08-12 14:11:37 +010023#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010024
Sadik Armagan1625efc2021-06-10 18:24:34 +010025#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010026
Sadik Armagan1625efc2021-06-10 18:24:34 +010027TEST_SUITE("NeonEndToEnd")
28{
29std::vector<armnn::BackendId> neonDefaultBackends = {armnn::Compute::CpuAcc};
narpra01b9546cf2018-11-20 15:21:28 +000030
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010031// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010032TEST_CASE("NeonAbsEndToEndTestFloat32")
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010033{
josh minor4a3c6102020-01-06 16:40:46 -060034 std::vector<float> expectedOutput =
35 {
36 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
37 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
38 };
39
Sadik Armagan1625efc2021-06-10 18:24:34 +010040 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
josh minor4a3c6102020-01-06 16:40:46 -060041 UnaryOperation::Abs,
42 expectedOutput);
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010043}
44
45// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010046TEST_CASE("ConstantUsage_Neon_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010047{
Sadik Armagan1625efc2021-06-10 18:24:34 +010048 CHECK(ConstantUsageFloat32Test(neonDefaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010049}
50
Matteo Martincighdb16dd32019-08-27 16:41:11 +010051#if defined(ARMNNREF_ENABLED)
Matteo Martincighe67edb22019-08-14 14:05:46 +010052
53// This test unit needs the reference backend, it's not available if the reference backend is not built
54
Sadik Armagan1625efc2021-06-10 18:24:34 +010055TEST_CASE("FallbackToCpuRef")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010056{
57 using namespace armnn;
58
59 // Create runtime in which test will run and allow fallback to CpuRef.
60 IRuntime::CreationOptions options;
61 IRuntimePtr runtime(IRuntime::Create(options));
62
63 // Builds up the structure of the network.
64 INetworkPtr net(INetwork::Create());
65
66 IConnectableLayer* input = net->AddInputLayer(0);
67
68 // This layer configuration isn't supported by CpuAcc but we allow fallback to CpuRef so it shoud pass.
69 NormalizationDescriptor descriptor;
70 IConnectableLayer* pooling = net->AddNormalizationLayer(descriptor);
71
72 IConnectableLayer* output = net->AddOutputLayer(0);
73
74 input->GetOutputSlot(0).Connect(pooling->GetInputSlot(0));
75 pooling->GetOutputSlot(0).Connect(output->GetInputSlot(0));
76
77 input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
78 pooling->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
79
80 // optimize the network
81 std::vector<BackendId> backends = {Compute::CpuAcc, Compute::CpuRef};
82 IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
83
84 // Load it into the runtime. It should pass.
85 NetworkId netId;
Sadik Armagan1625efc2021-06-10 18:24:34 +010086 CHECK(runtime->LoadNetwork(netId, std::move(optNet)) == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +010087}
88
Matteo Martincighe67edb22019-08-14 14:05:46 +010089#endif
90
Sadik Armagan1625efc2021-06-10 18:24:34 +010091TEST_CASE("NeonGreaterSimpleEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +000092{
93 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
94 0, 0, 0, 0, 0, 0, 0, 0 });
95
Sadik Armagan1625efc2021-06-10 18:24:34 +010096 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010097 ComparisonOperation::Greater,
98 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +000099}
100
Sadik Armagan1625efc2021-06-10 18:24:34 +0100101TEST_CASE("NeonGreaterSimpleEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000102{
103 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
104 0, 0, 0, 0, 0, 0, 0, 0 });
105
Sadik Armagan1625efc2021-06-10 18:24:34 +0100106 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100107 ComparisonOperation::Greater,
108 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000109}
110
Sadik Armagan1625efc2021-06-10 18:24:34 +0100111TEST_CASE("NeonGreaterBroadcastEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +0000112{
113 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
114 1, 1, 1, 1, 1, 1 });
115
Sadik Armagan1625efc2021-06-10 18:24:34 +0100116 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100117 ComparisonOperation::Greater,
118 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000119}
120
Sadik Armagan1625efc2021-06-10 18:24:34 +0100121TEST_CASE("NeonGreaterBroadcastEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000122{
123 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
124 1, 1, 1, 1, 1, 1 });
125
Sadik Armagan1625efc2021-06-10 18:24:34 +0100126 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100127 ComparisonOperation::Greater,
128 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000129}
130
Sadik Armagan1625efc2021-06-10 18:24:34 +0100131TEST_CASE("NeonConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000132{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100133 ConcatDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000134}
135
Sadik Armagan1625efc2021-06-10 18:24:34 +0100136TEST_CASE("NeonConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000137{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100138 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000139}
140
Sadik Armagan1625efc2021-06-10 18:24:34 +0100141TEST_CASE("NeonConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000142{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100143 ConcatDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000144}
145
Sadik Armagan1625efc2021-06-10 18:24:34 +0100146TEST_CASE("NeonConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000147{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100148 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000149}
150
Sadik Armagan1625efc2021-06-10 18:24:34 +0100151TEST_CASE("NeonConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000152{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100153 ConcatDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000154}
155
Sadik Armagan1625efc2021-06-10 18:24:34 +0100156TEST_CASE("NeonConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000157{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100158 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000159}
160
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100161// DepthToSpace
Sadik Armagan1625efc2021-06-10 18:24:34 +0100162TEST_CASE("DephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100163{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100164 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100165}
166
Sadik Armagan1625efc2021-06-10 18:24:34 +0100167TEST_CASE("DephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100168{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100169 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100170}
171
Sadik Armagan1625efc2021-06-10 18:24:34 +0100172TEST_CASE("DephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100173{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100174 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100175}
176
Sadik Armagan1625efc2021-06-10 18:24:34 +0100177TEST_CASE("DephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100178{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100179 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100180}
181
Sadik Armagan1625efc2021-06-10 18:24:34 +0100182TEST_CASE("DephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100183{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100184 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100185}
186
Sadik Armagan1625efc2021-06-10 18:24:34 +0100187TEST_CASE("DephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100188{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100189 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100190}
191
Sadik Armagan1625efc2021-06-10 18:24:34 +0100192TEST_CASE("DephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100193{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100194 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100195}
196
Sadik Armagan1625efc2021-06-10 18:24:34 +0100197TEST_CASE("DephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100198{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100199 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100200}
201
202// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100203TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100204{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100205 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100206}
207
Sadik Armagan1625efc2021-06-10 18:24:34 +0100208TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100209{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100210 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100211}
212
Sadik Armagan1625efc2021-06-10 18:24:34 +0100213TEST_CASE("NeonEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000214{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100215 EluEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000216}
217
Sadik Armagan1625efc2021-06-10 18:24:34 +0100218TEST_CASE("NeonEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000219{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100220 EluEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000221}
222
Jan Eilersa83af7b2020-03-18 15:58:11 +0000223// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100224TEST_CASE("NeonHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000225{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100226 HardSwishEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000227}
228
Sadik Armagan1625efc2021-06-10 18:24:34 +0100229TEST_CASE("NeonHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000230{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100231 HardSwishEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000232}
233
Sadik Armagan1625efc2021-06-10 18:24:34 +0100234TEST_CASE("NeonHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000235{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100236 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000237}
238
Sadik Armagan1625efc2021-06-10 18:24:34 +0100239TEST_CASE("NeonHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000240{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100241 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000242}
243
Sadik Armagan1625efc2021-06-10 18:24:34 +0100244TEST_CASE("NeonPreluEndToEndFloat32Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100245{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100246 PreluEndToEndNegativeTest<armnn::DataType::Float32>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100247}
248
Sadik Armagan1625efc2021-06-10 18:24:34 +0100249TEST_CASE("NeonPreluEndToEndTestUint8Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100250{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100251 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100252}
253
Sadik Armagan1625efc2021-06-10 18:24:34 +0100254TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100255{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100256 SpaceToDepthNhwcEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100257}
258
Sadik Armagan1625efc2021-06-10 18:24:34 +0100259TEST_CASE("NeonSpaceToDepthNchwEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100260{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100261 SpaceToDepthNchwEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100262}
263
Sadik Armagan1625efc2021-06-10 18:24:34 +0100264TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100265{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100266 SpaceToDepthNhwcEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100267}
268
Sadik Armagan1625efc2021-06-10 18:24:34 +0100269TEST_CASE("NeonSpaceToDepthNchwEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100270{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100271 SpaceToDepthNchwEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100272}
273
Sadik Armagan1625efc2021-06-10 18:24:34 +0100274TEST_CASE("NeonSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100275{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100276 Splitter1dEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100277}
278
Sadik Armagan1625efc2021-06-10 18:24:34 +0100279TEST_CASE("NeonSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100280{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100281 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100282}
283
Sadik Armagan1625efc2021-06-10 18:24:34 +0100284TEST_CASE("NeonSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100285{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100286 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100287}
288
Sadik Armagan1625efc2021-06-10 18:24:34 +0100289TEST_CASE("NeonSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100290{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100291 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100292}
293
Sadik Armagan1625efc2021-06-10 18:24:34 +0100294TEST_CASE("NeonSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100295{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100296 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100297}
298
Sadik Armagan1625efc2021-06-10 18:24:34 +0100299TEST_CASE("NeonSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100300{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100301 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100302}
303
Sadik Armagan1625efc2021-06-10 18:24:34 +0100304TEST_CASE("NeonSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100305{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100306 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100307}
308
Sadik Armagan1625efc2021-06-10 18:24:34 +0100309TEST_CASE("NeonSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100310{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100311 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100312}
313
Sadik Armagan1625efc2021-06-10 18:24:34 +0100314TEST_CASE("NeonSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100315{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100316 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100317}
318
Sadik Armagan1625efc2021-06-10 18:24:34 +0100319TEST_CASE("NeonSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100320{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100321 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100322}
323
Sadik Armagan1625efc2021-06-10 18:24:34 +0100324TEST_CASE("NeonSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100325{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100326 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100327}
328
Sadik Armagan1625efc2021-06-10 18:24:34 +0100329TEST_CASE("NeonSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100330{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100331 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100332}
333
Sadik Armagan1625efc2021-06-10 18:24:34 +0100334TEST_CASE("NeonSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100335{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100336 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100337}
338
Sadik Armagan1625efc2021-06-10 18:24:34 +0100339TEST_CASE("NeonSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100340{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100341 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100342}
343
Sadik Armagan1625efc2021-06-10 18:24:34 +0100344TEST_CASE("NeonSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100345{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100346 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100347}
348
Sadik Armagan1625efc2021-06-10 18:24:34 +0100349TEST_CASE("NeonSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100350{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100351 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100352}
353
Sadik Armagan1625efc2021-06-10 18:24:34 +0100354TEST_CASE("NeonSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100355{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100356 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100357}
358
Sadik Armagan1625efc2021-06-10 18:24:34 +0100359TEST_CASE("NeonSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100360{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100361 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100362}
363
Sadik Armagan1625efc2021-06-10 18:24:34 +0100364TEST_CASE("NeonSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100365{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100366 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100367}
368
Sadik Armagan1625efc2021-06-10 18:24:34 +0100369TEST_CASE("NeonSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100370{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100371 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100372}
373
Sadik Armagan1625efc2021-06-10 18:24:34 +0100374TEST_CASE("NeonQuantizedLstmEndToEndTest")
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100375{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100376 QuantizedLstmEndToEnd(neonDefaultBackends);
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100377}
378
Sadik Armagan1625efc2021-06-10 18:24:34 +0100379TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100380{
381 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100382 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100383}
384
Sadik Armagan1625efc2021-06-10 18:24:34 +0100385TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100386{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000387 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100388 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100389}
390
Sadik Armagan1625efc2021-06-10 18:24:34 +0100391TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100392{
393 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100394 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100395}
396
Sadik Armagan1625efc2021-06-10 18:24:34 +0100397TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100398{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000399 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100400 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100401}
402
Sadik Armagan1625efc2021-06-10 18:24:34 +0100403TEST_CASE("NeonImportNonAlignedInputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100404{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100405 ImportNonAlignedInputPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100406}
407
Sadik Armagan1625efc2021-06-10 18:24:34 +0100408TEST_CASE("NeonExportNonAlignedOutputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100409{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100410 ExportNonAlignedOutputPointerTest(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100411}
412
Sadik Armagan1625efc2021-06-10 18:24:34 +0100413TEST_CASE("NeonImportAlignedPointerTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100414{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100415 ImportAlignedPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100416}
417
Sadik Armagan1625efc2021-06-10 18:24:34 +0100418TEST_CASE("NeonImportOnlyWorkload")
David Monahan3fb7e102019-08-20 11:25:29 +0100419{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100420 ImportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100421}
David Monahan3fb7e102019-08-20 11:25:29 +0100422
Sadik Armagan1625efc2021-06-10 18:24:34 +0100423TEST_CASE("NeonExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100424{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100425 ExportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100426}
David Monahan3fb7e102019-08-20 11:25:29 +0100427
Sadik Armagan1625efc2021-06-10 18:24:34 +0100428TEST_CASE("NeonImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100429{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100430 ImportAndExportWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100431}
David Monahan3fb7e102019-08-20 11:25:29 +0100432
Sadik Armagan1625efc2021-06-10 18:24:34 +0100433TEST_CASE("NeonExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100434{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100435 ExportOutputWithSeveralOutputSlotConnectionsTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100436}
437
Sadik Armagan062e0e92019-10-14 10:31:43 +0100438// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +0100439TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100440{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100441 InstanceNormalizationNchwEndToEndTest1(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100442}
443
Sadik Armagan1625efc2021-06-10 18:24:34 +0100444TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100445{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100446 InstanceNormalizationNchwEndToEndTest2(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100447}
448
Teresa Charlin44088502020-07-27 11:27:19 +0100449// Fill
Sadik Armagan1625efc2021-06-10 18:24:34 +0100450TEST_CASE("NeonFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100451{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100452 FillEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100453}
454
Sadik Armagan1625efc2021-06-10 18:24:34 +0100455TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100456{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100457 FillEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100458}
459
Sadik Armagan1625efc2021-06-10 18:24:34 +0100460TEST_CASE("NeonFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100461{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100462 FillEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100463}
464
James Conroy68a4dbc2019-11-13 15:35:59 +0000465// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +0100466TEST_CASE("NeonArgMaxSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000467{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100468 ArgMaxEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000469}
470
Sadik Armagan1625efc2021-06-10 18:24:34 +0100471TEST_CASE("NeonArgMinSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000472{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100473 ArgMinEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000474}
475
Sadik Armagan1625efc2021-06-10 18:24:34 +0100476TEST_CASE("NeonArgMaxAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000477{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100478 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000479}
480
Sadik Armagan1625efc2021-06-10 18:24:34 +0100481TEST_CASE("NeonArgMinAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000482{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100483 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000484}
485
Sadik Armagan1625efc2021-06-10 18:24:34 +0100486TEST_CASE("NeonArgMaxAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000487{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100488 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000489}
490
Sadik Armagan1625efc2021-06-10 18:24:34 +0100491TEST_CASE("NeonArgMinAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000492{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100493 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000494}
495
Sadik Armagan1625efc2021-06-10 18:24:34 +0100496TEST_CASE("NeonArgMaxAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000497{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100498 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000499}
500
Sadik Armagan1625efc2021-06-10 18:24:34 +0100501TEST_CASE("NeonArgMinAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000502{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100503 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000504}
505
Sadik Armagan1625efc2021-06-10 18:24:34 +0100506TEST_CASE("NeonArgMaxAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000507{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100508 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000509}
510
Sadik Armagan1625efc2021-06-10 18:24:34 +0100511TEST_CASE("NeonArgMinAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000512{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100513 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000514}
515
Sadik Armagan1625efc2021-06-10 18:24:34 +0100516TEST_CASE("NeonArgMaxSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000517{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100518 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000519}
520
Sadik Armagan1625efc2021-06-10 18:24:34 +0100521TEST_CASE("NeonArgMinSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000522{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100523 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000524}
525
Sadik Armagan1625efc2021-06-10 18:24:34 +0100526TEST_CASE("NeonArgMaxAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000527{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100528 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000529}
530
Sadik Armagan1625efc2021-06-10 18:24:34 +0100531TEST_CASE("NeonArgMinAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000532{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100533 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000534}
535
Sadik Armagan1625efc2021-06-10 18:24:34 +0100536TEST_CASE("NeonArgMaxAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000537{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100538 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000539}
540
Sadik Armagan1625efc2021-06-10 18:24:34 +0100541TEST_CASE("NeonArgMinAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000542{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100543 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000544}
545
Sadik Armagan1625efc2021-06-10 18:24:34 +0100546TEST_CASE("NeonArgMaxAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000547{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100548 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000549}
550
Sadik Armagan1625efc2021-06-10 18:24:34 +0100551TEST_CASE("NeonArgMinAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000552{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100553 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000554}
555
Sadik Armagan1625efc2021-06-10 18:24:34 +0100556TEST_CASE("NeonArgMaxAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000557{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100558 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000559}
560
Sadik Armagan1625efc2021-06-10 18:24:34 +0100561TEST_CASE("NeonArgMinAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000562{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100563 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000564}
565
Sadik Armagan1625efc2021-06-10 18:24:34 +0100566TEST_CASE("NeonStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +0000567{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100568 StridedSliceInvalidSliceEndToEndTest(neonDefaultBackends);
David Monahan0a99a142020-03-13 07:52:54 +0000569}
570
David Monahan646bc8a2022-01-31 14:29:14 +0000571TEST_CASE("NeonForceImportWithAlignedBuffersEndToEndTest")
572{
573 ForceImportWithAlignedBuffersEndToEndTest(neonDefaultBackends);
574}
575
576TEST_CASE("NeonForceImportWithMisalignedInputBuffersEndToEndTest")
577{
578 ForceImportWithMisalignedInputBuffersEndToEndTest(neonDefaultBackends);
579}
580
581TEST_CASE("NeonForceImportWithMisalignedOutputBuffersEndToEndTest")
582{
583 ForceImportWithMisalignedOutputBuffersEndToEndTest(neonDefaultBackends);
584}
585
586TEST_CASE("NeonForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
587{
588 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(neonDefaultBackends);
589}
590
Sadik Armagan1625efc2021-06-10 18:24:34 +0100591// DISABLED
592//TEST_CASE("NeonDetectionPostProcessRegularNmsTest")
593//{
594// std::vector<float> boxEncodings({
595// 0.0f, 0.0f, 0.0f, 0.0f,
596// 0.0f, 1.0f, 0.0f, 0.0f,
597// 0.0f, -1.0f, 0.0f, 0.0f,
598// 0.0f, 0.0f, 0.0f, 0.0f,
599// 0.0f, 1.0f, 0.0f, 0.0f,
600// 0.0f, 0.0f, 0.0f, 0.0f
601// });
602// std::vector<float> scores({
603// 0.0f, 0.9f, 0.8f,
604// 0.0f, 0.75f, 0.72f,
605// 0.0f, 0.6f, 0.5f,
606// 0.0f, 0.93f, 0.95f,
607// 0.0f, 0.5f, 0.4f,
608// 0.0f, 0.3f, 0.2f
609// });
610// std::vector<float> anchors({
611// 0.5f, 0.5f, 1.0f, 1.0f,
612// 0.5f, 0.5f, 1.0f, 1.0f,
613// 0.5f, 0.5f, 1.0f, 1.0f,
614// 0.5f, 10.5f, 1.0f, 1.0f,
615// 0.5f, 10.5f, 1.0f, 1.0f,
616// 0.5f, 100.5f, 1.0f, 1.0f
617// });
618// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
619// boxEncodings,
620// scores,
621// anchors);
622//}
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000623
624inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
625{
626 for (size_t i = 0; i < info.GetNumElements(); i++)
627 {
628 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
629 }
630}
631
Sadik Armagan1625efc2021-06-10 18:24:34 +0100632// DISABLED
633//TEST_CASE("NeonDetectionPostProcessRegularNmsUint8Test")
634//{
635// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
636// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
637// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
638//
639// boxEncodingsInfo.SetQuantizationScale(1.0f);
640// boxEncodingsInfo.SetQuantizationOffset(1);
641// scoresInfo.SetQuantizationScale(0.01f);
642// scoresInfo.SetQuantizationOffset(0);
643// anchorsInfo.SetQuantizationScale(0.5f);
644// anchorsInfo.SetQuantizationOffset(0);
645//
646// std::vector<float> boxEncodings({
647// 0.0f, 0.0f, 0.0f, 0.0f,
648// 0.0f, 1.0f, 0.0f, 0.0f,
649// 0.0f, -1.0f, 0.0f, 0.0f,
650// 0.0f, 0.0f, 0.0f, 0.0f,
651// 0.0f, 1.0f, 0.0f, 0.0f,
652// 0.0f, 0.0f, 0.0f, 0.0f
653// });
654// std::vector<float> scores({
655// 0.0f, 0.9f, 0.8f,
656// 0.0f, 0.75f, 0.72f,
657// 0.0f, 0.6f, 0.5f,
658// 0.0f, 0.93f, 0.95f,
659// 0.0f, 0.5f, 0.4f,
660// 0.0f, 0.3f, 0.2f
661// });
662// std::vector<float> anchors({
663// 0.5f, 0.5f, 1.0f, 1.0f,
664// 0.5f, 0.5f, 1.0f, 1.0f,
665// 0.5f, 0.5f, 1.0f, 1.0f,
666// 0.5f, 10.5f, 1.0f, 1.0f,
667// 0.5f, 10.5f, 1.0f, 1.0f,
668// 0.5f, 100.5f, 1.0f, 1.0f
669// });
670//
671// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
672// std::vector<uint8_t> qScores(scores.size(), 0);
673// std::vector<uint8_t> qAnchors(anchors.size(), 0);
674// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
675// QuantizeData(qScores.data(), scores.data(), scoresInfo);
676// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
677// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
678// qScores, qAnchors,
679// 1.0f, 1, 0.01f, 0, 0.5f, 0);
680//}
681//
682//TEST_CASE("NeonDetectionPostProcessFastNmsTest")
683//{
684// std::vector<float> boxEncodings({
685// 0.0f, 0.0f, 0.0f, 0.0f,
686// 0.0f, 1.0f, 0.0f, 0.0f,
687// 0.0f, -1.0f, 0.0f, 0.0f,
688// 0.0f, 0.0f, 0.0f, 0.0f,
689// 0.0f, 1.0f, 0.0f, 0.0f,
690// 0.0f, 0.0f, 0.0f, 0.0f
691// });
692// std::vector<float> scores({
693// 0.0f, 0.9f, 0.8f,
694// 0.0f, 0.75f, 0.72f,
695// 0.0f, 0.6f, 0.5f,
696// 0.0f, 0.93f, 0.95f,
697// 0.0f, 0.5f, 0.4f,
698// 0.0f, 0.3f, 0.2f
699// });
700// std::vector<float> anchors({
701// 0.5f, 0.5f, 1.0f, 1.0f,
702// 0.5f, 0.5f, 1.0f, 1.0f,
703// 0.5f, 0.5f, 1.0f, 1.0f,
704// 0.5f, 10.5f, 1.0f, 1.0f,
705// 0.5f, 10.5f, 1.0f, 1.0f,
706// 0.5f, 100.5f, 1.0f, 1.0f
707// });
708// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
709// boxEncodings,
710// scores,
711// anchors);
712//}
713//
714// DISABLED
715//TEST_CASE("NeonDetectionPostProcessFastNmsUint8Test")
716//{
717// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
718// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
719// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
720//
721// boxEncodingsInfo.SetQuantizationScale(1.0f);
722// boxEncodingsInfo.SetQuantizationOffset(1);
723// scoresInfo.SetQuantizationScale(0.01f);
724// scoresInfo.SetQuantizationOffset(0);
725// anchorsInfo.SetQuantizationScale(0.5f);
726// anchorsInfo.SetQuantizationOffset(0);
727//
728// std::vector<float> boxEncodings({
729// 0.0f, 0.0f, 0.0f, 0.0f,
730// 0.0f, 1.0f, 0.0f, 0.0f,
731// 0.0f, -1.0f, 0.0f, 0.0f,
732// 0.0f, 0.0f, 0.0f, 0.0f,
733// 0.0f, 1.0f, 0.0f, 0.0f,
734// 0.0f, 0.0f, 0.0f, 0.0f
735// });
736// std::vector<float> scores({
737// 0.0f, 0.9f, 0.8f,
738// 0.0f, 0.75f, 0.72f,
739// 0.0f, 0.6f, 0.5f,
740// 0.0f, 0.93f, 0.95f,
741// 0.0f, 0.5f, 0.4f,
742// 0.0f, 0.3f, 0.2f
743// });
744// std::vector<float> anchors({
745// 0.5f, 0.5f, 1.0f, 1.0f,
746// 0.5f, 0.5f, 1.0f, 1.0f,
747// 0.5f, 0.5f, 1.0f, 1.0f,
748// 0.5f, 10.5f, 1.0f, 1.0f,
749// 0.5f, 10.5f, 1.0f, 1.0f,
750// 0.5f, 100.5f, 1.0f, 1.0f
751// });
752//
753// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
754// std::vector<uint8_t> qScores(scores.size(), 0);
755// std::vector<uint8_t> qAnchors(anchors.size(), 0);
756// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
757// QuantizeData(qScores.data(), scores.data(), scoresInfo);
758// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
759// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
760// qScores, qAnchors,
761// 1.0f, 1, 0.01f, 0, 0.5f, 0);
762//}
763
764TEST_CASE("NeonQLstmEndToEndTest")
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000765{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100766 QLstmEndToEnd(neonDefaultBackends);
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000767}
768
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000769}