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);