xref: /aosp_15_r20/external/armnn/delegate/test/NeonDelegateTests_NDK_Issue.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2021, 2023 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include "NormalizationTestHelper.hpp"
7*89c4ff92SAndroid Build Coastguard Worker #include "SoftmaxTestHelper.hpp"
8*89c4ff92SAndroid Build Coastguard Worker 
9*89c4ff92SAndroid Build Coastguard Worker #include <armnn_delegate.hpp>
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker #include <flatbuffers/flatbuffers.h>
12*89c4ff92SAndroid Build Coastguard Worker #include <schema_generated.h>
13*89c4ff92SAndroid Build Coastguard Worker 
14*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
15*89c4ff92SAndroid Build Coastguard Worker 
16*89c4ff92SAndroid Build Coastguard Worker namespace armnnDelegate
17*89c4ff92SAndroid Build Coastguard Worker {
18*89c4ff92SAndroid Build Coastguard Worker // There's a known Android NDK bug which causes this subset of Neon Tests to
19*89c4ff92SAndroid Build Coastguard Worker // fail. We'll exclude these tests in if we're doing
20*89c4ff92SAndroid Build Coastguard Worker // a debug build and NDK is less than r21.
21*89c4ff92SAndroid Build Coastguard Worker // The exclusion takes place in test/CMakeLists.txt
22*89c4ff92SAndroid Build Coastguard Worker // https://github.com/android/ndk/issues/1135
23*89c4ff92SAndroid Build Coastguard Worker 
24*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE ("Softmax_CpuAccTests")
25*89c4ff92SAndroid Build Coastguard Worker {
26*89c4ff92SAndroid Build Coastguard Worker 
27*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Softmax_Standard_Beta_CpuAcc_Test")
28*89c4ff92SAndroid Build Coastguard Worker {
29*89c4ff92SAndroid Build Coastguard Worker     std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
30*89c4ff92SAndroid Build Coastguard Worker     std::vector<float> expectedOutput = {0.00994190481, 0.0445565246, 0.0734612942, 0.329230666, 0.542809606,
31*89c4ff92SAndroid Build Coastguard Worker                                          0.710742831, 0.158588171, 0.0961885825, 0.0214625746, 0.0130177103};
32*89c4ff92SAndroid Build Coastguard Worker     SoftmaxTestCase(tflite::BuiltinOperator_SOFTMAX, backends, 1, expectedOutput);
33*89c4ff92SAndroid Build Coastguard Worker }
34*89c4ff92SAndroid Build Coastguard Worker 
35*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Softmax_Different_Beta_CpuAcc_Test")
36*89c4ff92SAndroid Build Coastguard Worker {
37*89c4ff92SAndroid Build Coastguard Worker     std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
38*89c4ff92SAndroid Build Coastguard Worker     std::vector<float> expectedOutput = {
39*89c4ff92SAndroid Build Coastguard Worker         0.0946234912, 0.148399189, 0.172415257, 0.270400971, 0.314161092,
40*89c4ff92SAndroid Build Coastguard Worker         0.352414012, 0.224709094, 0.193408906, 0.123322964, 0.106145054};
41*89c4ff92SAndroid Build Coastguard Worker     SoftmaxTestCase(tflite::BuiltinOperator_SOFTMAX, backends, 0.3, expectedOutput);
42*89c4ff92SAndroid Build Coastguard Worker }
43*89c4ff92SAndroid Build Coastguard Worker 
44*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Log_Softmax_CpuAcc_Test")
45*89c4ff92SAndroid Build Coastguard Worker {
46*89c4ff92SAndroid Build Coastguard Worker     std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
47*89c4ff92SAndroid Build Coastguard Worker     std::vector<float> expectedOutput =
48*89c4ff92SAndroid Build Coastguard Worker         {-4.61099672, -3.11099672, -2.61099672, -1.11099672, -0.610996664,
49*89c4ff92SAndroid Build Coastguard Worker          -0.341444582, -1.84144461, -2.34144449, -3.84144449, -4.34144449};
50*89c4ff92SAndroid Build Coastguard Worker     SoftmaxTestCase(tflite::BuiltinOperator_LOG_SOFTMAX, backends, 0, expectedOutput);
51*89c4ff92SAndroid Build Coastguard Worker }
52*89c4ff92SAndroid Build Coastguard Worker } // TEST_SUITE ("Softmax_CpuAccTests")
53*89c4ff92SAndroid Build Coastguard Worker 
54*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("L2Normalization_CpuAccTests")
55*89c4ff92SAndroid Build Coastguard Worker {
56*89c4ff92SAndroid Build Coastguard Worker 
57*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("L2NormalizationFp32Test_CpuAcc_Test")
58*89c4ff92SAndroid Build Coastguard Worker {
59*89c4ff92SAndroid Build Coastguard Worker     std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
60*89c4ff92SAndroid Build Coastguard Worker     L2NormalizationTest(backends);
61*89c4ff92SAndroid Build Coastguard Worker }
62*89c4ff92SAndroid Build Coastguard Worker } // TEST_SUITE("L2NormalizationFp32Test_CpuAcc_Test")
63*89c4ff92SAndroid Build Coastguard Worker }