blob: 6261bdfca685186c6418bf65b9a1ceff14b91801 [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
8#include "LayerTestResult.hpp"
9
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
17//
18// Convolution2d
19//
20
21template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
22LayerTestResult<T, 4> Convolution2d3x3Dilation3x3Test(
23 armnn::IWorkloadFactory& workloadFactory,
24 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
25 bool biasEnabled,
26 const armnn::DataLayout layout);
27
28template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
29LayerTestResult<T, 4> Convolution2d2x3x3Dilation3x3Test(
30 armnn::IWorkloadFactory& workloadFactory,
31 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
32 bool biasEnabled,
33 const armnn::DataLayout layout);
34
35template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
36LayerTestResult<T, 4> Convolution2d2x2Dilation2x2Padding2x2Stride3x3Test(
37 armnn::IWorkloadFactory &workloadFactory,
38 const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager,
39 bool biasEnabled,
40 const armnn::DataLayout layout);
41
42LayerTestResult<float, 4> SimpleConvolution2d3x5Test(
43 armnn::IWorkloadFactory& workloadFactory,
44 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
45 bool biasEnabled,
46 const armnn::DataLayout layout);
47
48LayerTestResult<float, 4> SimpleConvolution2d3x3Test(
49 armnn::IWorkloadFactory& workloadFactory,
50 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
51 bool biasEnabled,
52 const armnn::DataLayout layout);
53
54LayerTestResult<float, 4> SimpleConvolution2d3x3Stride2x2Test(
55 armnn::IWorkloadFactory& workloadFactory,
56 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
57 bool biasEnabled,
58 const armnn::DataLayout layout);
59
60LayerTestResult<float, 4> SimpleConvolution2d3x3NhwcTest(
61 armnn::IWorkloadFactory& workloadFactory,
62 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
63 bool biasEnabled);
64
65LayerTestResult<uint8_t, 4> SimpleConvolution2d3x5Uint8Test(
66 armnn::IWorkloadFactory& workloadFactory,
67 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
68 bool biasEnabled,
69 const armnn::DataLayout layout);
70
71LayerTestResult<uint8_t, 4> SimpleConvolution2d3x3Uint8Test(
72 armnn::IWorkloadFactory& workloadFactory,
73 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
74 bool biasEnabled,
75 const armnn::DataLayout layout);
76
77LayerTestResult<int16_t, 4> SimpleConvolution2d3x5QSymm16Test(
78 armnn::IWorkloadFactory& workloadFactory,
79 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
80 bool biasEnabled,
81 const armnn::DataLayout layout);
82
83LayerTestResult<int16_t, 4> SimpleConvolution2d3x3QSymm16Test(
84 armnn::IWorkloadFactory& workloadFactory,
85 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
86 bool biasEnabled,
87 const armnn::DataLayout layout);
88
89LayerTestResult<float, 4> Convolution2dAsymmetricPaddingLargerThanHalfKernelSizeTest(
90 armnn::IWorkloadFactory& workloadFactory,
91 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
92 armnn::DataLayout layout);
93
94LayerTestResult<float, 4> Convolution2dAsymmetricPaddingTest(
95 armnn::IWorkloadFactory& workloadFactory,
96 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
97 armnn::DataLayout layout);
98
99LayerTestResult<float, 4> Convolution1dTest(
100 armnn::IWorkloadFactory& workloadFactory,
101 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
102 bool biasEnabled);
103
104LayerTestResult<uint8_t, 4> Convolution1dUint8Test(
105 armnn::IWorkloadFactory& workloadFactory,
106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
107 bool biasEnabled);
108
109LayerTestResult<float, 4> CompareConvolution2dTest(
110 armnn::IWorkloadFactory& workloadFactory,
111 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
112 armnn::IWorkloadFactory& refWorkloadFactory);
113
Aron Virginas-Tar5edc8812019-11-05 18:00:21 +0000114LayerTestResult<uint8_t, 4> Convolution2dPerAxisQuantTest(
115 armnn::IWorkloadFactory& workloadFactory,
116 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
117 const armnn::DataLayout layout);
118
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100119//
120// DepthwiseConvolution2d
121//
122
123template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
124LayerTestResult<T, 4> DepthwiseConvolution2d3x3Dilation3x3Test(
125 armnn::IWorkloadFactory& workloadFactory,
126 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
127 bool biasEnabled,
128 const armnn::DataLayout layout);
129
130template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
131LayerTestResult<T, 4> DepthwiseConvolution2d2x3x3Dilation3x3Test(
132 armnn::IWorkloadFactory& workloadFactory,
133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
134 bool biasEnabled,
135 const armnn::DataLayout layout);
136
137template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
138LayerTestResult<T, 4> DepthwiseConvolution2dMult4Test(
139 armnn::IWorkloadFactory& workloadFactory,
140 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
141 bool biasEnabled,
142 const armnn::DataLayout layout);
143
144template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
145LayerTestResult<T, 4> DepthwiseConvolution2dMult2Test(
146 armnn::IWorkloadFactory& workloadFactory,
147 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
148 bool biasEnabled,
149 const armnn::DataLayout layout);
150
151template<typename T>
152LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
153 armnn::IWorkloadFactory& workloadFactory,
154 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
155 armnn::IWorkloadFactory& refWorkloadFactory,
156 const armnn::DataLayout layout);
157
158LayerTestResult<float, 4> DepthwiseConvolution2dTest(
159 armnn::IWorkloadFactory& workloadFactory,
160 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
161 bool biasEnabled,
162 const armnn::DataLayout layout);
163
164LayerTestResult<float, 4> DepthwiseConvolution2dDepthNhwcTest(
165 armnn::IWorkloadFactory& workloadFactory,
166 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
167 bool biasEnabled);
168
169LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul1Test(
170 armnn::IWorkloadFactory& workloadFactory,
171 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
172 bool biasEnabled,
173 const armnn::DataLayout layout);
174
175LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul64Test(
176 armnn::IWorkloadFactory& workloadFactory,
177 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
178
179LayerTestResult<float, 4> DepthwiseConvolution2dAsymmetricTest(
180 armnn::IWorkloadFactory& workloadFactory,
181 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
182 bool biasEnabled,
183 const armnn::DataLayout layout);
184
185LayerTestResult<float, 4> SimpleDepthwiseConvolution2d3x3Dilation3x3NhwcTest(
186 armnn::IWorkloadFactory& workloadFactory,
187 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
188
189LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
190 armnn::IWorkloadFactory& workloadFactory,
191 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
192 bool biasEnabled,
193 const armnn::DataLayout layout);
194
195LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
196 armnn::IWorkloadFactory& workloadFactory,
197 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
198 bool biasEnabled,
199 const armnn::DataLayout layout);
200
201LayerTestResult<int16_t, 4> DepthwiseConvolution2dInt16Test(
202 armnn::IWorkloadFactory& workloadFactory,
203 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
204 bool biasEnabled,
205 const armnn::DataLayout layout);
206
207LayerTestResult<int16_t, 4> DepthwiseConvolution2dDepthMul1Int16Test(
208 armnn::IWorkloadFactory& workloadFactory,
209 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
210 bool biasEnabled,
211 const armnn::DataLayout layout);
212
Teresa Charlind8df0262019-11-11 12:28:15 +0000213LayerTestResult<uint8_t, 4> DepthwiseConvolution2dPerAxisQuantTest(
214 armnn::IWorkloadFactory& workloadFactory,
215 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
216 const armnn::DataLayout layout);
217
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100218LayerTestResult<float, 4> CompareDepthwiseConvolution2dFloatTest(
219 armnn::IWorkloadFactory& workloadFactory,
220 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
221 armnn::IWorkloadFactory& refWorkloadFactory,
222 const armnn::DataLayout layout);
223
224LayerTestResult<uint8_t, 4> CompareDepthwiseConvolution2dUint8Test(
225 armnn::IWorkloadFactory& workloadFactory,
226 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
227 armnn::IWorkloadFactory& refWorkloadFactory,
228 const armnn::DataLayout layout);