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 <ResolveType.hpp> 11 12 #include <armnn/Types.hpp> 13 14 #include <armnn/backends/IBackendInternal.hpp> 15 #include <armnn/backends/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 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 43 LayerTestResult<T, 2> PadQAsymmTestCommon( 44 armnn::IWorkloadFactory& workloadFactory, 45 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 46 const armnn::ITensorHandleFactory& tensorHandleFactory, 47 float qScale, 48 int32_t qOffset, 49 const float customPaddingValue = 0.0f); 50 51 LayerTestResult<uint8_t, 2> PadUint82dTest( 52 armnn::IWorkloadFactory& workloadFactory, 53 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 54 const armnn::ITensorHandleFactory& tensorHandleFactory); 55 56 LayerTestResult<uint8_t, 2> PadUint82dCustomPaddingTest( 57 armnn::IWorkloadFactory& workloadFactory, 58 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 59 const armnn::ITensorHandleFactory& tensorHandleFactory); 60 61 LayerTestResult<uint8_t, 3> PadUint83dTest( 62 armnn::IWorkloadFactory& workloadFactory, 63 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 64 const armnn::ITensorHandleFactory& tensorHandleFactory); 65 66 LayerTestResult<uint8_t, 4> PadUint84dTest( 67 armnn::IWorkloadFactory& workloadFactory, 68 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 69 const armnn::ITensorHandleFactory& tensorHandleFactory); 70 71 LayerTestResult<float, 2> PadFloat322dTest( 72 armnn::IWorkloadFactory& workloadFactory, 73 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 74 const armnn::ITensorHandleFactory& tensorHandleFactory); 75 76 LayerTestResult<float, 2> PadFloat322dCustomPaddingTest( 77 armnn::IWorkloadFactory& workloadFactory, 78 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 79 const armnn::ITensorHandleFactory& tensorHandleFactory); 80 81 LayerTestResult<float, 3> PadFloat323dTest( 82 armnn::IWorkloadFactory& workloadFactory, 83 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 84 const armnn::ITensorHandleFactory& tensorHandleFactory); 85 86 LayerTestResult<float, 4> PadFloat324dTest( 87 armnn::IWorkloadFactory& workloadFactory, 88 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 89 const armnn::ITensorHandleFactory& tensorHandleFactory); 90 91 LayerTestResult<armnn::BFloat16, 2> PadBFloat162dTest( 92 armnn::IWorkloadFactory& workloadFactory, 93 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 94 const armnn::ITensorHandleFactory& tensorHandleFactory); 95 96 LayerTestResult<armnn::BFloat16, 2> PadBFloat162dCustomPaddingTest( 97 armnn::IWorkloadFactory& workloadFactory, 98 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 99 const armnn::ITensorHandleFactory& tensorHandleFactory); 100 101 LayerTestResult<armnn::BFloat16, 3> PadBFloat163dTest( 102 armnn::IWorkloadFactory& workloadFactory, 103 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 104 const armnn::ITensorHandleFactory& tensorHandleFactory); 105 106 LayerTestResult<armnn::BFloat16, 4> PadBFloat164dTest( 107 armnn::IWorkloadFactory& workloadFactory, 108 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 109 const armnn::ITensorHandleFactory& tensorHandleFactory); 110 111 LayerTestResult<int8_t, 2> PadInt82dTest( 112 armnn::IWorkloadFactory& workloadFactory, 113 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 114 const armnn::ITensorHandleFactory& tensorHandleFactory); 115 116 LayerTestResult<int8_t, 2> PadInt82dCustomPaddingTest( 117 armnn::IWorkloadFactory& workloadFactory, 118 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 119 const armnn::ITensorHandleFactory& tensorHandleFactory); 120 121 LayerTestResult<int8_t, 3> PadInt83dTest( 122 armnn::IWorkloadFactory& workloadFactory, 123 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 124 const armnn::ITensorHandleFactory& tensorHandleFactory); 125 126 LayerTestResult<int8_t, 4> PadInt84dTest( 127 armnn::IWorkloadFactory& workloadFactory, 128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 129 const armnn::ITensorHandleFactory& tensorHandleFactory); 130 131 LayerTestResult<int8_t, 2> PadInt82dAsymmTest( 132 armnn::IWorkloadFactory& workloadFactory, 133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 134 const armnn::ITensorHandleFactory& tensorHandleFactory); 135 136 LayerTestResult<int8_t, 2> PadInt82dCustomPaddingAsymmTest( 137 armnn::IWorkloadFactory& workloadFactory, 138 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 139 const armnn::ITensorHandleFactory& tensorHandleFactory);