1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "LayerTestResult.hpp" 9 10 #include <ResolveType.hpp> 11 12 #include <armnn/Types.hpp> 13 14 #include <armnn/backends/IBackendInternal.hpp> 15 #include <backendsCommon/WorkloadFactory.hpp> 16 17 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 18 LayerTestResult<T, 2> Pad2dTestCommon( 19 armnn::IWorkloadFactory& workloadFactory, 20 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 21 const armnn::ITensorHandleFactory& tensorHandleFactory, 22 float qScale, 23 int32_t qOffset, 24 const float customPaddingValue = 0.0f); 25 26 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 27 LayerTestResult<T, 3> Pad3dTestCommon( 28 armnn::IWorkloadFactory& workloadFactory, 29 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 30 const armnn::ITensorHandleFactory& tensorHandleFactory, 31 float qScale, 32 int32_t qOffset); 33 34 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 35 LayerTestResult<T, 4> Pad4dTestCommon( 36 armnn::IWorkloadFactory& workloadFactory, 37 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 38 const armnn::ITensorHandleFactory& tensorHandleFactory, 39 float qScale, 40 int32_t qOffset); 41 42 LayerTestResult<uint8_t, 2> PadUint82dTest( 43 armnn::IWorkloadFactory& workloadFactory, 44 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 45 const armnn::ITensorHandleFactory& tensorHandleFactory); 46 47 LayerTestResult<uint8_t, 2> PadUint82dCustomPaddingTest( 48 armnn::IWorkloadFactory& workloadFactory, 49 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 50 const armnn::ITensorHandleFactory& tensorHandleFactory); 51 52 LayerTestResult<uint8_t, 3> PadUint83dTest( 53 armnn::IWorkloadFactory& workloadFactory, 54 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 55 const armnn::ITensorHandleFactory& tensorHandleFactory); 56 57 LayerTestResult<uint8_t, 4> PadUint84dTest( 58 armnn::IWorkloadFactory& workloadFactory, 59 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 60 const armnn::ITensorHandleFactory& tensorHandleFactory); 61 62 LayerTestResult<float, 2> PadFloat322dTest( 63 armnn::IWorkloadFactory& workloadFactory, 64 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 65 const armnn::ITensorHandleFactory& tensorHandleFactory); 66 67 LayerTestResult<float, 2> PadFloat322dCustomPaddingTest( 68 armnn::IWorkloadFactory& workloadFactory, 69 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 70 const armnn::ITensorHandleFactory& tensorHandleFactory); 71 72 LayerTestResult<float, 3> PadFloat323dTest( 73 armnn::IWorkloadFactory& workloadFactory, 74 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 75 const armnn::ITensorHandleFactory& tensorHandleFactory); 76 77 LayerTestResult<float, 4> PadFloat324dTest( 78 armnn::IWorkloadFactory& workloadFactory, 79 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 80 const armnn::ITensorHandleFactory& tensorHandleFactory); 81 82 LayerTestResult<armnn::BFloat16, 2> PadBFloat162dTest( 83 armnn::IWorkloadFactory& workloadFactory, 84 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 85 const armnn::ITensorHandleFactory& tensorHandleFactory); 86 87 LayerTestResult<armnn::BFloat16, 2> PadBFloat162dCustomPaddingTest( 88 armnn::IWorkloadFactory& workloadFactory, 89 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 90 const armnn::ITensorHandleFactory& tensorHandleFactory); 91 92 LayerTestResult<armnn::BFloat16, 3> PadBFloat163dTest( 93 armnn::IWorkloadFactory& workloadFactory, 94 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 95 const armnn::ITensorHandleFactory& tensorHandleFactory); 96 97 LayerTestResult<armnn::BFloat16, 4> PadBFloat164dTest( 98 armnn::IWorkloadFactory& workloadFactory, 99 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 100 const armnn::ITensorHandleFactory& tensorHandleFactory); 101 102 LayerTestResult<int8_t, 2> PadInt82dTest( 103 armnn::IWorkloadFactory& workloadFactory, 104 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 105 const armnn::ITensorHandleFactory& tensorHandleFactory); 106 107 LayerTestResult<int8_t, 2> PadInt82dCustomPaddingTest( 108 armnn::IWorkloadFactory& workloadFactory, 109 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 110 const armnn::ITensorHandleFactory& tensorHandleFactory); 111 112 LayerTestResult<int8_t, 3> PadInt83dTest( 113 armnn::IWorkloadFactory& workloadFactory, 114 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 115 const armnn::ITensorHandleFactory& tensorHandleFactory); 116 117 LayerTestResult<int8_t, 4> PadInt84dTest( 118 armnn::IWorkloadFactory& workloadFactory, 119 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 120 const armnn::ITensorHandleFactory& tensorHandleFactory);