blob: 3228ea8645aa478a3a8ff6a582c850c1899f6167 [file] [log] [blame]
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Sadik Armagana097d2a2021-11-24 15:47:28 +00008#include <armnnTestUtils/LayerTestResult.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +01009
Matteo Martincighe5b8eb92019-11-28 15:45:42 +000010#include <armnn/backends/IBackendInternal.hpp>
Colm Donelan0c479742021-12-10 12:43:54 +000011#include <armnn/backends/WorkloadFactory.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010012
13#if defined(ARMNNREF_ENABLED)
14void LstmUtilsZeroVectorTest();
15void LstmUtilsMeanStddevNormalizationNoneZeroInputTest();
16void LstmUtilsMeanStddevNormalizationAllZeroInputTest();
17void LstmUtilsMeanStddevNormalizationMixedZeroInputTest();
18void LstmUtilsVectorBatchVectorCwiseProductTest();
19void LstmUtilsVectorBatchVectorAddTest();
20#endif
21
22LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
23 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010024 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
25 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010026
27LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
28 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010029 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
30 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010031
32LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
33 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010034 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
35 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010036
37LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionWithLayerNormTest(
Finn Williamsc43de6a2020-08-27 11:13:25 +010038 armnn::IWorkloadFactory& workloadFactory,
39 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
40 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010041
42LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionTest(
43 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010044 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
45 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010046
47LayerTestResult<int16_t, 2> LstmLayerInt16WithCifgWithPeepholeNoProjectionTest(
48 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010049 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
50 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010051
52LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgWithPeepholeWithProjectionTest(
53 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010054 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
55 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010056
57LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionInt16ConstantTest(
58 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010059 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
60 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010061
62//
63// QuantizedLstm
64//
65
66LayerTestResult<uint8_t, 2> QuantizedLstmTest(
67 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010068 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
69 const armnn::ITensorHandleFactory& tensorHandleFactory);
James Conroy4f1f8992020-04-29 20:01:10 +010070
71//
72// QLstm
73//
74
75LayerTestResult<int8_t, 2> QLstmTest(
76 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010077 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
78 const armnn::ITensorHandleFactory& tensorHandleFactory);
James Conroyb22a75e2020-06-08 14:53:10 +010079
80LayerTestResult<int8_t, 2> QLstmTest1(
81 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010082 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
83 const armnn::ITensorHandleFactory& tensorHandleFactory);
James Conroyb22a75e2020-06-08 14:53:10 +010084
85LayerTestResult<int8_t, 2> QLstmTest2(
86 armnn::IWorkloadFactory& workloadFactory,
Finn Williamsc43de6a2020-08-27 11:13:25 +010087 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
88 const armnn::ITensorHandleFactory& tensorHandleFactory);