blob: 9baded6671a7b0406b7a94065236387af25f9a49 [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>
John Mcloughlin34c1c382023-05-17 15:08:36 +010017#include <backendsCommon/test/ElementwiseBinaryEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060018#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
Teresa Charlin44088502020-07-27 11:27:19 +010019#include <backendsCommon/test/FillEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010020#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Nikhil Raj1c8adac2019-07-22 11:27:29 +010021#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010022#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Francis Murtaghb3fc2522019-08-09 13:20:50 +010023#include <backendsCommon/test/QuantizedLstmEndToEndTestImpl.hpp>
Teresa Charlinc17a35f2023-01-12 14:13:09 +000024#include <backendsCommon/test/ReduceEndToEndTestImpl.hpp>
25#include <backendsCommon/test/ReshapeEndToEndTestImpl.hpp>
Teresa Charlin28658bc2023-12-19 15:49:31 +000026#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Tianle Cheng21a9f332023-11-09 13:56:53 +000027#include <backendsCommon/test/ReverseV2EndToEndTestImpl.hpp>
Ryan OShea980446b2023-06-08 16:23:28 +010028#include <backendsCommon/test/SliceEndToEndTestImpl.hpp>
Ellen Norris-Thompson29794572019-06-26 16:40:36 +010029#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010030#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly4cc341c2023-07-07 15:43:06 +010031#include <backendsCommon/test/SubgraphUtilsTest.hpp>
David Monahan36e6eae2023-07-26 18:37:45 +010032#include <backendsCommon/test/TileEndToEndTestImpl.hpp>
Sadik Armagan581742d2019-08-12 14:11:37 +010033#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Teresa Charlin6bc85252022-12-06 20:43:06 +000034#include <backendsCommon/test/TransposeEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010035
Sadik Armagan1625efc2021-06-10 18:24:34 +010036#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010037
Sadik Armagan1625efc2021-06-10 18:24:34 +010038TEST_SUITE("NeonEndToEnd")
39{
40std::vector<armnn::BackendId> neonDefaultBackends = {armnn::Compute::CpuAcc};
narpra01b9546cf2018-11-20 15:21:28 +000041
David Monahand7fca092023-01-12 14:53:34 +000042// ElementwiseUnary
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010043// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010044TEST_CASE("NeonAbsEndToEndTestFloat32")
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010045{
Sadik Armagan1625efc2021-06-10 18:24:34 +010046 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000047 UnaryOperation::Abs);
48}
49// Rsqrt
50TEST_CASE("NeonRsqrtEndToEndTestFloat32")
51{
52 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
53 UnaryOperation::Rsqrt);
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010054}
55
56// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010057TEST_CASE("ConstantUsage_Neon_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010058{
Sadik Armagan1625efc2021-06-10 18:24:34 +010059 CHECK(ConstantUsageFloat32Test(neonDefaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010060}
61
Matteo Martincighdb16dd32019-08-27 16:41:11 +010062#if defined(ARMNNREF_ENABLED)
Matteo Martincighe67edb22019-08-14 14:05:46 +010063
64// This test unit needs the reference backend, it's not available if the reference backend is not built
65
Sadik Armagan1625efc2021-06-10 18:24:34 +010066TEST_CASE("FallbackToCpuRef")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010067{
68 using namespace armnn;
69
70 // Create runtime in which test will run and allow fallback to CpuRef.
71 IRuntime::CreationOptions options;
72 IRuntimePtr runtime(IRuntime::Create(options));
73
74 // Builds up the structure of the network.
75 INetworkPtr net(INetwork::Create());
76
77 IConnectableLayer* input = net->AddInputLayer(0);
78
79 // This layer configuration isn't supported by CpuAcc but we allow fallback to CpuRef so it shoud pass.
80 NormalizationDescriptor descriptor;
81 IConnectableLayer* pooling = net->AddNormalizationLayer(descriptor);
82
83 IConnectableLayer* output = net->AddOutputLayer(0);
84
85 input->GetOutputSlot(0).Connect(pooling->GetInputSlot(0));
86 pooling->GetOutputSlot(0).Connect(output->GetInputSlot(0));
87
88 input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
89 pooling->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
90
91 // optimize the network
92 std::vector<BackendId> backends = {Compute::CpuAcc, Compute::CpuRef};
93 IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
94
95 // Load it into the runtime. It should pass.
96 NetworkId netId;
Sadik Armagan1625efc2021-06-10 18:24:34 +010097 CHECK(runtime->LoadNetwork(netId, std::move(optNet)) == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +010098}
99
Matteo Martincighe67edb22019-08-14 14:05:46 +0100100#endif
101
Sadik Armagan1625efc2021-06-10 18:24:34 +0100102TEST_CASE("NeonGreaterSimpleEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +0000103{
104 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
105 0, 0, 0, 0, 0, 0, 0, 0 });
106
Sadik Armagan1625efc2021-06-10 18:24:34 +0100107 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100108 ComparisonOperation::Greater,
109 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000110}
111
Sadik Armagan1625efc2021-06-10 18:24:34 +0100112TEST_CASE("NeonGreaterSimpleEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000113{
114 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
115 0, 0, 0, 0, 0, 0, 0, 0 });
116
Sadik Armagan1625efc2021-06-10 18:24:34 +0100117 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100118 ComparisonOperation::Greater,
119 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000120}
121
Sadik Armagan1625efc2021-06-10 18:24:34 +0100122TEST_CASE("NeonGreaterBroadcastEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +0000123{
124 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
125 1, 1, 1, 1, 1, 1 });
126
Sadik Armagan1625efc2021-06-10 18:24:34 +0100127 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100128 ComparisonOperation::Greater,
129 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000130}
131
Sadik Armagan1625efc2021-06-10 18:24:34 +0100132TEST_CASE("NeonGreaterBroadcastEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000133{
134 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
135 1, 1, 1, 1, 1, 1 });
136
Sadik Armagan1625efc2021-06-10 18:24:34 +0100137 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100138 ComparisonOperation::Greater,
139 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000140}
141
John Mcloughlin34c1c382023-05-17 15:08:36 +0100142// ElementwiseBinary
143// Add
Ryan OShea3c2795a2022-11-03 17:51:52 +0000144TEST_CASE("NeonAdditionEndToEndFloat32Test")
145{
146 AdditionEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
147}
148
149TEST_CASE("NeonAdditionEndToEndUint8Test")
150{
151 AdditionEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
152}
153
John Mcloughlin34c1c382023-05-17 15:08:36 +0100154// Power
Mike Kelly4cc341c2023-07-07 15:43:06 +0100155TEST_CASE("NeonPowerEndToEndTestFloat32")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100156{
157 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Power);
158}
159
160// SqDiff
Mike Kelly4cc341c2023-07-07 15:43:06 +0100161TEST_CASE("NeonSquaredDifferenceEndToEndTestFloat32")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100162{
163 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::SqDiff);
164}
165
Mike Kelly4cc341c2023-07-07 15:43:06 +0100166TEST_CASE("NeonSquaredDifferenceEndToEndTestUint8")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100167{
168 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, BinaryOperation::SqDiff);
169}
170
171// Batch Mat Mul
Teresa Charlina38da592022-10-31 22:09:23 +0000172TEST_CASE("NeonBatchMatMulEndToEndFloat32Test")
173{
174 BatchMatMulEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
175}
176
Teresa Charlin1fe6c812022-11-01 15:59:50 +0000177TEST_CASE("NeonBatchMatMulEndToEndInt8Test")
178{
179 BatchMatMulEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
180}
181
John Mcloughlin34c1c382023-05-17 15:08:36 +0100182// Concat
Sadik Armagan1625efc2021-06-10 18:24:34 +0100183TEST_CASE("NeonConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000184{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100185 ConcatDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000186}
187
Sadik Armagan1625efc2021-06-10 18:24:34 +0100188TEST_CASE("NeonConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000189{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100190 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000191}
192
Sadik Armagan1625efc2021-06-10 18:24:34 +0100193TEST_CASE("NeonConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000194{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100195 ConcatDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000196}
197
Sadik Armagan1625efc2021-06-10 18:24:34 +0100198TEST_CASE("NeonConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000199{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100200 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000201}
202
Sadik Armagan1625efc2021-06-10 18:24:34 +0100203TEST_CASE("NeonConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000204{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100205 ConcatDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000206}
207
Sadik Armagan1625efc2021-06-10 18:24:34 +0100208TEST_CASE("NeonConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000209{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100210 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000211}
212
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100213// DepthToSpace
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000214TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100215{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100216 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100217}
218
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000219TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100220{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100221 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100222}
223
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000224TEST_CASE("NeonDephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100225{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100226 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100227}
228
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000229TEST_CASE("NeonDephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100230{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100231 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100232}
233
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000234TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100235{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100236 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100237}
238
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000239TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100240{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100241 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100242}
243
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000244TEST_CASE("NeonDephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100245{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100246 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100247}
248
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000249TEST_CASE("NeonDephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100250{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100251 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100252}
253
254// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100255TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100256{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100257 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100258}
259
Sadik Armagan1625efc2021-06-10 18:24:34 +0100260TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100261{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100262 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100263}
264
Sadik Armagan1625efc2021-06-10 18:24:34 +0100265TEST_CASE("NeonEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000266{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100267 EluEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000268}
269
Sadik Armagan1625efc2021-06-10 18:24:34 +0100270TEST_CASE("NeonEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000271{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100272 EluEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000273}
274
Jan Eilersa83af7b2020-03-18 15:58:11 +0000275// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100276TEST_CASE("NeonHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000277{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100278 HardSwishEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000279}
280
Sadik Armagan1625efc2021-06-10 18:24:34 +0100281TEST_CASE("NeonHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000282{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100283 HardSwishEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000284}
285
Sadik Armagan1625efc2021-06-10 18:24:34 +0100286TEST_CASE("NeonHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000287{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100288 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000289}
290
Sadik Armagan1625efc2021-06-10 18:24:34 +0100291TEST_CASE("NeonHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000292{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100293 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000294}
295
Sadik Armagan1625efc2021-06-10 18:24:34 +0100296TEST_CASE("NeonPreluEndToEndFloat32Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100297{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100298 PreluEndToEndNegativeTest<armnn::DataType::Float32>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100299}
300
Sadik Armagan1625efc2021-06-10 18:24:34 +0100301TEST_CASE("NeonPreluEndToEndTestUint8Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100302{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100303 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100304}
305
Sadik Armagan1625efc2021-06-10 18:24:34 +0100306TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100307{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100308 SpaceToDepthNhwcEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100309}
310
Sadik Armagan1625efc2021-06-10 18:24:34 +0100311TEST_CASE("NeonSpaceToDepthNchwEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100312{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100313 SpaceToDepthNchwEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100314}
315
Sadik Armagan1625efc2021-06-10 18:24:34 +0100316TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100317{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100318 SpaceToDepthNhwcEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100319}
320
Sadik Armagan1625efc2021-06-10 18:24:34 +0100321TEST_CASE("NeonSpaceToDepthNchwEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100322{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100323 SpaceToDepthNchwEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100324}
325
Sadik Armagan1625efc2021-06-10 18:24:34 +0100326TEST_CASE("NeonSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100327{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100328 Splitter1dEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100329}
330
Sadik Armagan1625efc2021-06-10 18:24:34 +0100331TEST_CASE("NeonSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100332{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100333 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100334}
335
Sadik Armagan1625efc2021-06-10 18:24:34 +0100336TEST_CASE("NeonSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100337{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100338 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100339}
340
Sadik Armagan1625efc2021-06-10 18:24:34 +0100341TEST_CASE("NeonSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100342{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100343 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100344}
345
Sadik Armagan1625efc2021-06-10 18:24:34 +0100346TEST_CASE("NeonSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100347{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100348 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100349}
350
Sadik Armagan1625efc2021-06-10 18:24:34 +0100351TEST_CASE("NeonSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100352{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100353 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100354}
355
Sadik Armagan1625efc2021-06-10 18:24:34 +0100356TEST_CASE("NeonSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100357{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100358 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100359}
360
Sadik Armagan1625efc2021-06-10 18:24:34 +0100361TEST_CASE("NeonSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100362{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100363 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100364}
365
Sadik Armagan1625efc2021-06-10 18:24:34 +0100366TEST_CASE("NeonSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100367{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100368 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100369}
370
Sadik Armagan1625efc2021-06-10 18:24:34 +0100371TEST_CASE("NeonSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100372{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100373 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100374}
375
Sadik Armagan1625efc2021-06-10 18:24:34 +0100376TEST_CASE("NeonSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100377{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100378 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100379}
380
Sadik Armagan1625efc2021-06-10 18:24:34 +0100381TEST_CASE("NeonSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100382{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100383 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100384}
385
Sadik Armagan1625efc2021-06-10 18:24:34 +0100386TEST_CASE("NeonSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100387{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100388 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100389}
390
Sadik Armagan1625efc2021-06-10 18:24:34 +0100391TEST_CASE("NeonSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100392{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100393 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100394}
395
Sadik Armagan1625efc2021-06-10 18:24:34 +0100396TEST_CASE("NeonSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100397{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100398 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100399}
400
Sadik Armagan1625efc2021-06-10 18:24:34 +0100401TEST_CASE("NeonSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100402{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100403 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100404}
405
Sadik Armagan1625efc2021-06-10 18:24:34 +0100406TEST_CASE("NeonSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100407{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100408 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100409}
410
Sadik Armagan1625efc2021-06-10 18:24:34 +0100411TEST_CASE("NeonSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100412{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100413 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100414}
415
Sadik Armagan1625efc2021-06-10 18:24:34 +0100416TEST_CASE("NeonSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100417{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100418 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100419}
420
Sadik Armagan1625efc2021-06-10 18:24:34 +0100421TEST_CASE("NeonSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100422{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100423 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100424}
425
David Monahan36e6eae2023-07-26 18:37:45 +0100426// Tile
427TEST_CASE("NeonTileEndToEndFloat32")
428{
429 TileEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
430}
431TEST_CASE("NeonTileEndToEndFloat16")
432{
433 TileEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
434}
435TEST_CASE("NeonTileEndToEndQAsymmS8")
436{
437 TileEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
438}
439TEST_CASE("NeonTileEndToEndQAsymmU8")
440{
441 TileEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
442}
443TEST_CASE("NeonTileEndToEndQSymmS8")
444{
445 TileEndToEnd<armnn::DataType::QSymmS8>(neonDefaultBackends);
446}
447TEST_CASE("NeonTileEndToEndQSymmS16")
448{
449 TileEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends);
450}
451TEST_CASE("NeonTileEndToEndSigned32")
452{
453 TileEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
454}
455
Sadik Armagan1625efc2021-06-10 18:24:34 +0100456TEST_CASE("NeonQuantizedLstmEndToEndTest")
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100457{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100458 QuantizedLstmEndToEnd(neonDefaultBackends);
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100459}
460
Sadik Armagan1625efc2021-06-10 18:24:34 +0100461TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100462{
463 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100464 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100465}
466
Sadik Armagan1625efc2021-06-10 18:24:34 +0100467TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100468{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000469 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100470 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100471}
472
Sadik Armagan1625efc2021-06-10 18:24:34 +0100473TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100474{
475 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100476 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100477}
478
Sadik Armagan1625efc2021-06-10 18:24:34 +0100479TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100480{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000481 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100482 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100483}
484
Teresa Charlin6bc85252022-12-06 20:43:06 +0000485// Transpose
486TEST_CASE("NeonTransposeEndToEndTest")
487{
488 TransposeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
489}
490
Sadik Armagan1625efc2021-06-10 18:24:34 +0100491TEST_CASE("NeonImportNonAlignedInputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100492{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100493 ImportNonAlignedInputPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100494}
495
Sadik Armagan1625efc2021-06-10 18:24:34 +0100496TEST_CASE("NeonExportNonAlignedOutputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100497{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100498 ExportNonAlignedOutputPointerTest(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100499}
500
Sadik Armagan1625efc2021-06-10 18:24:34 +0100501TEST_CASE("NeonImportAlignedPointerTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100502{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100503 ImportAlignedPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100504}
505
Sadik Armagan1625efc2021-06-10 18:24:34 +0100506TEST_CASE("NeonImportOnlyWorkload")
David Monahan3fb7e102019-08-20 11:25:29 +0100507{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100508 ImportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100509}
David Monahan3fb7e102019-08-20 11:25:29 +0100510
Sadik Armagan1625efc2021-06-10 18:24:34 +0100511TEST_CASE("NeonExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100512{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100513 ExportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100514}
David Monahan3fb7e102019-08-20 11:25:29 +0100515
Sadik Armagan1625efc2021-06-10 18:24:34 +0100516TEST_CASE("NeonImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100517{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100518 ImportAndExportWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100519}
David Monahan3fb7e102019-08-20 11:25:29 +0100520
Sadik Armagan1625efc2021-06-10 18:24:34 +0100521TEST_CASE("NeonExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100522{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100523 ExportOutputWithSeveralOutputSlotConnectionsTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100524}
525
Sadik Armagan062e0e92019-10-14 10:31:43 +0100526// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +0100527TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100528{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100529 InstanceNormalizationNchwEndToEndTest1(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100530}
531
Sadik Armagan1625efc2021-06-10 18:24:34 +0100532TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100533{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100534 InstanceNormalizationNchwEndToEndTest2(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100535}
536
Teresa Charlin44088502020-07-27 11:27:19 +0100537// Fill
Sadik Armagan1625efc2021-06-10 18:24:34 +0100538TEST_CASE("NeonFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100539{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100540 FillEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100541}
542
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000543TEST_CASE("NeonFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100544{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100545 FillEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100546}
547
Sadik Armagan1625efc2021-06-10 18:24:34 +0100548TEST_CASE("NeonFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100549{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100550 FillEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100551}
552
James Conroy68a4dbc2019-11-13 15:35:59 +0000553// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +0100554TEST_CASE("NeonArgMaxSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000555{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100556 ArgMaxEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000557}
558
Sadik Armagan1625efc2021-06-10 18:24:34 +0100559TEST_CASE("NeonArgMinSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000560{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100561 ArgMinEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000562}
563
Sadik Armagan1625efc2021-06-10 18:24:34 +0100564TEST_CASE("NeonArgMaxAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000565{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100566 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000567}
568
Sadik Armagan1625efc2021-06-10 18:24:34 +0100569TEST_CASE("NeonArgMinAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000570{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100571 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000572}
573
Sadik Armagan1625efc2021-06-10 18:24:34 +0100574TEST_CASE("NeonArgMaxAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000575{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100576 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000577}
578
Sadik Armagan1625efc2021-06-10 18:24:34 +0100579TEST_CASE("NeonArgMinAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000580{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100581 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000582}
583
Sadik Armagan1625efc2021-06-10 18:24:34 +0100584TEST_CASE("NeonArgMaxAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000585{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100586 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000587}
588
Sadik Armagan1625efc2021-06-10 18:24:34 +0100589TEST_CASE("NeonArgMinAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000590{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100591 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000592}
593
Sadik Armagan1625efc2021-06-10 18:24:34 +0100594TEST_CASE("NeonArgMaxAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000595{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100596 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000597}
598
Sadik Armagan1625efc2021-06-10 18:24:34 +0100599TEST_CASE("NeonArgMinAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000600{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100601 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000602}
603
Sadik Armagan1625efc2021-06-10 18:24:34 +0100604TEST_CASE("NeonArgMaxSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000605{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100606 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000607}
608
Sadik Armagan1625efc2021-06-10 18:24:34 +0100609TEST_CASE("NeonArgMinSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000610{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100611 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000612}
613
Sadik Armagan1625efc2021-06-10 18:24:34 +0100614TEST_CASE("NeonArgMaxAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000615{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100616 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000617}
618
Sadik Armagan1625efc2021-06-10 18:24:34 +0100619TEST_CASE("NeonArgMinAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000620{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100621 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000622}
623
Sadik Armagan1625efc2021-06-10 18:24:34 +0100624TEST_CASE("NeonArgMaxAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000625{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100626 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000627}
628
Sadik Armagan1625efc2021-06-10 18:24:34 +0100629TEST_CASE("NeonArgMinAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000630{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100631 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000632}
633
Sadik Armagan1625efc2021-06-10 18:24:34 +0100634TEST_CASE("NeonArgMaxAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000635{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100636 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000637}
638
Sadik Armagan1625efc2021-06-10 18:24:34 +0100639TEST_CASE("NeonArgMinAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000640{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100641 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000642}
643
Sadik Armagan1625efc2021-06-10 18:24:34 +0100644TEST_CASE("NeonArgMaxAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000645{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100646 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000647}
648
Sadik Armagan1625efc2021-06-10 18:24:34 +0100649TEST_CASE("NeonArgMinAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000650{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100651 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000652}
653
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000654// Reduce
655TEST_CASE("NeonReduceEndToEndTest")
656{
657 ReduceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
658}
659
660TEST_CASE("NeonReduceEndToEndTestFloat16")
661{
662 ReduceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
663}
664
665// Reshape
666TEST_CASE("NeonReshapeEndToEndTest")
667{
668 ReshapeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
669}
670
671TEST_CASE("NeonReshapeEndToEndTestFloat16")
672{
673 ReshapeEndToEndFloat16<armnn::DataType::Float16>(neonDefaultBackends);
674}
675
Teresa Charlin28658bc2023-12-19 15:49:31 +0000676// Resize Bilinear
677TEST_CASE("NeonResizeBilinearEndToEndFloatNchwTest")
678{
679 ResizeBilinearEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
680}
681
682TEST_CASE("NeonResizeBilinearEndToEndFloatNhwcTest")
683{
684 ResizeBilinearEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
685}
686
687// Resize NearestNeighbor
688TEST_CASE("NeonResizeNearestNeighborEndToEndFloatNchwTest")
689{
690 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
691}
692
693TEST_CASE("NeonResizeNearestNeighborEndToEndFloatNhwcTest")
694{
695 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
696}
697
698TEST_CASE("NeonResizeNearestNeighborEndToEndFloatAlignCornersNhwcTest")
699{
700 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC, true, false);
701}
702
703TEST_CASE("NeonResizeNearestNeighborEndToEndFloatHalfPixelNhwcTest")
704{
705 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC, false, true);
706}
707
Tianle Cheng21a9f332023-11-09 13:56:53 +0000708// ReverseV2
709TEST_CASE("NeonReverseV2EndToEndTest")
710{
711 ReverseV2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
712}
713
Ryan OShea980446b2023-06-08 16:23:28 +0100714// Slice
715TEST_CASE("NeonSliceEndtoEndTestFloat32")
716{
717 SliceEndToEnd<DataType::Float32>(neonDefaultBackends);
718}
719
720TEST_CASE("NeonSliceEndtoEndTestInt32")
721{
722 SliceEndToEnd<DataType::Signed32>(neonDefaultBackends);
723}
724
725TEST_CASE("NeonSliceEndtoEndTestFloat16")
726{
727 SliceEndToEndFloat16<DataType::Float16>(neonDefaultBackends);
728}
729
Sadik Armagan1625efc2021-06-10 18:24:34 +0100730TEST_CASE("NeonStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +0000731{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100732 StridedSliceInvalidSliceEndToEndTest(neonDefaultBackends);
David Monahan0a99a142020-03-13 07:52:54 +0000733}
734
Colm Doneland7ceec52022-07-06 12:09:05 +0100735TEST_CASE("NeonForceImportWithAlignedBuffersEndToEndTest"
736 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
737 // will always fail.
738 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000739{
740 ForceImportWithAlignedBuffersEndToEndTest(neonDefaultBackends);
741}
742
Colm Doneland7ceec52022-07-06 12:09:05 +0100743TEST_CASE("NeonForceImportWithMisalignedInputBuffersEndToEndTest"
744 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
745 // will always fail.
746 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000747{
748 ForceImportWithMisalignedInputBuffersEndToEndTest(neonDefaultBackends);
749}
750
Colm Doneland7ceec52022-07-06 12:09:05 +0100751TEST_CASE("NeonForceImportWithMisalignedOutputBuffersEndToEndTest"
752 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
753 // will always fail.
754 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000755{
756 ForceImportWithMisalignedOutputBuffersEndToEndTest(neonDefaultBackends);
757}
758
759TEST_CASE("NeonForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
760{
761 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(neonDefaultBackends);
762}
763
Sadik Armagan1625efc2021-06-10 18:24:34 +0100764// DISABLED
765//TEST_CASE("NeonDetectionPostProcessRegularNmsTest")
766//{
767// std::vector<float> boxEncodings({
768// 0.0f, 0.0f, 0.0f, 0.0f,
769// 0.0f, 1.0f, 0.0f, 0.0f,
770// 0.0f, -1.0f, 0.0f, 0.0f,
771// 0.0f, 0.0f, 0.0f, 0.0f,
772// 0.0f, 1.0f, 0.0f, 0.0f,
773// 0.0f, 0.0f, 0.0f, 0.0f
774// });
775// std::vector<float> scores({
776// 0.0f, 0.9f, 0.8f,
777// 0.0f, 0.75f, 0.72f,
778// 0.0f, 0.6f, 0.5f,
779// 0.0f, 0.93f, 0.95f,
780// 0.0f, 0.5f, 0.4f,
781// 0.0f, 0.3f, 0.2f
782// });
783// std::vector<float> anchors({
784// 0.5f, 0.5f, 1.0f, 1.0f,
785// 0.5f, 0.5f, 1.0f, 1.0f,
786// 0.5f, 0.5f, 1.0f, 1.0f,
787// 0.5f, 10.5f, 1.0f, 1.0f,
788// 0.5f, 10.5f, 1.0f, 1.0f,
789// 0.5f, 100.5f, 1.0f, 1.0f
790// });
791// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
792// boxEncodings,
793// scores,
794// anchors);
795//}
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000796
797inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
798{
799 for (size_t i = 0; i < info.GetNumElements(); i++)
800 {
801 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
802 }
803}
804
Sadik Armagan1625efc2021-06-10 18:24:34 +0100805// DISABLED
806//TEST_CASE("NeonDetectionPostProcessRegularNmsUint8Test")
807//{
808// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
809// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
810// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
811//
812// boxEncodingsInfo.SetQuantizationScale(1.0f);
813// boxEncodingsInfo.SetQuantizationOffset(1);
814// scoresInfo.SetQuantizationScale(0.01f);
815// scoresInfo.SetQuantizationOffset(0);
816// anchorsInfo.SetQuantizationScale(0.5f);
817// anchorsInfo.SetQuantizationOffset(0);
818//
819// std::vector<float> boxEncodings({
820// 0.0f, 0.0f, 0.0f, 0.0f,
821// 0.0f, 1.0f, 0.0f, 0.0f,
822// 0.0f, -1.0f, 0.0f, 0.0f,
823// 0.0f, 0.0f, 0.0f, 0.0f,
824// 0.0f, 1.0f, 0.0f, 0.0f,
825// 0.0f, 0.0f, 0.0f, 0.0f
826// });
827// std::vector<float> scores({
828// 0.0f, 0.9f, 0.8f,
829// 0.0f, 0.75f, 0.72f,
830// 0.0f, 0.6f, 0.5f,
831// 0.0f, 0.93f, 0.95f,
832// 0.0f, 0.5f, 0.4f,
833// 0.0f, 0.3f, 0.2f
834// });
835// std::vector<float> anchors({
836// 0.5f, 0.5f, 1.0f, 1.0f,
837// 0.5f, 0.5f, 1.0f, 1.0f,
838// 0.5f, 0.5f, 1.0f, 1.0f,
839// 0.5f, 10.5f, 1.0f, 1.0f,
840// 0.5f, 10.5f, 1.0f, 1.0f,
841// 0.5f, 100.5f, 1.0f, 1.0f
842// });
843//
844// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
845// std::vector<uint8_t> qScores(scores.size(), 0);
846// std::vector<uint8_t> qAnchors(anchors.size(), 0);
847// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
848// QuantizeData(qScores.data(), scores.data(), scoresInfo);
849// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
850// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
851// qScores, qAnchors,
852// 1.0f, 1, 0.01f, 0, 0.5f, 0);
853//}
854//
855//TEST_CASE("NeonDetectionPostProcessFastNmsTest")
856//{
857// std::vector<float> boxEncodings({
858// 0.0f, 0.0f, 0.0f, 0.0f,
859// 0.0f, 1.0f, 0.0f, 0.0f,
860// 0.0f, -1.0f, 0.0f, 0.0f,
861// 0.0f, 0.0f, 0.0f, 0.0f,
862// 0.0f, 1.0f, 0.0f, 0.0f,
863// 0.0f, 0.0f, 0.0f, 0.0f
864// });
865// std::vector<float> scores({
866// 0.0f, 0.9f, 0.8f,
867// 0.0f, 0.75f, 0.72f,
868// 0.0f, 0.6f, 0.5f,
869// 0.0f, 0.93f, 0.95f,
870// 0.0f, 0.5f, 0.4f,
871// 0.0f, 0.3f, 0.2f
872// });
873// std::vector<float> anchors({
874// 0.5f, 0.5f, 1.0f, 1.0f,
875// 0.5f, 0.5f, 1.0f, 1.0f,
876// 0.5f, 0.5f, 1.0f, 1.0f,
877// 0.5f, 10.5f, 1.0f, 1.0f,
878// 0.5f, 10.5f, 1.0f, 1.0f,
879// 0.5f, 100.5f, 1.0f, 1.0f
880// });
881// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
882// boxEncodings,
883// scores,
884// anchors);
885//}
886//
887// DISABLED
888//TEST_CASE("NeonDetectionPostProcessFastNmsUint8Test")
889//{
890// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
891// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
892// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
893//
894// boxEncodingsInfo.SetQuantizationScale(1.0f);
895// boxEncodingsInfo.SetQuantizationOffset(1);
896// scoresInfo.SetQuantizationScale(0.01f);
897// scoresInfo.SetQuantizationOffset(0);
898// anchorsInfo.SetQuantizationScale(0.5f);
899// anchorsInfo.SetQuantizationOffset(0);
900//
901// std::vector<float> boxEncodings({
902// 0.0f, 0.0f, 0.0f, 0.0f,
903// 0.0f, 1.0f, 0.0f, 0.0f,
904// 0.0f, -1.0f, 0.0f, 0.0f,
905// 0.0f, 0.0f, 0.0f, 0.0f,
906// 0.0f, 1.0f, 0.0f, 0.0f,
907// 0.0f, 0.0f, 0.0f, 0.0f
908// });
909// std::vector<float> scores({
910// 0.0f, 0.9f, 0.8f,
911// 0.0f, 0.75f, 0.72f,
912// 0.0f, 0.6f, 0.5f,
913// 0.0f, 0.93f, 0.95f,
914// 0.0f, 0.5f, 0.4f,
915// 0.0f, 0.3f, 0.2f
916// });
917// std::vector<float> anchors({
918// 0.5f, 0.5f, 1.0f, 1.0f,
919// 0.5f, 0.5f, 1.0f, 1.0f,
920// 0.5f, 0.5f, 1.0f, 1.0f,
921// 0.5f, 10.5f, 1.0f, 1.0f,
922// 0.5f, 10.5f, 1.0f, 1.0f,
923// 0.5f, 100.5f, 1.0f, 1.0f
924// });
925//
926// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
927// std::vector<uint8_t> qScores(scores.size(), 0);
928// std::vector<uint8_t> qAnchors(anchors.size(), 0);
929// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
930// QuantizeData(qScores.data(), scores.data(), scoresInfo);
931// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
932// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
933// qScores, qAnchors,
934// 1.0f, 1, 0.01f, 0, 0.5f, 0);
935//}
936
937TEST_CASE("NeonQLstmEndToEndTest")
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000938{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100939 QLstmEndToEnd(neonDefaultBackends);
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000940}
941
Mike Kelly4cc341c2023-07-07 15:43:06 +0100942TEST_CASE("NeonReshapeRemovalSimpleCaseEndToEnd")
943{
944 ReshapeRemovalEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
945}
946
947TEST_CASE("NeonReshapeRemovalNCHWFirstEndToEnd")
948{
949 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, false, true);
950}
951
952TEST_CASE("NeonReshapeRemovalNCHWSecondEndToEnd")
953{
954 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, false, false);
955}
956
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000957}