blob: 1d19aa84ff7ecb570827c6ea140d5e2629a4a7ec [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
10#include <ResolveType.hpp>
11
12#include <armnn/Types.hpp>
13
Matteo Martincighe5b8eb92019-11-28 15:45:42 +000014#include <armnn/backends/IBackendInternal.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010015#include <backendsCommon/WorkloadFactory.hpp>
16
17template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
18LayerTestResult<T, 2> Pad2dTestCommon(
19 armnn::IWorkloadFactory& workloadFactory,
20 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williams826a5432020-08-27 16:15:20 +010021 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010022 float qScale,
23 int32_t qOffset,
24 const float customPaddingValue = 0.0f);
25
26template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
27LayerTestResult<T, 3> Pad3dTestCommon(
28 armnn::IWorkloadFactory& workloadFactory,
29 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williams826a5432020-08-27 16:15:20 +010030 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010031 float qScale,
32 int32_t qOffset);
33
34template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
35LayerTestResult<T, 4> Pad4dTestCommon(
36 armnn::IWorkloadFactory& workloadFactory,
37 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williams826a5432020-08-27 16:15:20 +010038 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010039 float qScale,
40 int32_t qOffset);
41
Narumol Prangnawarat8719d222020-11-27 16:57:56 +000042template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
43LayerTestResult<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
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010051LayerTestResult<uint8_t, 2> PadUint82dTest(
52 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010053 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
54 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010055
56LayerTestResult<uint8_t, 2> PadUint82dCustomPaddingTest(
57 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010058 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
59 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010060
61LayerTestResult<uint8_t, 3> PadUint83dTest(
62 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010063 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
64 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010065
66LayerTestResult<uint8_t, 4> PadUint84dTest(
67 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010068 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
69 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010070
71LayerTestResult<float, 2> PadFloat322dTest(
72 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010073 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
74 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010075
76LayerTestResult<float, 2> PadFloat322dCustomPaddingTest(
77 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010078 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
79 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010080
81LayerTestResult<float, 3> PadFloat323dTest(
82 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010083 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
84 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010085
86LayerTestResult<float, 4> PadFloat324dTest(
87 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010088 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
89 const armnn::ITensorHandleFactory& tensorHandleFactory);
Narumol Prangnawarat44179c32020-03-11 14:51:27 +000090
91LayerTestResult<armnn::BFloat16, 2> PadBFloat162dTest(
92 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010093 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
94 const armnn::ITensorHandleFactory& tensorHandleFactory);
Narumol Prangnawarat44179c32020-03-11 14:51:27 +000095
96LayerTestResult<armnn::BFloat16, 2> PadBFloat162dCustomPaddingTest(
97 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +010098 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
99 const armnn::ITensorHandleFactory& tensorHandleFactory);
Narumol Prangnawarat44179c32020-03-11 14:51:27 +0000100
101LayerTestResult<armnn::BFloat16, 3> PadBFloat163dTest(
102 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +0100103 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
104 const armnn::ITensorHandleFactory& tensorHandleFactory);
Narumol Prangnawarat44179c32020-03-11 14:51:27 +0000105
106LayerTestResult<armnn::BFloat16, 4> PadBFloat164dTest(
107 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +0100108 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
109 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan041b3c02020-06-04 10:32:18 +0100110
111LayerTestResult<int8_t, 2> PadInt82dTest(
112 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +0100113 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
114 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan041b3c02020-06-04 10:32:18 +0100115
116LayerTestResult<int8_t, 2> PadInt82dCustomPaddingTest(
117 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +0100118 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
119 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan041b3c02020-06-04 10:32:18 +0100120
121LayerTestResult<int8_t, 3> PadInt83dTest(
122 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +0100123 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
124 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan041b3c02020-06-04 10:32:18 +0100125
126LayerTestResult<int8_t, 4> PadInt84dTest(
127 armnn::IWorkloadFactory& workloadFactory,
Finn Williams826a5432020-08-27 16:15:20 +0100128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Narumol Prangnawarat8719d222020-11-27 16:57:56 +0000129 const armnn::ITensorHandleFactory& tensorHandleFactory);
130
131LayerTestResult<int8_t, 2> PadInt82dAsymmTest(
132 armnn::IWorkloadFactory& workloadFactory,
133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
134 const armnn::ITensorHandleFactory& tensorHandleFactory);
135
136LayerTestResult<int8_t, 2> PadInt82dCustomPaddingAsymmTest(
137 armnn::IWorkloadFactory& workloadFactory,
138 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williams826a5432020-08-27 16:15:20 +0100139 const armnn::ITensorHandleFactory& tensorHandleFactory);