blob: 6634ac667305a1ea4fb56f2c5c0cabaea9a09fca [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>
Teresa Charlina52bca22024-02-01 17:36:48 +000021#include "backendsCommon/test/Pooling2dEndToEndTestImpl.hpp"
Nikhil Raj1c8adac2019-07-22 11:27:29 +010022#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010023#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Francis Murtaghb3fc2522019-08-09 13:20:50 +010024#include <backendsCommon/test/QuantizedLstmEndToEndTestImpl.hpp>
Teresa Charlinc17a35f2023-01-12 14:13:09 +000025#include <backendsCommon/test/ReduceEndToEndTestImpl.hpp>
26#include <backendsCommon/test/ReshapeEndToEndTestImpl.hpp>
Teresa Charlin28658bc2023-12-19 15:49:31 +000027#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Tianle Cheng21a9f332023-11-09 13:56:53 +000028#include <backendsCommon/test/ReverseV2EndToEndTestImpl.hpp>
Ryan OShea980446b2023-06-08 16:23:28 +010029#include <backendsCommon/test/SliceEndToEndTestImpl.hpp>
Ellen Norris-Thompson29794572019-06-26 16:40:36 +010030#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010031#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly4cc341c2023-07-07 15:43:06 +010032#include <backendsCommon/test/SubgraphUtilsTest.hpp>
David Monahan36e6eae2023-07-26 18:37:45 +010033#include <backendsCommon/test/TileEndToEndTestImpl.hpp>
Sadik Armagan581742d2019-08-12 14:11:37 +010034#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Teresa Charlin6bc85252022-12-06 20:43:06 +000035#include <backendsCommon/test/TransposeEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010036
Sadik Armagan1625efc2021-06-10 18:24:34 +010037#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010038
Sadik Armagan1625efc2021-06-10 18:24:34 +010039TEST_SUITE("NeonEndToEnd")
40{
41std::vector<armnn::BackendId> neonDefaultBackends = {armnn::Compute::CpuAcc};
narpra01b9546cf2018-11-20 15:21:28 +000042
David Monahand7fca092023-01-12 14:53:34 +000043// ElementwiseUnary
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010044// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010045TEST_CASE("NeonAbsEndToEndTestFloat32")
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010046{
Sadik Armagan1625efc2021-06-10 18:24:34 +010047 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000048 UnaryOperation::Abs);
49}
50// Rsqrt
51TEST_CASE("NeonRsqrtEndToEndTestFloat32")
52{
53 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
54 UnaryOperation::Rsqrt);
Aron Virginas-Tar914e4db2019-09-09 13:36:45 +010055}
56
57// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010058TEST_CASE("ConstantUsage_Neon_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010059{
Sadik Armagan1625efc2021-06-10 18:24:34 +010060 CHECK(ConstantUsageFloat32Test(neonDefaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010061}
62
Matteo Martincighdb16dd32019-08-27 16:41:11 +010063#if defined(ARMNNREF_ENABLED)
Matteo Martincighe67edb22019-08-14 14:05:46 +010064
65// This test unit needs the reference backend, it's not available if the reference backend is not built
66
Sadik Armagan1625efc2021-06-10 18:24:34 +010067TEST_CASE("FallbackToCpuRef")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010068{
69 using namespace armnn;
70
71 // Create runtime in which test will run and allow fallback to CpuRef.
72 IRuntime::CreationOptions options;
73 IRuntimePtr runtime(IRuntime::Create(options));
74
75 // Builds up the structure of the network.
76 INetworkPtr net(INetwork::Create());
77
78 IConnectableLayer* input = net->AddInputLayer(0);
79
80 // This layer configuration isn't supported by CpuAcc but we allow fallback to CpuRef so it shoud pass.
81 NormalizationDescriptor descriptor;
82 IConnectableLayer* pooling = net->AddNormalizationLayer(descriptor);
83
84 IConnectableLayer* output = net->AddOutputLayer(0);
85
86 input->GetOutputSlot(0).Connect(pooling->GetInputSlot(0));
87 pooling->GetOutputSlot(0).Connect(output->GetInputSlot(0));
88
89 input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
90 pooling->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
91
92 // optimize the network
93 std::vector<BackendId> backends = {Compute::CpuAcc, Compute::CpuRef};
94 IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
95
96 // Load it into the runtime. It should pass.
97 NetworkId netId;
Sadik Armagan1625efc2021-06-10 18:24:34 +010098 CHECK(runtime->LoadNetwork(netId, std::move(optNet)) == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +010099}
100
Matteo Martincighe67edb22019-08-14 14:05:46 +0100101#endif
102
Sadik Armagan1625efc2021-06-10 18:24:34 +0100103TEST_CASE("NeonGreaterSimpleEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +0000104{
105 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
106 0, 0, 0, 0, 0, 0, 0, 0 });
107
Sadik Armagan1625efc2021-06-10 18:24:34 +0100108 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100109 ComparisonOperation::Greater,
110 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000111}
112
Sadik Armagan1625efc2021-06-10 18:24:34 +0100113TEST_CASE("NeonGreaterSimpleEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000114{
115 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
116 0, 0, 0, 0, 0, 0, 0, 0 });
117
Sadik Armagan1625efc2021-06-10 18:24:34 +0100118 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100119 ComparisonOperation::Greater,
120 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000121}
122
Sadik Armagan1625efc2021-06-10 18:24:34 +0100123TEST_CASE("NeonGreaterBroadcastEndToEndTest")
kevmay01eed85922019-01-28 08:37:25 +0000124{
125 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
126 1, 1, 1, 1, 1, 1 });
127
Sadik Armagan1625efc2021-06-10 18:24:34 +0100128 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100129 ComparisonOperation::Greater,
130 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000131}
132
Sadik Armagan1625efc2021-06-10 18:24:34 +0100133TEST_CASE("NeonGreaterBroadcastEndToEndUint8Test")
kevmay01eed85922019-01-28 08:37:25 +0000134{
135 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
136 1, 1, 1, 1, 1, 1 });
137
Sadik Armagan1625efc2021-06-10 18:24:34 +0100138 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100139 ComparisonOperation::Greater,
140 expectedOutput);
kevmay01eed85922019-01-28 08:37:25 +0000141}
142
John Mcloughlin34c1c382023-05-17 15:08:36 +0100143// ElementwiseBinary
144// Add
Ryan OShea3c2795a2022-11-03 17:51:52 +0000145TEST_CASE("NeonAdditionEndToEndFloat32Test")
146{
147 AdditionEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
148}
149
150TEST_CASE("NeonAdditionEndToEndUint8Test")
151{
152 AdditionEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
153}
154
Tracy Narinee7d27852024-01-26 09:13:19 +0000155TEST_CASE("NeonAdditionEndToEndFloat32Simple3DTest")
156{
157 ElementwiseBinarySimple3DEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Add);
158}
159TEST_CASE("NeonAdditionEndToEndFloat16Simple3DTest")
160{
161 ElementwiseBinarySimple3DEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, BinaryOperation::Add);
162}
163
Teresa Charlina4b60902024-02-07 20:55:53 +0000164// Div
165TEST_CASE("NeonDivEndToEndTestFloat32")
166{
167 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Div);
168}
169
170// Mul
171TEST_CASE("NeonMulEndToEndTestFloat32")
172{
173 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Mul);
174}
175TEST_CASE("NeonMulEndToEndTestUint8")
176{
177 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, BinaryOperation::Mul);
178}
179
180// Sub
181TEST_CASE("NeonSubtractionEndToEndFloat32Simple3DTest")
182{
183 ElementwiseBinarySimple3DEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Sub);
184}
185TEST_CASE("NeonSubtractionEndToEndFloat16Simple3DTest")
186{
187 ElementwiseBinarySimple3DEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, BinaryOperation::Sub);
188}
189
John Mcloughlin34c1c382023-05-17 15:08:36 +0100190// Power
Mike Kelly4cc341c2023-07-07 15:43:06 +0100191TEST_CASE("NeonPowerEndToEndTestFloat32")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100192{
193 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::Power);
194}
195
196// SqDiff
Mike Kelly4cc341c2023-07-07 15:43:06 +0100197TEST_CASE("NeonSquaredDifferenceEndToEndTestFloat32")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100198{
199 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, BinaryOperation::SqDiff);
200}
201
Mike Kelly4cc341c2023-07-07 15:43:06 +0100202TEST_CASE("NeonSquaredDifferenceEndToEndTestUint8")
John Mcloughlin34c1c382023-05-17 15:08:36 +0100203{
204 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, BinaryOperation::SqDiff);
205}
206
207// Batch Mat Mul
Teresa Charlina38da592022-10-31 22:09:23 +0000208TEST_CASE("NeonBatchMatMulEndToEndFloat32Test")
209{
210 BatchMatMulEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
211}
212
Teresa Charlin1fe6c812022-11-01 15:59:50 +0000213TEST_CASE("NeonBatchMatMulEndToEndInt8Test")
214{
215 BatchMatMulEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
216}
217
John Mcloughlin34c1c382023-05-17 15:08:36 +0100218// Concat
Sadik Armagan1625efc2021-06-10 18:24:34 +0100219TEST_CASE("NeonConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000220{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100221 ConcatDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000222}
223
Sadik Armagan1625efc2021-06-10 18:24:34 +0100224TEST_CASE("NeonConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000225{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100226 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000227}
228
Sadik Armagan1625efc2021-06-10 18:24:34 +0100229TEST_CASE("NeonConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000230{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100231 ConcatDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000232}
233
Sadik Armagan1625efc2021-06-10 18:24:34 +0100234TEST_CASE("NeonConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000235{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100236 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000237}
238
Sadik Armagan1625efc2021-06-10 18:24:34 +0100239TEST_CASE("NeonConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000240{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100241 ConcatDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000242}
243
Sadik Armagan1625efc2021-06-10 18:24:34 +0100244TEST_CASE("NeonConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000245{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100246 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000247}
248
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100249// DepthToSpace
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000250TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100251{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100252 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100253}
254
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000255TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100256{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100257 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100258}
259
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000260TEST_CASE("NeonDephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100261{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100262 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100263}
264
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000265TEST_CASE("NeonDephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100266{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100267 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100268}
269
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000270TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100271{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100272 DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100273}
274
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000275TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100276{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100277 DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100278}
279
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000280TEST_CASE("NeonDephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100281{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100282 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100283}
284
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000285TEST_CASE("NeonDephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100286{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100287 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100288}
289
290// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100291TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100292{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100293 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100294}
295
Sadik Armagan1625efc2021-06-10 18:24:34 +0100296TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100297{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100298 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100299}
300
Teresa Charlina4b60902024-02-07 20:55:53 +0000301// Activations
302// Linear
303TEST_CASE("NeonLinearEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000304{
Teresa Charlina4b60902024-02-07 20:55:53 +0000305 ActivationEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends, ActivationFunction::Linear);
Jan Eilersbca73e12020-03-11 12:52:46 +0000306}
307
Teresa Charlina4b60902024-02-07 20:55:53 +0000308// Sigmoid
309TEST_CASE("NeonSigmoidEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000310{
Teresa Charlina4b60902024-02-07 20:55:53 +0000311 ActivationEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends, ActivationFunction::Sigmoid);
312}
313
314// ReLu
315TEST_CASE("NeonReLuEndToEndTestFloat32")
316{
317 ActivationEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends, ActivationFunction::ReLu);
318}
319
320// BoundedReLu
321TEST_CASE("NeonBoundedReLuEndToEndTestFloat32")
322{
323 ActivationEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends, ActivationFunction::BoundedReLu);
324}
325
326// LeakyRelu
327TEST_CASE("NeonLeakyReluActivationFloat32")
328{
329 ActivationEndToEndTest<DataType::Float32>(neonDefaultBackends, ActivationFunction::LeakyReLu, 1.f, 0, 0.01f);
330}
331
332// Elu
333TEST_CASE("NeonEluEndToEndTestFloat32")
334{
335 ActivationEndToEndTest<DataType::Float32>(neonDefaultBackends, ActivationFunction::Elu);
Jan Eilersbca73e12020-03-11 12:52:46 +0000336}
337
Jan Eilersa83af7b2020-03-18 15:58:11 +0000338// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100339TEST_CASE("NeonHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000340{
Teresa Charlina4b60902024-02-07 20:55:53 +0000341 ActivationEndToEndTest<DataType::Float32>(neonDefaultBackends, ActivationFunction::HardSwish);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000342}
343
Teresa Charlina4b60902024-02-07 20:55:53 +0000344// TanH
345TEST_CASE("NeonTanHEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000346{
Teresa Charlina4b60902024-02-07 20:55:53 +0000347 ActivationEndToEndTest<DataType::Float32>(neonDefaultBackends, ActivationFunction::TanH, 1.f, 0, 2, 3);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000348}
349
Teresa Charlina4b60902024-02-07 20:55:53 +0000350// Prelu
Sadik Armagan1625efc2021-06-10 18:24:34 +0100351TEST_CASE("NeonPreluEndToEndFloat32Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100352{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100353 PreluEndToEndNegativeTest<armnn::DataType::Float32>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100354}
355
Sadik Armagan1625efc2021-06-10 18:24:34 +0100356TEST_CASE("NeonPreluEndToEndTestUint8Test")
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100357{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100358 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Nikhil Raj1c8adac2019-07-22 11:27:29 +0100359}
360
Teresa Charlina4b60902024-02-07 20:55:53 +0000361// SpaceToDepth
Sadik Armagan1625efc2021-06-10 18:24:34 +0100362TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100363{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100364 SpaceToDepthNhwcEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100365}
366
Sadik Armagan1625efc2021-06-10 18:24:34 +0100367TEST_CASE("NeonSpaceToDepthNchwEndToEndTest1")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100368{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100369 SpaceToDepthNchwEndToEndTest1(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100370}
371
Sadik Armagan1625efc2021-06-10 18:24:34 +0100372TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100373{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100374 SpaceToDepthNhwcEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100375}
376
Sadik Armagan1625efc2021-06-10 18:24:34 +0100377TEST_CASE("NeonSpaceToDepthNchwEndToEndTest2")
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100378{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100379 SpaceToDepthNchwEndToEndTest2(neonDefaultBackends);
Ellen Norris-Thompson29794572019-06-26 16:40:36 +0100380}
381
Teresa Charlina4b60902024-02-07 20:55:53 +0000382// Split
Sadik Armagan1625efc2021-06-10 18:24:34 +0100383TEST_CASE("NeonSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100384{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100385 Splitter1dEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100386}
387
Sadik Armagan1625efc2021-06-10 18:24:34 +0100388TEST_CASE("NeonSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100389{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100390 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100391}
392
Sadik Armagan1625efc2021-06-10 18:24:34 +0100393TEST_CASE("NeonSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100394{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100395 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100396}
397
Sadik Armagan1625efc2021-06-10 18:24:34 +0100398TEST_CASE("NeonSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100399{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100400 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100401}
402
Sadik Armagan1625efc2021-06-10 18:24:34 +0100403TEST_CASE("NeonSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100404{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100405 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100406}
407
Sadik Armagan1625efc2021-06-10 18:24:34 +0100408TEST_CASE("NeonSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100409{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100410 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100411}
412
Sadik Armagan1625efc2021-06-10 18:24:34 +0100413TEST_CASE("NeonSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100414{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100415 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100416}
417
Sadik Armagan1625efc2021-06-10 18:24:34 +0100418TEST_CASE("NeonSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100419{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100420 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100421}
422
Sadik Armagan1625efc2021-06-10 18:24:34 +0100423TEST_CASE("NeonSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100424{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100425 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100426}
427
Sadik Armagan1625efc2021-06-10 18:24:34 +0100428TEST_CASE("NeonSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100429{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100430 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100431}
432
Sadik Armagan1625efc2021-06-10 18:24:34 +0100433TEST_CASE("NeonSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100434{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100435 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100436}
437
Sadik Armagan1625efc2021-06-10 18:24:34 +0100438TEST_CASE("NeonSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100439{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100440 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100441}
442
Sadik Armagan1625efc2021-06-10 18:24:34 +0100443TEST_CASE("NeonSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100444{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100445 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100446}
447
Sadik Armagan1625efc2021-06-10 18:24:34 +0100448TEST_CASE("NeonSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100449{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100450 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100451}
452
Sadik Armagan1625efc2021-06-10 18:24:34 +0100453TEST_CASE("NeonSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100454{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100455 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100456}
457
Sadik Armagan1625efc2021-06-10 18:24:34 +0100458TEST_CASE("NeonSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100459{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100460 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100461}
462
Sadik Armagan1625efc2021-06-10 18:24:34 +0100463TEST_CASE("NeonSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100464{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100465 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100466}
467
Sadik Armagan1625efc2021-06-10 18:24:34 +0100468TEST_CASE("NeonSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100469{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100470 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100471}
472
Sadik Armagan1625efc2021-06-10 18:24:34 +0100473TEST_CASE("NeonSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100474{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100475 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100476}
477
Sadik Armagan1625efc2021-06-10 18:24:34 +0100478TEST_CASE("NeonSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100479{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100480 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100481}
482
David Monahan36e6eae2023-07-26 18:37:45 +0100483// Tile
484TEST_CASE("NeonTileEndToEndFloat32")
485{
486 TileEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
487}
488TEST_CASE("NeonTileEndToEndFloat16")
489{
490 TileEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
491}
492TEST_CASE("NeonTileEndToEndQAsymmS8")
493{
494 TileEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
495}
496TEST_CASE("NeonTileEndToEndQAsymmU8")
497{
498 TileEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
499}
500TEST_CASE("NeonTileEndToEndQSymmS8")
501{
502 TileEndToEnd<armnn::DataType::QSymmS8>(neonDefaultBackends);
503}
504TEST_CASE("NeonTileEndToEndQSymmS16")
505{
506 TileEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends);
507}
508TEST_CASE("NeonTileEndToEndSigned32")
509{
510 TileEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
511}
512
Sadik Armagan1625efc2021-06-10 18:24:34 +0100513TEST_CASE("NeonQuantizedLstmEndToEndTest")
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100514{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100515 QuantizedLstmEndToEnd(neonDefaultBackends);
Francis Murtaghb3fc2522019-08-09 13:20:50 +0100516}
517
Sadik Armagan1625efc2021-06-10 18:24:34 +0100518TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100519{
520 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100521 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100522}
523
Sadik Armagan1625efc2021-06-10 18:24:34 +0100524TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NchwTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100525{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000526 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100527 neonDefaultBackends, armnn::DataLayout::NCHW);
Sadik Armagan581742d2019-08-12 14:11:37 +0100528}
529
Sadik Armagan1625efc2021-06-10 18:24:34 +0100530TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100531{
532 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100533 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100534}
535
Sadik Armagan1625efc2021-06-10 18:24:34 +0100536TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NhwcTest")
Sadik Armagan581742d2019-08-12 14:11:37 +0100537{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000538 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Sadik Armagan1625efc2021-06-10 18:24:34 +0100539 neonDefaultBackends, armnn::DataLayout::NHWC);
Sadik Armagan581742d2019-08-12 14:11:37 +0100540}
541
Teresa Charlin6bc85252022-12-06 20:43:06 +0000542// Transpose
543TEST_CASE("NeonTransposeEndToEndTest")
544{
545 TransposeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
546}
547
Sadik Armagan1625efc2021-06-10 18:24:34 +0100548TEST_CASE("NeonImportNonAlignedInputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100549{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100550 ImportNonAlignedInputPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100551}
552
Sadik Armagan1625efc2021-06-10 18:24:34 +0100553TEST_CASE("NeonExportNonAlignedOutputPointerTest")
David Monahan3fb7e102019-08-20 11:25:29 +0100554{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100555 ExportNonAlignedOutputPointerTest(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100556}
557
Sadik Armagan1625efc2021-06-10 18:24:34 +0100558TEST_CASE("NeonImportAlignedPointerTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100559{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100560 ImportAlignedPointerTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100561}
562
Sadik Armagan1625efc2021-06-10 18:24:34 +0100563TEST_CASE("NeonImportOnlyWorkload")
David Monahan3fb7e102019-08-20 11:25:29 +0100564{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100565 ImportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100566}
David Monahan3fb7e102019-08-20 11:25:29 +0100567
Sadik Armagan1625efc2021-06-10 18:24:34 +0100568TEST_CASE("NeonExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100569{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100570 ExportOnlyWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100571}
David Monahan3fb7e102019-08-20 11:25:29 +0100572
Sadik Armagan1625efc2021-06-10 18:24:34 +0100573TEST_CASE("NeonImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100574{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100575 ImportAndExportWorkload(neonDefaultBackends);
Ferran Balaguer83239f92019-09-19 11:49:25 +0100576}
David Monahan3fb7e102019-08-20 11:25:29 +0100577
Sadik Armagan1625efc2021-06-10 18:24:34 +0100578TEST_CASE("NeonExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +0100579{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100580 ExportOutputWithSeveralOutputSlotConnectionsTest(neonDefaultBackends);
David Monahan3fb7e102019-08-20 11:25:29 +0100581}
582
Sadik Armagan062e0e92019-10-14 10:31:43 +0100583// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +0100584TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100585{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100586 InstanceNormalizationNchwEndToEndTest1(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100587}
588
Sadik Armagan1625efc2021-06-10 18:24:34 +0100589TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +0100590{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100591 InstanceNormalizationNchwEndToEndTest2(neonDefaultBackends);
Sadik Armagan062e0e92019-10-14 10:31:43 +0100592}
593
Teresa Charlina52bca22024-02-01 17:36:48 +0000594// Pooling 2D
595// Average Pool 2D
596TEST_CASE("NeonAvgPool2DEndtoEndTestFloat32")
597{
598 AvgPool2dEndToEnd<DataType::Float32>(neonDefaultBackends);
599}
600
601TEST_CASE("NeonAvgPool2DEndtoEndTestFloat16")
602{
603 AvgPool2dEndToEndFloat16<DataType::Float16>(neonDefaultBackends);
604}
605
606TEST_CASE("NeonAvgPool2DIgnoreValueEndtoEndTestFloat32")
607{
608 AvgPool2dEndToEnd<DataType::Float32>(neonDefaultBackends, PaddingMethod::IgnoreValue);
609}
610
611// Max Pool 2D
612TEST_CASE("NeonMaxPool2DEndtoEndTestFloat32")
613{
614 MaxPool2dEndToEnd<DataType::Float32>(neonDefaultBackends);
615}
616
617TEST_CASE("NeonMaxPool2DEndtoEndTestFloat16")
618{
619 MaxPool2dEndToEndFloat16<DataType::Float16>(neonDefaultBackends);
620}
621
622TEST_CASE("NeonMaxPool2DIgnoreValueEndtoEndTestFloat32")
623{
624 MaxPool2dEndToEnd<DataType::Float32>(neonDefaultBackends, PaddingMethod::IgnoreValue);
625}
626
627TEST_CASE("NeonMaxPool2DTwoLayerEndtoEndTestFloat32")
628{
629 MaxPool2dTwoLayerEndToEnd<DataType::Float32>(neonDefaultBackends);
630}
631
632TEST_CASE("NeonMaxPool2DThreeLayerEndtoEndTestFloat32")
633{
634 MaxPool2dThreeLayerEndToEnd<DataType::Float32>(neonDefaultBackends);
635}
636
Teresa Charlin44088502020-07-27 11:27:19 +0100637// Fill
Sadik Armagan1625efc2021-06-10 18:24:34 +0100638TEST_CASE("NeonFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100639{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100640 FillEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100641}
642
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000643TEST_CASE("NeonFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100644{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100645 FillEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100646}
647
Sadik Armagan1625efc2021-06-10 18:24:34 +0100648TEST_CASE("NeonFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100649{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100650 FillEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
Teresa Charlin44088502020-07-27 11:27:19 +0100651}
652
James Conroy68a4dbc2019-11-13 15:35:59 +0000653// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +0100654TEST_CASE("NeonArgMaxSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000655{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100656 ArgMaxEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000657}
658
Sadik Armagan1625efc2021-06-10 18:24:34 +0100659TEST_CASE("NeonArgMinSimpleTest")
James Conroy68a4dbc2019-11-13 15:35:59 +0000660{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100661 ArgMinEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000662}
663
Sadik Armagan1625efc2021-06-10 18:24:34 +0100664TEST_CASE("NeonArgMaxAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000665{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100666 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000667}
668
Sadik Armagan1625efc2021-06-10 18:24:34 +0100669TEST_CASE("NeonArgMinAxis0Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000670{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100671 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000672}
673
Sadik Armagan1625efc2021-06-10 18:24:34 +0100674TEST_CASE("NeonArgMaxAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000675{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100676 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000677}
678
Sadik Armagan1625efc2021-06-10 18:24:34 +0100679TEST_CASE("NeonArgMinAxis1Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000680{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100681 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000682}
683
Sadik Armagan1625efc2021-06-10 18:24:34 +0100684TEST_CASE("NeonArgMaxAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000685{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100686 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000687}
688
Sadik Armagan1625efc2021-06-10 18:24:34 +0100689TEST_CASE("NeonArgMinAxis2Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000690{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100691 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000692}
693
Sadik Armagan1625efc2021-06-10 18:24:34 +0100694TEST_CASE("NeonArgMaxAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000695{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100696 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000697}
698
Sadik Armagan1625efc2021-06-10 18:24:34 +0100699TEST_CASE("NeonArgMinAxis3Test")
James Conroy68a4dbc2019-11-13 15:35:59 +0000700{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100701 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
James Conroy68a4dbc2019-11-13 15:35:59 +0000702}
703
Sadik Armagan1625efc2021-06-10 18:24:34 +0100704TEST_CASE("NeonArgMaxSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000705{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100706 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000707}
708
Sadik Armagan1625efc2021-06-10 18:24:34 +0100709TEST_CASE("NeonArgMinSimpleTestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000710{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100711 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000712}
713
Sadik Armagan1625efc2021-06-10 18:24:34 +0100714TEST_CASE("NeonArgMaxAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000715{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100716 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000717}
718
Sadik Armagan1625efc2021-06-10 18:24:34 +0100719TEST_CASE("NeonArgMinAxis0TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000720{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100721 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000722}
723
Sadik Armagan1625efc2021-06-10 18:24:34 +0100724TEST_CASE("NeonArgMaxAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000725{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100726 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000727}
728
Sadik Armagan1625efc2021-06-10 18:24:34 +0100729TEST_CASE("NeonArgMinAxis1TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000730{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100731 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000732}
733
Sadik Armagan1625efc2021-06-10 18:24:34 +0100734TEST_CASE("NeonArgMaxAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000735{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100736 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000737}
738
Sadik Armagan1625efc2021-06-10 18:24:34 +0100739TEST_CASE("NeonArgMinAxis2TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000740{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100741 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000742}
743
Sadik Armagan1625efc2021-06-10 18:24:34 +0100744TEST_CASE("NeonArgMaxAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000745{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100746 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000747}
748
Sadik Armagan1625efc2021-06-10 18:24:34 +0100749TEST_CASE("NeonArgMinAxis3TestQuantisedAsymm8")
Francis Murtagh52ec3462019-11-19 12:24:19 +0000750{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100751 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000752}
753
Teresa Charlinc17a35f2023-01-12 14:13:09 +0000754// Reduce
755TEST_CASE("NeonReduceEndToEndTest")
756{
757 ReduceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
758}
759
760TEST_CASE("NeonReduceEndToEndTestFloat16")
761{
762 ReduceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
763}
764
765// Reshape
766TEST_CASE("NeonReshapeEndToEndTest")
767{
768 ReshapeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
769}
770
771TEST_CASE("NeonReshapeEndToEndTestFloat16")
772{
773 ReshapeEndToEndFloat16<armnn::DataType::Float16>(neonDefaultBackends);
774}
775
Declan-ARM5e90b832024-02-07 13:07:31 +0000776TEST_CASE("NeonReshapeEndToEndTestInt32")
777{
778 ReshapeEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
779}
780
781TEST_CASE("NeonReshapeEndToEndTestInt16")
782{
783 ReshapeEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends);
784}
785
786TEST_CASE("NeonReshapeEndToEndTestUInt8")
787{
788 ReshapeEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
789}
790
791TEST_CASE("NeonReshapeEndToEndTestInt8")
792{
793 ReshapeEndToEnd<armnn::DataType::QAsymmS8>(neonDefaultBackends);
794}
795
Teresa Charlin28658bc2023-12-19 15:49:31 +0000796// Resize Bilinear
797TEST_CASE("NeonResizeBilinearEndToEndFloatNchwTest")
798{
799 ResizeBilinearEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
800}
801
802TEST_CASE("NeonResizeBilinearEndToEndFloatNhwcTest")
803{
804 ResizeBilinearEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
805}
806
807// Resize NearestNeighbor
808TEST_CASE("NeonResizeNearestNeighborEndToEndFloatNchwTest")
809{
810 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
811}
812
813TEST_CASE("NeonResizeNearestNeighborEndToEndFloatNhwcTest")
814{
815 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
816}
817
818TEST_CASE("NeonResizeNearestNeighborEndToEndFloatAlignCornersNhwcTest")
819{
820 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC, true, false);
821}
822
823TEST_CASE("NeonResizeNearestNeighborEndToEndFloatHalfPixelNhwcTest")
824{
825 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC, false, true);
826}
827
Tianle Cheng21a9f332023-11-09 13:56:53 +0000828// ReverseV2
829TEST_CASE("NeonReverseV2EndToEndTest")
830{
831 ReverseV2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
832}
833
Ryan OShea980446b2023-06-08 16:23:28 +0100834// Slice
835TEST_CASE("NeonSliceEndtoEndTestFloat32")
836{
837 SliceEndToEnd<DataType::Float32>(neonDefaultBackends);
838}
839
840TEST_CASE("NeonSliceEndtoEndTestInt32")
841{
842 SliceEndToEnd<DataType::Signed32>(neonDefaultBackends);
843}
844
845TEST_CASE("NeonSliceEndtoEndTestFloat16")
846{
847 SliceEndToEndFloat16<DataType::Float16>(neonDefaultBackends);
848}
849
Sadik Armagan1625efc2021-06-10 18:24:34 +0100850TEST_CASE("NeonStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +0000851{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100852 StridedSliceInvalidSliceEndToEndTest(neonDefaultBackends);
David Monahan0a99a142020-03-13 07:52:54 +0000853}
854
Colm Doneland7ceec52022-07-06 12:09:05 +0100855TEST_CASE("NeonForceImportWithAlignedBuffersEndToEndTest"
856 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
857 // will always fail.
858 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000859{
860 ForceImportWithAlignedBuffersEndToEndTest(neonDefaultBackends);
861}
862
Colm Doneland7ceec52022-07-06 12:09:05 +0100863TEST_CASE("NeonForceImportWithMisalignedInputBuffersEndToEndTest"
864 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
865 // will always fail.
866 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000867{
868 ForceImportWithMisalignedInputBuffersEndToEndTest(neonDefaultBackends);
869}
870
Colm Doneland7ceec52022-07-06 12:09:05 +0100871TEST_CASE("NeonForceImportWithMisalignedOutputBuffersEndToEndTest"
872 // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
873 // will always fail.
874 * doctest::skip(true))
David Monahan646bc8a2022-01-31 14:29:14 +0000875{
876 ForceImportWithMisalignedOutputBuffersEndToEndTest(neonDefaultBackends);
877}
878
879TEST_CASE("NeonForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
880{
881 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(neonDefaultBackends);
882}
883
Sadik Armagan1625efc2021-06-10 18:24:34 +0100884// DISABLED
885//TEST_CASE("NeonDetectionPostProcessRegularNmsTest")
886//{
887// std::vector<float> boxEncodings({
888// 0.0f, 0.0f, 0.0f, 0.0f,
889// 0.0f, 1.0f, 0.0f, 0.0f,
890// 0.0f, -1.0f, 0.0f, 0.0f,
891// 0.0f, 0.0f, 0.0f, 0.0f,
892// 0.0f, 1.0f, 0.0f, 0.0f,
893// 0.0f, 0.0f, 0.0f, 0.0f
894// });
895// std::vector<float> scores({
896// 0.0f, 0.9f, 0.8f,
897// 0.0f, 0.75f, 0.72f,
898// 0.0f, 0.6f, 0.5f,
899// 0.0f, 0.93f, 0.95f,
900// 0.0f, 0.5f, 0.4f,
901// 0.0f, 0.3f, 0.2f
902// });
903// std::vector<float> anchors({
904// 0.5f, 0.5f, 1.0f, 1.0f,
905// 0.5f, 0.5f, 1.0f, 1.0f,
906// 0.5f, 0.5f, 1.0f, 1.0f,
907// 0.5f, 10.5f, 1.0f, 1.0f,
908// 0.5f, 10.5f, 1.0f, 1.0f,
909// 0.5f, 100.5f, 1.0f, 1.0f
910// });
911// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
912// boxEncodings,
913// scores,
914// anchors);
915//}
Derek Lamberti6a5e5e82019-12-05 14:41:20 +0000916
917inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
918{
919 for (size_t i = 0; i < info.GetNumElements(); i++)
920 {
921 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
922 }
923}
924
Sadik Armagan1625efc2021-06-10 18:24:34 +0100925// DISABLED
926//TEST_CASE("NeonDetectionPostProcessRegularNmsUint8Test")
927//{
928// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
929// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
930// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
931//
932// boxEncodingsInfo.SetQuantizationScale(1.0f);
933// boxEncodingsInfo.SetQuantizationOffset(1);
934// scoresInfo.SetQuantizationScale(0.01f);
935// scoresInfo.SetQuantizationOffset(0);
936// anchorsInfo.SetQuantizationScale(0.5f);
937// anchorsInfo.SetQuantizationOffset(0);
938//
939// std::vector<float> boxEncodings({
940// 0.0f, 0.0f, 0.0f, 0.0f,
941// 0.0f, 1.0f, 0.0f, 0.0f,
942// 0.0f, -1.0f, 0.0f, 0.0f,
943// 0.0f, 0.0f, 0.0f, 0.0f,
944// 0.0f, 1.0f, 0.0f, 0.0f,
945// 0.0f, 0.0f, 0.0f, 0.0f
946// });
947// std::vector<float> scores({
948// 0.0f, 0.9f, 0.8f,
949// 0.0f, 0.75f, 0.72f,
950// 0.0f, 0.6f, 0.5f,
951// 0.0f, 0.93f, 0.95f,
952// 0.0f, 0.5f, 0.4f,
953// 0.0f, 0.3f, 0.2f
954// });
955// std::vector<float> anchors({
956// 0.5f, 0.5f, 1.0f, 1.0f,
957// 0.5f, 0.5f, 1.0f, 1.0f,
958// 0.5f, 0.5f, 1.0f, 1.0f,
959// 0.5f, 10.5f, 1.0f, 1.0f,
960// 0.5f, 10.5f, 1.0f, 1.0f,
961// 0.5f, 100.5f, 1.0f, 1.0f
962// });
963//
964// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
965// std::vector<uint8_t> qScores(scores.size(), 0);
966// std::vector<uint8_t> qAnchors(anchors.size(), 0);
967// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
968// QuantizeData(qScores.data(), scores.data(), scoresInfo);
969// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
970// DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
971// qScores, qAnchors,
972// 1.0f, 1, 0.01f, 0, 0.5f, 0);
973//}
974//
975//TEST_CASE("NeonDetectionPostProcessFastNmsTest")
976//{
977// std::vector<float> boxEncodings({
978// 0.0f, 0.0f, 0.0f, 0.0f,
979// 0.0f, 1.0f, 0.0f, 0.0f,
980// 0.0f, -1.0f, 0.0f, 0.0f,
981// 0.0f, 0.0f, 0.0f, 0.0f,
982// 0.0f, 1.0f, 0.0f, 0.0f,
983// 0.0f, 0.0f, 0.0f, 0.0f
984// });
985// std::vector<float> scores({
986// 0.0f, 0.9f, 0.8f,
987// 0.0f, 0.75f, 0.72f,
988// 0.0f, 0.6f, 0.5f,
989// 0.0f, 0.93f, 0.95f,
990// 0.0f, 0.5f, 0.4f,
991// 0.0f, 0.3f, 0.2f
992// });
993// std::vector<float> anchors({
994// 0.5f, 0.5f, 1.0f, 1.0f,
995// 0.5f, 0.5f, 1.0f, 1.0f,
996// 0.5f, 0.5f, 1.0f, 1.0f,
997// 0.5f, 10.5f, 1.0f, 1.0f,
998// 0.5f, 10.5f, 1.0f, 1.0f,
999// 0.5f, 100.5f, 1.0f, 1.0f
1000// });
1001// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
1002// boxEncodings,
1003// scores,
1004// anchors);
1005//}
1006//
1007// DISABLED
1008//TEST_CASE("NeonDetectionPostProcessFastNmsUint8Test")
1009//{
1010// armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
1011// armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
1012// armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
1013//
1014// boxEncodingsInfo.SetQuantizationScale(1.0f);
1015// boxEncodingsInfo.SetQuantizationOffset(1);
1016// scoresInfo.SetQuantizationScale(0.01f);
1017// scoresInfo.SetQuantizationOffset(0);
1018// anchorsInfo.SetQuantizationScale(0.5f);
1019// anchorsInfo.SetQuantizationOffset(0);
1020//
1021// std::vector<float> boxEncodings({
1022// 0.0f, 0.0f, 0.0f, 0.0f,
1023// 0.0f, 1.0f, 0.0f, 0.0f,
1024// 0.0f, -1.0f, 0.0f, 0.0f,
1025// 0.0f, 0.0f, 0.0f, 0.0f,
1026// 0.0f, 1.0f, 0.0f, 0.0f,
1027// 0.0f, 0.0f, 0.0f, 0.0f
1028// });
1029// std::vector<float> scores({
1030// 0.0f, 0.9f, 0.8f,
1031// 0.0f, 0.75f, 0.72f,
1032// 0.0f, 0.6f, 0.5f,
1033// 0.0f, 0.93f, 0.95f,
1034// 0.0f, 0.5f, 0.4f,
1035// 0.0f, 0.3f, 0.2f
1036// });
1037// std::vector<float> anchors({
1038// 0.5f, 0.5f, 1.0f, 1.0f,
1039// 0.5f, 0.5f, 1.0f, 1.0f,
1040// 0.5f, 0.5f, 1.0f, 1.0f,
1041// 0.5f, 10.5f, 1.0f, 1.0f,
1042// 0.5f, 10.5f, 1.0f, 1.0f,
1043// 0.5f, 100.5f, 1.0f, 1.0f
1044// });
1045//
1046// std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
1047// std::vector<uint8_t> qScores(scores.size(), 0);
1048// std::vector<uint8_t> qAnchors(anchors.size(), 0);
1049// QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
1050// QuantizeData(qScores.data(), scores.data(), scoresInfo);
1051// QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
1052// DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
1053// qScores, qAnchors,
1054// 1.0f, 1, 0.01f, 0, 0.5f, 0);
1055//}
1056
1057TEST_CASE("NeonQLstmEndToEndTest")
Derek Lamberti6a5e5e82019-12-05 14:41:20 +00001058{
Sadik Armagan1625efc2021-06-10 18:24:34 +01001059 QLstmEndToEnd(neonDefaultBackends);
Derek Lamberti6a5e5e82019-12-05 14:41:20 +00001060}
1061
Mike Kelly4cc341c2023-07-07 15:43:06 +01001062TEST_CASE("NeonReshapeRemovalSimpleCaseEndToEnd")
1063{
1064 ReshapeRemovalEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
1065}
1066
1067TEST_CASE("NeonReshapeRemovalNCHWFirstEndToEnd")
1068{
1069 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, false, true);
1070}
1071
1072TEST_CASE("NeonReshapeRemovalNCHWSecondEndToEnd")
1073{
1074 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, false, false);
1075}
1076
Derek Lamberti6a5e5e82019-12-05 14:41:20 +00001077}