blob: 58c55e5d723baa9bba6a2b61706e6c5d15f9ed90 [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
Tracy Narinee7d27852024-01-26 09:13:19 +00002// Copyright © 2017-2024 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
Tracy Narinee7d27852024-01-26 09:13:19 +0000154TEST_CASE("NeonAdditionEndToEndFloat32Simple3DTest")
155{
156 ElementwiseBinarySimple3DEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Add);
157}
158TEST_CASE("NeonAdditionEndToEndFloat16Simple3DTest")
159{
160 ElementwiseBinarySimple3DEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, BinaryOperation::Add);
161}
162
John Mcloughlin34c1c382023-05-17 15:08:36 +0100163// Power
Mike Kelly4cc341c2023-07-07 15:43:06 +0100164TEST_CASE("NeonPowerEndToEndTestFloat32")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100165{
166 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Power);
167}
168
169// SqDiff
Mike Kelly4cc341c2023-07-07 15:43:06 +0100170TEST_CASE("NeonSquaredDifferenceEndToEndTestFloat32")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100171{
172 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::SqDiff);
173}
174
Mike Kelly4cc341c2023-07-07 15:43:06 +0100175TEST_CASE("NeonSquaredDifferenceEndToEndTestUint8")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100176{
177 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, BinaryOperation::SqDiff);
178}
179
180// Batch Mat Mul
Teresa Charlina38da592022-10-31 22:09:23 +0000181TEST_CASE("NeonBatchMatMulEndToEndFloat32Test")
182{
183 BatchMatMulEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
184}
185
Teresa Charlin1fe6c812022-11-01 15:59:50 +0000186TEST_CASE("NeonBatchMatMulEndToEndInt8Test")
187{
188 BatchMatMulEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
189}
190
John Mcloughlin34c1c382023-05-17 15:08:36 +0100191// Concat
Sadik Armagan1625efc2021-06-10 18:24:34 +0100192TEST_CASE("NeonConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000193{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100194 ConcatDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000195}
196
Sadik Armagan1625efc2021-06-10 18:24:34 +0100197TEST_CASE("NeonConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000198{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100199 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000200}
201
Sadik Armagan1625efc2021-06-10 18:24:34 +0100202TEST_CASE("NeonConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000203{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100204 ConcatDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000205}
206
Sadik Armagan1625efc2021-06-10 18:24:34 +0100207TEST_CASE("NeonConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000208{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100209 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000210}
211
Sadik Armagan1625efc2021-06-10 18:24:34 +0100212TEST_CASE("NeonConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000213{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100214 ConcatDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000215}
216
Sadik Armagan1625efc2021-06-10 18:24:34 +0100217TEST_CASE("NeonConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000218{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100219 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000220}
221
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100222// DepthToSpace
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000223TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100224{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100225 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100226}
227
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000228TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100229{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100230 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100231}
232
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000233TEST_CASE("NeonDephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100234{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100235 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100236}
237
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000238TEST_CASE("NeonDephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100239{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100240 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100241}
242
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000243TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100244{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100245 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100246}
247
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000248TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100249{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100250 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100251}
252
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000253TEST_CASE("NeonDephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100254{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100255 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100256}
257
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000258TEST_CASE("NeonDephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100259{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100260 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100261}
262
263// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100264TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100265{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100266 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100267}
268
Sadik Armagan1625efc2021-06-10 18:24:34 +0100269TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100270{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100271 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100272}
273
Sadik Armagan1625efc2021-06-10 18:24:34 +0100274TEST_CASE("NeonEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000275{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100276 EluEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000277}
278
Sadik Armagan1625efc2021-06-10 18:24:34 +0100279TEST_CASE("NeonEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000280{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100281 EluEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersbca73e12020-03-11 12:52:46 +0000282}
283
Jan Eilersa83af7b2020-03-18 15:58:11 +0000284// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100285TEST_CASE("NeonHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000286{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100287 HardSwishEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000288}
289
Sadik Armagan1625efc2021-06-10 18:24:34 +0100290TEST_CASE("NeonHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000291{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100292 HardSwishEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000293}
294
Sadik Armagan1625efc2021-06-10 18:24:34 +0100295TEST_CASE("NeonHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000296{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100297 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000298}
299
Sadik Armagan1625efc2021-06-10 18:24:34 +0100300TEST_CASE("NeonHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000301{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100302 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000303}
304
Sadik Armagan1625efc2021-06-10 18:24:34 +0100305TEST_CASE("NeonPreluEndToEndFloat32Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100306{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100307 PreluEndToEndNegativeTest<armnn::DataType::Float32>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100308}
309
Sadik Armagan1625efc2021-06-10 18:24:34 +0100310TEST_CASE("NeonPreluEndToEndTestUint8Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100311{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100312 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100313}
314
Sadik Armagan1625efc2021-06-10 18:24:34 +0100315TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100316{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100317 SpaceToDepthNhwcEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100318}
319
Sadik Armagan1625efc2021-06-10 18:24:34 +0100320TEST_CASE("NeonSpaceToDepthNchwEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100321{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100322 SpaceToDepthNchwEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100323}
324
Sadik Armagan1625efc2021-06-10 18:24:34 +0100325TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100326{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100327 SpaceToDepthNhwcEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100328}
329
Sadik Armagan1625efc2021-06-10 18:24:34 +0100330TEST_CASE("NeonSpaceToDepthNchwEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100331{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100332 SpaceToDepthNchwEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100333}
334
Sadik Armagan1625efc2021-06-10 18:24:34 +0100335TEST_CASE("NeonSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100336{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100337 Splitter1dEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100338}
339
Sadik Armagan1625efc2021-06-10 18:24:34 +0100340TEST_CASE("NeonSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100341{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100342 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100343}
344
Sadik Armagan1625efc2021-06-10 18:24:34 +0100345TEST_CASE("NeonSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100346{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100347 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100348}
349
Sadik Armagan1625efc2021-06-10 18:24:34 +0100350TEST_CASE("NeonSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100351{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100352 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100353}
354
Sadik Armagan1625efc2021-06-10 18:24:34 +0100355TEST_CASE("NeonSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100356{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100357 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100358}
359
Sadik Armagan1625efc2021-06-10 18:24:34 +0100360TEST_CASE("NeonSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100361{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100362 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100363}
364
Sadik Armagan1625efc2021-06-10 18:24:34 +0100365TEST_CASE("NeonSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100366{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100367 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100368}
369
Sadik Armagan1625efc2021-06-10 18:24:34 +0100370TEST_CASE("NeonSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100371{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100372 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100373}
374
Sadik Armagan1625efc2021-06-10 18:24:34 +0100375TEST_CASE("NeonSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100376{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100377 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100378}
379
Sadik Armagan1625efc2021-06-10 18:24:34 +0100380TEST_CASE("NeonSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100381{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100382 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100383}
384
Sadik Armagan1625efc2021-06-10 18:24:34 +0100385TEST_CASE("NeonSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100386{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100387 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100388}
389
Sadik Armagan1625efc2021-06-10 18:24:34 +0100390TEST_CASE("NeonSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100391{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100392 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100393}
394
Sadik Armagan1625efc2021-06-10 18:24:34 +0100395TEST_CASE("NeonSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100396{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100397 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100398}
399
Sadik Armagan1625efc2021-06-10 18:24:34 +0100400TEST_CASE("NeonSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100401{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100402 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100403}
404
Sadik Armagan1625efc2021-06-10 18:24:34 +0100405TEST_CASE("NeonSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100406{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100407 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100408}
409
Sadik Armagan1625efc2021-06-10 18:24:34 +0100410TEST_CASE("NeonSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100411{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100412 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100413}
414
Sadik Armagan1625efc2021-06-10 18:24:34 +0100415TEST_CASE("NeonSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100416{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100417 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100418}
419
Sadik Armagan1625efc2021-06-10 18:24:34 +0100420TEST_CASE("NeonSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100421{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100422 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100423}
424
Sadik Armagan1625efc2021-06-10 18:24:34 +0100425TEST_CASE("NeonSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100426{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100427 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100428}
429
Sadik Armagan1625efc2021-06-10 18:24:34 +0100430TEST_CASE("NeonSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100431{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100432 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100433}
434
David Monahan36e6eae2023-07-26 18:37:45 +0100435// Tile
436TEST_CASE("NeonTileEndToEndFloat32")
437{
438 TileEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
439}
440TEST_CASE("NeonTileEndToEndFloat16")
441{
442 TileEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
443}
444TEST_CASE("NeonTileEndToEndQAsymmS8")
445{
446 TileEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
447}
448TEST_CASE("NeonTileEndToEndQAsymmU8")
449{
450 TileEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
451}
452TEST_CASE("NeonTileEndToEndQSymmS8")
453{
454 TileEndToEnd<armnn::DataType::QSymmS8>(neonDefaultBackends);
455}
456TEST_CASE("NeonTileEndToEndQSymmS16")
457{
458 TileEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends);
459}
460TEST_CASE("NeonTileEndToEndSigned32")
461{
462 TileEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
463}
464
Sadik Armagan1625efc2021-06-10 18:24:34 +0100465TEST_CASE("NeonQuantizedLstmEndToEndTest")
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100466{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100467 QuantizedLstmEndToEnd(neonDefaultBackends);
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100468}
469
Sadik Armagan1625efc2021-06-10 18:24:34 +0100470TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100471{
472 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100473 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100474}
475
Sadik Armagan1625efc2021-06-10 18:24:34 +0100476TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100477{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000478 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100479 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100480}
481
Sadik Armagan1625efc2021-06-10 18:24:34 +0100482TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100483{
484 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100485 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100486}
487
Sadik Armagan1625efc2021-06-10 18:24:34 +0100488TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100489{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000490 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100491 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100492}
493
Teresa Charlin6bc85252022-12-06 20:43:06 +0000494// Transpose
495TEST_CASE("NeonTransposeEndToEndTest")
496{
497 TransposeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
498}
499
Sadik Armagan1625efc2021-06-10 18:24:34 +0100500TEST_CASE("NeonImportNonAlignedInputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100501{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100502 ImportNonAlignedInputPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100503}
504
Sadik Armagan1625efc2021-06-10 18:24:34 +0100505TEST_CASE("NeonExportNonAlignedOutputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100506{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100507 ExportNonAlignedOutputPointerTest(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100508}
509
Sadik Armagan1625efc2021-06-10 18:24:34 +0100510TEST_CASE("NeonImportAlignedPointerTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100511{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100512 ImportAlignedPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100513}
514
Sadik Armagan1625efc2021-06-10 18:24:34 +0100515TEST_CASE("NeonImportOnlyWorkload")
David Monahan3fb7e102019-08-20 11:25:29 +0100516{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100517 ImportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100518}
David Monahan3fb7e102019-08-20 11:25:29 +0100519
Sadik Armagan1625efc2021-06-10 18:24:34 +0100520TEST_CASE("NeonExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100521{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100522 ExportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100523}
David Monahan3fb7e102019-08-20 11:25:29 +0100524
Sadik Armagan1625efc2021-06-10 18:24:34 +0100525TEST_CASE("NeonImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100526{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100527 ImportAndExportWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100528}
David Monahan3fb7e102019-08-20 11:25:29 +0100529
Sadik Armagan1625efc2021-06-10 18:24:34 +0100530TEST_CASE("NeonExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100531{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100532 ExportOutputWithSeveralOutputSlotConnectionsTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100533}
534
Sadik Armagan062e0e92019-10-14 10:31:43 +0100535// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +0100536TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100537{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100538 InstanceNormalizationNchwEndToEndTest1(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100539}
540
Sadik Armagan1625efc2021-06-10 18:24:34 +0100541TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100542{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100543 InstanceNormalizationNchwEndToEndTest2(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100544}
545
Teresa Charlin44088502020-07-27 11:27:19 +0100546// Fill
Sadik Armagan1625efc2021-06-10 18:24:34 +0100547TEST_CASE("NeonFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100548{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100549 FillEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100550}
551
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000552TEST_CASE("NeonFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100553{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100554 FillEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100555}
556
Sadik Armagan1625efc2021-06-10 18:24:34 +0100557TEST_CASE("NeonFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100558{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100559 FillEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100560}
561
James Conroy68a4dbc2019-11-13 15:35:59 +0000562// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +0100563TEST_CASE("NeonArgMaxSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000564{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100565 ArgMaxEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000566}
567
Sadik Armagan1625efc2021-06-10 18:24:34 +0100568TEST_CASE("NeonArgMinSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000569{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100570 ArgMinEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000571}
572
Sadik Armagan1625efc2021-06-10 18:24:34 +0100573TEST_CASE("NeonArgMaxAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000574{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100575 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000576}
577
Sadik Armagan1625efc2021-06-10 18:24:34 +0100578TEST_CASE("NeonArgMinAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000579{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100580 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000581}
582
Sadik Armagan1625efc2021-06-10 18:24:34 +0100583TEST_CASE("NeonArgMaxAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000584{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100585 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000586}
587
Sadik Armagan1625efc2021-06-10 18:24:34 +0100588TEST_CASE("NeonArgMinAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000589{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100590 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000591}
592
Sadik Armagan1625efc2021-06-10 18:24:34 +0100593TEST_CASE("NeonArgMaxAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000594{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100595 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000596}
597
Sadik Armagan1625efc2021-06-10 18:24:34 +0100598TEST_CASE("NeonArgMinAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000599{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100600 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000601}
602
Sadik Armagan1625efc2021-06-10 18:24:34 +0100603TEST_CASE("NeonArgMaxAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000604{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100605 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000606}
607
Sadik Armagan1625efc2021-06-10 18:24:34 +0100608TEST_CASE("NeonArgMinAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000609{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100610 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000611}
612
Sadik Armagan1625efc2021-06-10 18:24:34 +0100613TEST_CASE("NeonArgMaxSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000614{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100615 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000616}
617
Sadik Armagan1625efc2021-06-10 18:24:34 +0100618TEST_CASE("NeonArgMinSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000619{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100620 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000621}
622
Sadik Armagan1625efc2021-06-10 18:24:34 +0100623TEST_CASE("NeonArgMaxAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000624{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100625 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000626}
627
Sadik Armagan1625efc2021-06-10 18:24:34 +0100628TEST_CASE("NeonArgMinAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000629{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100630 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000631}
632
Sadik Armagan1625efc2021-06-10 18:24:34 +0100633TEST_CASE("NeonArgMaxAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000634{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100635 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000636}
637
Sadik Armagan1625efc2021-06-10 18:24:34 +0100638TEST_CASE("NeonArgMinAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000639{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100640 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000641}
642
Sadik Armagan1625efc2021-06-10 18:24:34 +0100643TEST_CASE("NeonArgMaxAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000644{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100645 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000646}
647
Sadik Armagan1625efc2021-06-10 18:24:34 +0100648TEST_CASE("NeonArgMinAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000649{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100650 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000651}
652
Sadik Armagan1625efc2021-06-10 18:24:34 +0100653TEST_CASE("NeonArgMaxAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000654{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100655 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000656}
657
Sadik Armagan1625efc2021-06-10 18:24:34 +0100658TEST_CASE("NeonArgMinAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000659{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100660 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000661}
662
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000663// Reduce
664TEST_CASE("NeonReduceEndToEndTest")
665{
666 ReduceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
667}
668
669TEST_CASE("NeonReduceEndToEndTestFloat16")
670{
671 ReduceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
672}
673
674// Reshape
675TEST_CASE("NeonReshapeEndToEndTest")
676{
677 ReshapeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
678}
679
680TEST_CASE("NeonReshapeEndToEndTestFloat16")
681{
682 ReshapeEndToEndFloat16<armnn::DataType::Float16>(neonDefaultBackends);
683}
684
Teresa Charlin28658bc2023-12-19 15:49:31 +0000685// Resize Bilinear
686TEST_CASE("NeonResizeBilinearEndToEndFloatNchwTest")
687{
688 ResizeBilinearEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
689}
690
691TEST_CASE("NeonResizeBilinearEndToEndFloatNhwcTest")
692{
693 ResizeBilinearEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
694}
695
696// Resize NearestNeighbor
697TEST_CASE("NeonResizeNearestNeighborEndToEndFloatNchwTest")
698{
699 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
700}
701
702TEST_CASE("NeonResizeNearestNeighborEndToEndFloatNhwcTest")
703{
704 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
705}
706
707TEST_CASE("NeonResizeNearestNeighborEndToEndFloatAlignCornersNhwcTest")
708{
709 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC, true, false);
710}
711
712TEST_CASE("NeonResizeNearestNeighborEndToEndFloatHalfPixelNhwcTest")
713{
714 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC, false, true);
715}
716
Tianle Cheng21a9f332023-11-09 13:56:53 +0000717// ReverseV2
718TEST_CASE("NeonReverseV2EndToEndTest")
719{
720 ReverseV2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
721}
722
Ryan OShea980446b2023-06-08 16:23:28 +0100723// Slice
724TEST_CASE("NeonSliceEndtoEndTestFloat32")
725{
726 SliceEndToEnd<DataType::Float32>(neonDefaultBackends);
727}
728
729TEST_CASE("NeonSliceEndtoEndTestInt32")
730{
731 SliceEndToEnd<DataType::Signed32>(neonDefaultBackends);
732}
733
734TEST_CASE("NeonSliceEndtoEndTestFloat16")
735{
736 SliceEndToEndFloat16<DataType::Float16>(neonDefaultBackends);
737}
738
Sadik Armagan1625efc2021-06-10 18:24:34 +0100739TEST_CASE("NeonStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +0000740{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100741 StridedSliceInvalidSliceEndToEndTest(neonDefaultBackends);
David Monahan0a99a142020-03-13 07:52:54 +0000742}
743
Colm Doneland7ceec52022-07-06 12:09:05 +0100744TEST_CASE("NeonForceImportWithAlignedBuffersEndToEndTest"
745 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
746 // will always fail.
747 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000748{
749 ForceImportWithAlignedBuffersEndToEndTest(neonDefaultBackends);
750}
751
Colm Doneland7ceec52022-07-06 12:09:05 +0100752TEST_CASE("NeonForceImportWithMisalignedInputBuffersEndToEndTest"
753 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
754 // will always fail.
755 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000756{
757 ForceImportWithMisalignedInputBuffersEndToEndTest(neonDefaultBackends);
758}
759
Colm Doneland7ceec52022-07-06 12:09:05 +0100760TEST_CASE("NeonForceImportWithMisalignedOutputBuffersEndToEndTest"
761 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
762 // will always fail.
763 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000764{
765 ForceImportWithMisalignedOutputBuffersEndToEndTest(neonDefaultBackends);
766}
767
768TEST_CASE("NeonForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
769{
770 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(neonDefaultBackends);
771}
772
Sadik Armagan1625efc2021-06-10 18:24:34 +0100773// DISABLED
774//TEST_CASE("NeonDetectionPostProcessRegularNmsTest")
775//{
776// std::vector<float> boxEncodings({
777// 0.0f, 0.0f, 0.0f, 0.0f,
778// 0.0f, 1.0f, 0.0f, 0.0f,
779// 0.0f, -1.0f, 0.0f, 0.0f,
780// 0.0f, 0.0f, 0.0f, 0.0f,
781// 0.0f, 1.0f, 0.0f, 0.0f,
782// 0.0f, 0.0f, 0.0f, 0.0f
783// });
784// std::vector<float> scores({
785// 0.0f, 0.9f, 0.8f,
786// 0.0f, 0.75f, 0.72f,
787// 0.0f, 0.6f, 0.5f,
788// 0.0f, 0.93f, 0.95f,
789// 0.0f, 0.5f, 0.4f,
790// 0.0f, 0.3f, 0.2f
791// });
792// std::vector<float> anchors({
793// 0.5f, 0.5f, 1.0f, 1.0f,
794// 0.5f, 0.5f, 1.0f, 1.0f,
795// 0.5f, 0.5f, 1.0f, 1.0f,
796// 0.5f, 10.5f, 1.0f, 1.0f,
797// 0.5f, 10.5f, 1.0f, 1.0f,
798// 0.5f, 100.5f, 1.0f, 1.0f
799// });
800// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
801// boxEncodings,
802// scores,
803// anchors);
804//}
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000805
806inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
807{
808 for (size_t i = 0; i < info.GetNumElements(); i++)
809 {
810 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
811 }
812}
813
Sadik Armagan1625efc2021-06-10 18:24:34 +0100814// DISABLED
815//TEST_CASE("NeonDetectionPostProcessRegularNmsUint8Test")
816//{
817// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
818// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
819// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
820//
821// boxEncodingsInfo.SetQuantizationScale(1.0f);
822// boxEncodingsInfo.SetQuantizationOffset(1);
823// scoresInfo.SetQuantizationScale(0.01f);
824// scoresInfo.SetQuantizationOffset(0);
825// anchorsInfo.SetQuantizationScale(0.5f);
826// anchorsInfo.SetQuantizationOffset(0);
827//
828// std::vector<float> boxEncodings({
829// 0.0f, 0.0f, 0.0f, 0.0f,
830// 0.0f, 1.0f, 0.0f, 0.0f,
831// 0.0f, -1.0f, 0.0f, 0.0f,
832// 0.0f, 0.0f, 0.0f, 0.0f,
833// 0.0f, 1.0f, 0.0f, 0.0f,
834// 0.0f, 0.0f, 0.0f, 0.0f
835// });
836// std::vector<float> scores({
837// 0.0f, 0.9f, 0.8f,
838// 0.0f, 0.75f, 0.72f,
839// 0.0f, 0.6f, 0.5f,
840// 0.0f, 0.93f, 0.95f,
841// 0.0f, 0.5f, 0.4f,
842// 0.0f, 0.3f, 0.2f
843// });
844// std::vector<float> anchors({
845// 0.5f, 0.5f, 1.0f, 1.0f,
846// 0.5f, 0.5f, 1.0f, 1.0f,
847// 0.5f, 0.5f, 1.0f, 1.0f,
848// 0.5f, 10.5f, 1.0f, 1.0f,
849// 0.5f, 10.5f, 1.0f, 1.0f,
850// 0.5f, 100.5f, 1.0f, 1.0f
851// });
852//
853// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
854// std::vector<uint8_t> qScores(scores.size(), 0);
855// std::vector<uint8_t> qAnchors(anchors.size(), 0);
856// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
857// QuantizeData(qScores.data(), scores.data(), scoresInfo);
858// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
859// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
860// qScores, qAnchors,
861// 1.0f, 1, 0.01f, 0, 0.5f, 0);
862//}
863//
864//TEST_CASE("NeonDetectionPostProcessFastNmsTest")
865//{
866// std::vector<float> boxEncodings({
867// 0.0f, 0.0f, 0.0f, 0.0f,
868// 0.0f, 1.0f, 0.0f, 0.0f,
869// 0.0f, -1.0f, 0.0f, 0.0f,
870// 0.0f, 0.0f, 0.0f, 0.0f,
871// 0.0f, 1.0f, 0.0f, 0.0f,
872// 0.0f, 0.0f, 0.0f, 0.0f
873// });
874// std::vector<float> scores({
875// 0.0f, 0.9f, 0.8f,
876// 0.0f, 0.75f, 0.72f,
877// 0.0f, 0.6f, 0.5f,
878// 0.0f, 0.93f, 0.95f,
879// 0.0f, 0.5f, 0.4f,
880// 0.0f, 0.3f, 0.2f
881// });
882// std::vector<float> anchors({
883// 0.5f, 0.5f, 1.0f, 1.0f,
884// 0.5f, 0.5f, 1.0f, 1.0f,
885// 0.5f, 0.5f, 1.0f, 1.0f,
886// 0.5f, 10.5f, 1.0f, 1.0f,
887// 0.5f, 10.5f, 1.0f, 1.0f,
888// 0.5f, 100.5f, 1.0f, 1.0f
889// });
890// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
891// boxEncodings,
892// scores,
893// anchors);
894//}
895//
896// DISABLED
897//TEST_CASE("NeonDetectionPostProcessFastNmsUint8Test")
898//{
899// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
900// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
901// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
902//
903// boxEncodingsInfo.SetQuantizationScale(1.0f);
904// boxEncodingsInfo.SetQuantizationOffset(1);
905// scoresInfo.SetQuantizationScale(0.01f);
906// scoresInfo.SetQuantizationOffset(0);
907// anchorsInfo.SetQuantizationScale(0.5f);
908// anchorsInfo.SetQuantizationOffset(0);
909//
910// std::vector<float> boxEncodings({
911// 0.0f, 0.0f, 0.0f, 0.0f,
912// 0.0f, 1.0f, 0.0f, 0.0f,
913// 0.0f, -1.0f, 0.0f, 0.0f,
914// 0.0f, 0.0f, 0.0f, 0.0f,
915// 0.0f, 1.0f, 0.0f, 0.0f,
916// 0.0f, 0.0f, 0.0f, 0.0f
917// });
918// std::vector<float> scores({
919// 0.0f, 0.9f, 0.8f,
920// 0.0f, 0.75f, 0.72f,
921// 0.0f, 0.6f, 0.5f,
922// 0.0f, 0.93f, 0.95f,
923// 0.0f, 0.5f, 0.4f,
924// 0.0f, 0.3f, 0.2f
925// });
926// std::vector<float> anchors({
927// 0.5f, 0.5f, 1.0f, 1.0f,
928// 0.5f, 0.5f, 1.0f, 1.0f,
929// 0.5f, 0.5f, 1.0f, 1.0f,
930// 0.5f, 10.5f, 1.0f, 1.0f,
931// 0.5f, 10.5f, 1.0f, 1.0f,
932// 0.5f, 100.5f, 1.0f, 1.0f
933// });
934//
935// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
936// std::vector<uint8_t> qScores(scores.size(), 0);
937// std::vector<uint8_t> qAnchors(anchors.size(), 0);
938// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
939// QuantizeData(qScores.data(), scores.data(), scoresInfo);
940// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
941// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
942// qScores, qAnchors,
943// 1.0f, 1, 0.01f, 0, 0.5f, 0);
944//}
945
946TEST_CASE("NeonQLstmEndToEndTest")
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000947{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100948 QLstmEndToEnd(neonDefaultBackends);
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000949}
950
Mike Kelly4cc341c2023-07-07 15:43:06 +0100951TEST_CASE("NeonReshapeRemovalSimpleCaseEndToEnd")
952{
953 ReshapeRemovalEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
954}
955
956TEST_CASE("NeonReshapeRemovalNCHWFirstEndToEnd")
957{
958 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, false, true);
959}
960
961TEST_CASE("NeonReshapeRemovalNCHWSecondEndToEnd")
962{
963 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, false, false);
964}
965
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000966}