blob: fb05cc415fb473295b7d1dbb8d267930e6d43cbc [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
Teresa Charlinc17a35f2023-01-12 14:13:09 +00002// Copyright © 2017-2023 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 Prangnawarat8c7324d2019-05-31 16:42:11 +01007
Jan Eilersbca73e12020-03-11 12:52:46 +00008#include <backendsCommon/test/ActivationEndToEndTestImpl.hpp>
Ryan OShea3c2795a2022-11-03 17:51:52 +00009#include <backendsCommon/test/AdditionEndToEndTestImpl.hpp>
James Conroy68a4dbc2019-11-13 15:35:59 +000010#include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
Teresa Charlina38da592022-10-31 22:09:23 +000011#include <backendsCommon/test/BatchMatMulEndToEndTestImpl.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010012#include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010013#include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +010014#include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010015#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Derek Lamberti6a5e5e82019-12-05 14:41:20 +000016#include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060017#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
Teresa Charlin44088502020-07-27 11:27:19 +010018#include <backendsCommon/test/FillEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010019#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Nikhil Raj1c8adac2019-07-22 11:27:29 +010020#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010021#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Francis Murtaghb3fc2522019-08-09 13:20:50 +010022#include <backendsCommon/test/QuantizedLstmEndToEndTestImpl.hpp>
Teresa Charlinc17a35f2023-01-12 14:13:09 +000023#include <backendsCommon/test/ReduceEndToEndTestImpl.hpp>
24#include <backendsCommon/test/ReshapeEndToEndTestImpl.hpp>
Ellen Norris-Thompson29794572019-06-26 16:40:36 +010025#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010026#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Sadik Armagan581742d2019-08-12 14:11:37 +010027#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Teresa Charlin6bc85252022-12-06 20:43:06 +000028#include <backendsCommon/test/TransposeEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010029
Sadik Armagan1625efc2021-06-10 18:24:34 +010030#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010031
Sadik Armagan1625efc2021-06-10 18:24:34 +010032TEST_SUITE("NeonEndToEnd")
33{
34std::vector<armnn::BackendId> neonDefaultBackends = {armnn::Compute::CpuAcc};
narpra01b9546cf2018-11-20 15:21:28 +000035
David Monahand7fca092023-01-12 14:53:34 +000036// ElementwiseUnary
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010037// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010038TEST_CASE("NeonAbsEndToEndTestFloat32")
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010039{
Sadik Armagan1625efc2021-06-10 18:24:34 +010040 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000041 UnaryOperation::Abs);
42}
43// Rsqrt
44TEST_CASE("NeonRsqrtEndToEndTestFloat32")
45{
46 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
47 UnaryOperation::Rsqrt);
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010048}
49
50// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010051TEST_CASE("ConstantUsage_Neon_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010052{
Sadik Armagan1625efc2021-06-10 18:24:34 +010053 CHECK(ConstantUsageFloat32Test(neonDefaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010054}
55
Matteo Martincighdb16dd32019-08-27 16:41:11 +010056#if defined(ARMNNREF_ENABLED)
Matteo Martincighe67edb22019-08-14 14:05:46 +010057
58// This test unit needs the reference backend, it's not available if the reference backend is not built
59
Sadik Armagan1625efc2021-06-10 18:24:34 +010060TEST_CASE("FallbackToCpuRef")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010061{
62 using namespace armnn;
63
64 // Create runtime in which test will run and allow fallback to CpuRef.
65 IRuntime::CreationOptions options;
66 IRuntimePtr runtime(IRuntime::Create(options));
67
68 // Builds up the structure of the network.
69 INetworkPtr net(INetwork::Create());
70
71 IConnectableLayer* input = net->AddInputLayer(0);
72
73 // This layer configuration isn't supported by CpuAcc but we allow fallback to CpuRef so it shoud pass.
74 NormalizationDescriptor descriptor;
75 IConnectableLayer* pooling = net->AddNormalizationLayer(descriptor);
76
77 IConnectableLayer* output = net->AddOutputLayer(0);
78
79 input->GetOutputSlot(0).Connect(pooling->GetInputSlot(0));
80 pooling->GetOutputSlot(0).Connect(output->GetInputSlot(0));
81
82 input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
83 pooling->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
84
85 // optimize the network
86 std::vector<BackendId> backends = {Compute::CpuAcc, Compute::CpuRef};
87 IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
88
89 // Load it into the runtime. It should pass.
90 NetworkId netId;
Sadik Armagan1625efc2021-06-10 18:24:34 +010091 CHECK(runtime->LoadNetwork(netId, std::move(optNet)) == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +010092}
93
Matteo Martincighe67edb22019-08-14 14:05:46 +010094#endif
95
Sadik Armagan1625efc2021-06-10 18:24:34 +010096TEST_CASE("NeonGreaterSimpleEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +000097{
98 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
99 0, 0, 0, 0, 0, 0, 0, 0 });
100
Sadik Armagan1625efc2021-06-10 18:24:34 +0100101 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100102 ComparisonOperation::Greater,
103 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000104}
105
Sadik Armagan1625efc2021-06-10 18:24:34 +0100106TEST_CASE("NeonGreaterSimpleEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000107{
108 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
109 0, 0, 0, 0, 0, 0, 0, 0 });
110
Sadik Armagan1625efc2021-06-10 18:24:34 +0100111 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100112 ComparisonOperation::Greater,
113 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000114}
115
Sadik Armagan1625efc2021-06-10 18:24:34 +0100116TEST_CASE("NeonGreaterBroadcastEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +0000117{
118 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
119 1, 1, 1, 1, 1, 1 });
120
Sadik Armagan1625efc2021-06-10 18:24:34 +0100121 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100122 ComparisonOperation::Greater,
123 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000124}
125
Sadik Armagan1625efc2021-06-10 18:24:34 +0100126TEST_CASE("NeonGreaterBroadcastEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000127{
128 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
129 1, 1, 1, 1, 1, 1 });
130
Sadik Armagan1625efc2021-06-10 18:24:34 +0100131 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100132 ComparisonOperation::Greater,
133 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000134}
135
Ryan OShea3c2795a2022-11-03 17:51:52 +0000136TEST_CASE("NeonAdditionEndToEndFloat32Test")
137{
138 AdditionEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
139}
140
141TEST_CASE("NeonAdditionEndToEndUint8Test")
142{
143 AdditionEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
144}
145
Teresa Charlina38da592022-10-31 22:09:23 +0000146TEST_CASE("NeonBatchMatMulEndToEndFloat32Test")
147{
148 BatchMatMulEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
149}
150
Teresa Charlin1fe6c812022-11-01 15:59:50 +0000151TEST_CASE("NeonBatchMatMulEndToEndInt8Test")
152{
153 BatchMatMulEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
154}
155
Sadik Armagan1625efc2021-06-10 18:24:34 +0100156TEST_CASE("NeonConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000157{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100158 ConcatDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000159}
160
Sadik Armagan1625efc2021-06-10 18:24:34 +0100161TEST_CASE("NeonConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000162{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100163 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000164}
165
Sadik Armagan1625efc2021-06-10 18:24:34 +0100166TEST_CASE("NeonConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000167{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100168 ConcatDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000169}
170
Sadik Armagan1625efc2021-06-10 18:24:34 +0100171TEST_CASE("NeonConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000172{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100173 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000174}
175
Sadik Armagan1625efc2021-06-10 18:24:34 +0100176TEST_CASE("NeonConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000177{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100178 ConcatDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000179}
180
Sadik Armagan1625efc2021-06-10 18:24:34 +0100181TEST_CASE("NeonConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000182{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100183 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000184}
185
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100186// DepthToSpace
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000187TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100188{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100189 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100190}
191
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000192TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100193{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100194 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100195}
196
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000197TEST_CASE("NeonDephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100198{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100199 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100200}
201
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000202TEST_CASE("NeonDephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100203{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100204 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100205}
206
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000207TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100208{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100209 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100210}
211
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000212TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100213{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100214 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100215}
216
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000217TEST_CASE("NeonDephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100218{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100219 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100220}
221
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000222TEST_CASE("NeonDephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100223{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100224 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100225}
226
227// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100228TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100229{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100230 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100231}
232
Sadik Armagan1625efc2021-06-10 18:24:34 +0100233TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100234{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100235 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100236}
237
Sadik Armagan1625efc2021-06-10 18:24:34 +0100238TEST_CASE("NeonEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000239{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100240 EluEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000241}
242
Sadik Armagan1625efc2021-06-10 18:24:34 +0100243TEST_CASE("NeonEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000244{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100245 EluEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000246}
247
Jan Eilersa83af7b2020-03-18 15:58:11 +0000248// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100249TEST_CASE("NeonHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000250{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100251 HardSwishEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000252}
253
Sadik Armagan1625efc2021-06-10 18:24:34 +0100254TEST_CASE("NeonHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000255{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100256 HardSwishEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000257}
258
Sadik Armagan1625efc2021-06-10 18:24:34 +0100259TEST_CASE("NeonHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000260{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100261 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000262}
263
Sadik Armagan1625efc2021-06-10 18:24:34 +0100264TEST_CASE("NeonHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000265{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100266 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000267}
268
Sadik Armagan1625efc2021-06-10 18:24:34 +0100269TEST_CASE("NeonPreluEndToEndFloat32Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100270{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100271 PreluEndToEndNegativeTest<armnn::DataType::Float32>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100272}
273
Sadik Armagan1625efc2021-06-10 18:24:34 +0100274TEST_CASE("NeonPreluEndToEndTestUint8Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100275{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100276 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100277}
278
Sadik Armagan1625efc2021-06-10 18:24:34 +0100279TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100280{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100281 SpaceToDepthNhwcEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100282}
283
Sadik Armagan1625efc2021-06-10 18:24:34 +0100284TEST_CASE("NeonSpaceToDepthNchwEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100285{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100286 SpaceToDepthNchwEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100287}
288
Sadik Armagan1625efc2021-06-10 18:24:34 +0100289TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100290{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100291 SpaceToDepthNhwcEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100292}
293
Sadik Armagan1625efc2021-06-10 18:24:34 +0100294TEST_CASE("NeonSpaceToDepthNchwEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100295{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100296 SpaceToDepthNchwEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100297}
298
Sadik Armagan1625efc2021-06-10 18:24:34 +0100299TEST_CASE("NeonSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100300{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100301 Splitter1dEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100302}
303
Sadik Armagan1625efc2021-06-10 18:24:34 +0100304TEST_CASE("NeonSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100305{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100306 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100307}
308
Sadik Armagan1625efc2021-06-10 18:24:34 +0100309TEST_CASE("NeonSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100310{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100311 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100312}
313
Sadik Armagan1625efc2021-06-10 18:24:34 +0100314TEST_CASE("NeonSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100315{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100316 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100317}
318
Sadik Armagan1625efc2021-06-10 18:24:34 +0100319TEST_CASE("NeonSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100320{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100321 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100322}
323
Sadik Armagan1625efc2021-06-10 18:24:34 +0100324TEST_CASE("NeonSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100325{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100326 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100327}
328
Sadik Armagan1625efc2021-06-10 18:24:34 +0100329TEST_CASE("NeonSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100330{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100331 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100332}
333
Sadik Armagan1625efc2021-06-10 18:24:34 +0100334TEST_CASE("NeonSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100335{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100336 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100337}
338
Sadik Armagan1625efc2021-06-10 18:24:34 +0100339TEST_CASE("NeonSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100340{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100341 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100342}
343
Sadik Armagan1625efc2021-06-10 18:24:34 +0100344TEST_CASE("NeonSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100345{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100346 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100347}
348
Sadik Armagan1625efc2021-06-10 18:24:34 +0100349TEST_CASE("NeonSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100350{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100351 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100352}
353
Sadik Armagan1625efc2021-06-10 18:24:34 +0100354TEST_CASE("NeonSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100355{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100356 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100357}
358
Sadik Armagan1625efc2021-06-10 18:24:34 +0100359TEST_CASE("NeonSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100360{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100361 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100362}
363
Sadik Armagan1625efc2021-06-10 18:24:34 +0100364TEST_CASE("NeonSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100365{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100366 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100367}
368
Sadik Armagan1625efc2021-06-10 18:24:34 +0100369TEST_CASE("NeonSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100370{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100371 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100372}
373
Sadik Armagan1625efc2021-06-10 18:24:34 +0100374TEST_CASE("NeonSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100375{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100376 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100377}
378
Sadik Armagan1625efc2021-06-10 18:24:34 +0100379TEST_CASE("NeonSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100380{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100381 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100382}
383
Sadik Armagan1625efc2021-06-10 18:24:34 +0100384TEST_CASE("NeonSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100385{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100386 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100387}
388
Sadik Armagan1625efc2021-06-10 18:24:34 +0100389TEST_CASE("NeonSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100390{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100391 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100392}
393
Sadik Armagan1625efc2021-06-10 18:24:34 +0100394TEST_CASE("NeonSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100395{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100396 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100397}
398
Sadik Armagan1625efc2021-06-10 18:24:34 +0100399TEST_CASE("NeonQuantizedLstmEndToEndTest")
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100400{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100401 QuantizedLstmEndToEnd(neonDefaultBackends);
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100402}
403
Sadik Armagan1625efc2021-06-10 18:24:34 +0100404TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100405{
406 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100407 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100408}
409
Sadik Armagan1625efc2021-06-10 18:24:34 +0100410TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100411{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000412 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100413 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100414}
415
Sadik Armagan1625efc2021-06-10 18:24:34 +0100416TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100417{
418 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100419 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100420}
421
Sadik Armagan1625efc2021-06-10 18:24:34 +0100422TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100423{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000424 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100425 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100426}
427
Teresa Charlin6bc85252022-12-06 20:43:06 +0000428// Transpose
429TEST_CASE("NeonTransposeEndToEndTest")
430{
431 TransposeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
432}
433
Sadik Armagan1625efc2021-06-10 18:24:34 +0100434TEST_CASE("NeonImportNonAlignedInputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100435{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100436 ImportNonAlignedInputPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100437}
438
Sadik Armagan1625efc2021-06-10 18:24:34 +0100439TEST_CASE("NeonExportNonAlignedOutputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100440{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100441 ExportNonAlignedOutputPointerTest(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100442}
443
Sadik Armagan1625efc2021-06-10 18:24:34 +0100444TEST_CASE("NeonImportAlignedPointerTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100445{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100446 ImportAlignedPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100447}
448
Sadik Armagan1625efc2021-06-10 18:24:34 +0100449TEST_CASE("NeonImportOnlyWorkload")
David Monahan3fb7e102019-08-20 11:25:29 +0100450{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100451 ImportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100452}
David Monahan3fb7e102019-08-20 11:25:29 +0100453
Sadik Armagan1625efc2021-06-10 18:24:34 +0100454TEST_CASE("NeonExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100455{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100456 ExportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100457}
David Monahan3fb7e102019-08-20 11:25:29 +0100458
Sadik Armagan1625efc2021-06-10 18:24:34 +0100459TEST_CASE("NeonImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100460{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100461 ImportAndExportWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100462}
David Monahan3fb7e102019-08-20 11:25:29 +0100463
Sadik Armagan1625efc2021-06-10 18:24:34 +0100464TEST_CASE("NeonExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100465{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100466 ExportOutputWithSeveralOutputSlotConnectionsTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100467}
468
Sadik Armagan062e0e92019-10-14 10:31:43 +0100469// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +0100470TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100471{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100472 InstanceNormalizationNchwEndToEndTest1(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100473}
474
Sadik Armagan1625efc2021-06-10 18:24:34 +0100475TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100476{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100477 InstanceNormalizationNchwEndToEndTest2(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100478}
479
Teresa Charlin44088502020-07-27 11:27:19 +0100480// Fill
Sadik Armagan1625efc2021-06-10 18:24:34 +0100481TEST_CASE("NeonFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100482{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100483 FillEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100484}
485
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000486TEST_CASE("NeonFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100487{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100488 FillEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100489}
490
Sadik Armagan1625efc2021-06-10 18:24:34 +0100491TEST_CASE("NeonFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100492{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100493 FillEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100494}
495
James Conroy68a4dbc2019-11-13 15:35:59 +0000496// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +0100497TEST_CASE("NeonArgMaxSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000498{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100499 ArgMaxEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000500}
501
Sadik Armagan1625efc2021-06-10 18:24:34 +0100502TEST_CASE("NeonArgMinSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000503{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100504 ArgMinEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000505}
506
Sadik Armagan1625efc2021-06-10 18:24:34 +0100507TEST_CASE("NeonArgMaxAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000508{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100509 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000510}
511
Sadik Armagan1625efc2021-06-10 18:24:34 +0100512TEST_CASE("NeonArgMinAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000513{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100514 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000515}
516
Sadik Armagan1625efc2021-06-10 18:24:34 +0100517TEST_CASE("NeonArgMaxAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000518{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100519 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000520}
521
Sadik Armagan1625efc2021-06-10 18:24:34 +0100522TEST_CASE("NeonArgMinAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000523{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100524 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000525}
526
Sadik Armagan1625efc2021-06-10 18:24:34 +0100527TEST_CASE("NeonArgMaxAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000528{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100529 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000530}
531
Sadik Armagan1625efc2021-06-10 18:24:34 +0100532TEST_CASE("NeonArgMinAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000533{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100534 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000535}
536
Sadik Armagan1625efc2021-06-10 18:24:34 +0100537TEST_CASE("NeonArgMaxAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000538{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100539 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000540}
541
Sadik Armagan1625efc2021-06-10 18:24:34 +0100542TEST_CASE("NeonArgMinAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000543{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100544 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000545}
546
Sadik Armagan1625efc2021-06-10 18:24:34 +0100547TEST_CASE("NeonArgMaxSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000548{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100549 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000550}
551
Sadik Armagan1625efc2021-06-10 18:24:34 +0100552TEST_CASE("NeonArgMinSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000553{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100554 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000555}
556
Sadik Armagan1625efc2021-06-10 18:24:34 +0100557TEST_CASE("NeonArgMaxAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000558{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100559 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000560}
561
Sadik Armagan1625efc2021-06-10 18:24:34 +0100562TEST_CASE("NeonArgMinAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000563{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100564 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000565}
566
Sadik Armagan1625efc2021-06-10 18:24:34 +0100567TEST_CASE("NeonArgMaxAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000568{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100569 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000570}
571
Sadik Armagan1625efc2021-06-10 18:24:34 +0100572TEST_CASE("NeonArgMinAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000573{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100574 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000575}
576
Sadik Armagan1625efc2021-06-10 18:24:34 +0100577TEST_CASE("NeonArgMaxAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000578{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100579 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000580}
581
Sadik Armagan1625efc2021-06-10 18:24:34 +0100582TEST_CASE("NeonArgMinAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000583{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100584 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000585}
586
Sadik Armagan1625efc2021-06-10 18:24:34 +0100587TEST_CASE("NeonArgMaxAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000588{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100589 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000590}
591
Sadik Armagan1625efc2021-06-10 18:24:34 +0100592TEST_CASE("NeonArgMinAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000593{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100594 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000595}
596
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000597// Reduce
598TEST_CASE("NeonReduceEndToEndTest")
599{
600 ReduceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
601}
602
603TEST_CASE("NeonReduceEndToEndTestFloat16")
604{
605 ReduceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
606}
607
608// Reshape
609TEST_CASE("NeonReshapeEndToEndTest")
610{
611 ReshapeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
612}
613
614TEST_CASE("NeonReshapeEndToEndTestFloat16")
615{
616 ReshapeEndToEndFloat16<armnn::DataType::Float16>(neonDefaultBackends);
617}
618
Sadik Armagan1625efc2021-06-10 18:24:34 +0100619TEST_CASE("NeonStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +0000620{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100621 StridedSliceInvalidSliceEndToEndTest(neonDefaultBackends);
David Monahan0a99a142020-03-13 07:52:54 +0000622}
623
Colm Doneland7ceec52022-07-06 12:09:05 +0100624TEST_CASE("NeonForceImportWithAlignedBuffersEndToEndTest"
625 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
626 // will always fail.
627 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000628{
629 ForceImportWithAlignedBuffersEndToEndTest(neonDefaultBackends);
630}
631
Colm Doneland7ceec52022-07-06 12:09:05 +0100632TEST_CASE("NeonForceImportWithMisalignedInputBuffersEndToEndTest"
633 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
634 // will always fail.
635 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000636{
637 ForceImportWithMisalignedInputBuffersEndToEndTest(neonDefaultBackends);
638}
639
Colm Doneland7ceec52022-07-06 12:09:05 +0100640TEST_CASE("NeonForceImportWithMisalignedOutputBuffersEndToEndTest"
641 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
642 // will always fail.
643 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000644{
645 ForceImportWithMisalignedOutputBuffersEndToEndTest(neonDefaultBackends);
646}
647
648TEST_CASE("NeonForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
649{
650 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(neonDefaultBackends);
651}
652
Sadik Armagan1625efc2021-06-10 18:24:34 +0100653// DISABLED
654//TEST_CASE("NeonDetectionPostProcessRegularNmsTest")
655//{
656// std::vector<float> boxEncodings({
657// 0.0f, 0.0f, 0.0f, 0.0f,
658// 0.0f, 1.0f, 0.0f, 0.0f,
659// 0.0f, -1.0f, 0.0f, 0.0f,
660// 0.0f, 0.0f, 0.0f, 0.0f,
661// 0.0f, 1.0f, 0.0f, 0.0f,
662// 0.0f, 0.0f, 0.0f, 0.0f
663// });
664// std::vector<float> scores({
665// 0.0f, 0.9f, 0.8f,
666// 0.0f, 0.75f, 0.72f,
667// 0.0f, 0.6f, 0.5f,
668// 0.0f, 0.93f, 0.95f,
669// 0.0f, 0.5f, 0.4f,
670// 0.0f, 0.3f, 0.2f
671// });
672// std::vector<float> anchors({
673// 0.5f, 0.5f, 1.0f, 1.0f,
674// 0.5f, 0.5f, 1.0f, 1.0f,
675// 0.5f, 0.5f, 1.0f, 1.0f,
676// 0.5f, 10.5f, 1.0f, 1.0f,
677// 0.5f, 10.5f, 1.0f, 1.0f,
678// 0.5f, 100.5f, 1.0f, 1.0f
679// });
680// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
681// boxEncodings,
682// scores,
683// anchors);
684//}
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000685
686inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
687{
688 for (size_t i = 0; i < info.GetNumElements(); i++)
689 {
690 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
691 }
692}
693
Sadik Armagan1625efc2021-06-10 18:24:34 +0100694// DISABLED
695//TEST_CASE("NeonDetectionPostProcessRegularNmsUint8Test")
696//{
697// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
698// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
699// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
700//
701// boxEncodingsInfo.SetQuantizationScale(1.0f);
702// boxEncodingsInfo.SetQuantizationOffset(1);
703// scoresInfo.SetQuantizationScale(0.01f);
704// scoresInfo.SetQuantizationOffset(0);
705// anchorsInfo.SetQuantizationScale(0.5f);
706// anchorsInfo.SetQuantizationOffset(0);
707//
708// std::vector<float> boxEncodings({
709// 0.0f, 0.0f, 0.0f, 0.0f,
710// 0.0f, 1.0f, 0.0f, 0.0f,
711// 0.0f, -1.0f, 0.0f, 0.0f,
712// 0.0f, 0.0f, 0.0f, 0.0f,
713// 0.0f, 1.0f, 0.0f, 0.0f,
714// 0.0f, 0.0f, 0.0f, 0.0f
715// });
716// std::vector<float> scores({
717// 0.0f, 0.9f, 0.8f,
718// 0.0f, 0.75f, 0.72f,
719// 0.0f, 0.6f, 0.5f,
720// 0.0f, 0.93f, 0.95f,
721// 0.0f, 0.5f, 0.4f,
722// 0.0f, 0.3f, 0.2f
723// });
724// std::vector<float> anchors({
725// 0.5f, 0.5f, 1.0f, 1.0f,
726// 0.5f, 0.5f, 1.0f, 1.0f,
727// 0.5f, 0.5f, 1.0f, 1.0f,
728// 0.5f, 10.5f, 1.0f, 1.0f,
729// 0.5f, 10.5f, 1.0f, 1.0f,
730// 0.5f, 100.5f, 1.0f, 1.0f
731// });
732//
733// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
734// std::vector<uint8_t> qScores(scores.size(), 0);
735// std::vector<uint8_t> qAnchors(anchors.size(), 0);
736// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
737// QuantizeData(qScores.data(), scores.data(), scoresInfo);
738// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
739// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
740// qScores, qAnchors,
741// 1.0f, 1, 0.01f, 0, 0.5f, 0);
742//}
743//
744//TEST_CASE("NeonDetectionPostProcessFastNmsTest")
745//{
746// std::vector<float> boxEncodings({
747// 0.0f, 0.0f, 0.0f, 0.0f,
748// 0.0f, 1.0f, 0.0f, 0.0f,
749// 0.0f, -1.0f, 0.0f, 0.0f,
750// 0.0f, 0.0f, 0.0f, 0.0f,
751// 0.0f, 1.0f, 0.0f, 0.0f,
752// 0.0f, 0.0f, 0.0f, 0.0f
753// });
754// std::vector<float> scores({
755// 0.0f, 0.9f, 0.8f,
756// 0.0f, 0.75f, 0.72f,
757// 0.0f, 0.6f, 0.5f,
758// 0.0f, 0.93f, 0.95f,
759// 0.0f, 0.5f, 0.4f,
760// 0.0f, 0.3f, 0.2f
761// });
762// std::vector<float> anchors({
763// 0.5f, 0.5f, 1.0f, 1.0f,
764// 0.5f, 0.5f, 1.0f, 1.0f,
765// 0.5f, 0.5f, 1.0f, 1.0f,
766// 0.5f, 10.5f, 1.0f, 1.0f,
767// 0.5f, 10.5f, 1.0f, 1.0f,
768// 0.5f, 100.5f, 1.0f, 1.0f
769// });
770// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
771// boxEncodings,
772// scores,
773// anchors);
774//}
775//
776// DISABLED
777//TEST_CASE("NeonDetectionPostProcessFastNmsUint8Test")
778//{
779// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
780// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
781// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
782//
783// boxEncodingsInfo.SetQuantizationScale(1.0f);
784// boxEncodingsInfo.SetQuantizationOffset(1);
785// scoresInfo.SetQuantizationScale(0.01f);
786// scoresInfo.SetQuantizationOffset(0);
787// anchorsInfo.SetQuantizationScale(0.5f);
788// anchorsInfo.SetQuantizationOffset(0);
789//
790// std::vector<float> boxEncodings({
791// 0.0f, 0.0f, 0.0f, 0.0f,
792// 0.0f, 1.0f, 0.0f, 0.0f,
793// 0.0f, -1.0f, 0.0f, 0.0f,
794// 0.0f, 0.0f, 0.0f, 0.0f,
795// 0.0f, 1.0f, 0.0f, 0.0f,
796// 0.0f, 0.0f, 0.0f, 0.0f
797// });
798// std::vector<float> scores({
799// 0.0f, 0.9f, 0.8f,
800// 0.0f, 0.75f, 0.72f,
801// 0.0f, 0.6f, 0.5f,
802// 0.0f, 0.93f, 0.95f,
803// 0.0f, 0.5f, 0.4f,
804// 0.0f, 0.3f, 0.2f
805// });
806// std::vector<float> anchors({
807// 0.5f, 0.5f, 1.0f, 1.0f,
808// 0.5f, 0.5f, 1.0f, 1.0f,
809// 0.5f, 0.5f, 1.0f, 1.0f,
810// 0.5f, 10.5f, 1.0f, 1.0f,
811// 0.5f, 10.5f, 1.0f, 1.0f,
812// 0.5f, 100.5f, 1.0f, 1.0f
813// });
814//
815// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
816// std::vector<uint8_t> qScores(scores.size(), 0);
817// std::vector<uint8_t> qAnchors(anchors.size(), 0);
818// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
819// QuantizeData(qScores.data(), scores.data(), scoresInfo);
820// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
821// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
822// qScores, qAnchors,
823// 1.0f, 1, 0.01f, 0, 0.5f, 0);
824//}
825
826TEST_CASE("NeonQLstmEndToEndTest")
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000827{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100828 QLstmEndToEnd(neonDefaultBackends);
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000829}
830
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000831}