xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/layerTests/LstmTestImpl.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <armnnTestUtils/LayerTestResult.hpp>
9 
10 #include <armnn/backends/IBackendInternal.hpp>
11 #include <armnn/backends/WorkloadFactory.hpp>
12 
13 #if defined(ARMNNREF_ENABLED)
14 void LstmUtilsZeroVectorTest();
15 void LstmUtilsMeanStddevNormalizationNoneZeroInputTest();
16 void LstmUtilsMeanStddevNormalizationAllZeroInputTest();
17 void LstmUtilsMeanStddevNormalizationMixedZeroInputTest();
18 void LstmUtilsVectorBatchVectorCwiseProductTest();
19 void LstmUtilsVectorBatchVectorAddTest();
20 #endif
21 
22 LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
23     armnn::IWorkloadFactory& workloadFactory,
24     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
25     const armnn::ITensorHandleFactory& tensorHandleFactory);
26 
27 LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
28     armnn::IWorkloadFactory& workloadFactory,
29     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
30     const armnn::ITensorHandleFactory& tensorHandleFactory);
31 
32 LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
33     armnn::IWorkloadFactory& workloadFactory,
34     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
35     const armnn::ITensorHandleFactory& tensorHandleFactory);
36 
37 LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionWithLayerNormTest(
38     armnn::IWorkloadFactory& workloadFactory,
39     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
40     const armnn::ITensorHandleFactory& tensorHandleFactory);
41 
42 LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionTest(
43     armnn::IWorkloadFactory& workloadFactory,
44     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
45     const armnn::ITensorHandleFactory& tensorHandleFactory);
46 
47 LayerTestResult<int16_t, 2> LstmLayerInt16WithCifgWithPeepholeNoProjectionTest(
48     armnn::IWorkloadFactory& workloadFactory,
49     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
50     const armnn::ITensorHandleFactory& tensorHandleFactory);
51 
52 LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgWithPeepholeWithProjectionTest(
53     armnn::IWorkloadFactory& workloadFactory,
54     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
55     const armnn::ITensorHandleFactory& tensorHandleFactory);
56 
57 LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionInt16ConstantTest(
58     armnn::IWorkloadFactory& workloadFactory,
59     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
60     const armnn::ITensorHandleFactory& tensorHandleFactory);
61 
62 //
63 // QuantizedLstm
64 //
65 
66 LayerTestResult<uint8_t, 2> QuantizedLstmTest(
67     armnn::IWorkloadFactory& workloadFactory,
68     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
69     const armnn::ITensorHandleFactory& tensorHandleFactory);
70 
71 //
72 // QLstm
73 //
74 
75 LayerTestResult<int8_t, 2> QLstmTest(
76     armnn::IWorkloadFactory& workloadFactory,
77     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
78     const armnn::ITensorHandleFactory& tensorHandleFactory);
79 
80 LayerTestResult<int8_t, 2> QLstmTest1(
81     armnn::IWorkloadFactory& workloadFactory,
82     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
83     const armnn::ITensorHandleFactory& tensorHandleFactory);
84 
85 LayerTestResult<int8_t, 2> QLstmTest2(
86     armnn::IWorkloadFactory& workloadFactory,
87     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
88     const armnn::ITensorHandleFactory& tensorHandleFactory);