blob: 21c4cf9bf08cd7a80db663add0283369b3a838f7 [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
Narumol Prangnawarate8cddeb2020-04-01 16:51:23 +0100119LayerTestResult<float, 4> Convolution2d3x3Stride2x2BFloat16Test(
120 armnn::IWorkloadFactory& workloadFactory,
121 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
122 bool biasEnabled,
123 const armnn::DataLayout& dataLayout);
124
125LayerTestResult<float, 4> Convolution2d3x3Stride2x2BFloat16SmallValueTest(
126 armnn::IWorkloadFactory& workloadFactory,
127 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
128 bool biasEnabled,
129 const armnn::DataLayout& dataLayout);
130
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100131//
132// DepthwiseConvolution2d
133//
134
135template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
136LayerTestResult<T, 4> DepthwiseConvolution2d3x3Dilation3x3Test(
137 armnn::IWorkloadFactory& workloadFactory,
138 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
139 bool biasEnabled,
140 const armnn::DataLayout layout);
141
142template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
143LayerTestResult<T, 4> DepthwiseConvolution2d2x3x3Dilation3x3Test(
144 armnn::IWorkloadFactory& workloadFactory,
145 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
146 bool biasEnabled,
147 const armnn::DataLayout layout);
148
149template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
150LayerTestResult<T, 4> DepthwiseConvolution2dMult4Test(
151 armnn::IWorkloadFactory& workloadFactory,
152 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
153 bool biasEnabled,
154 const armnn::DataLayout layout);
155
156template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
157LayerTestResult<T, 4> DepthwiseConvolution2dMult2Test(
158 armnn::IWorkloadFactory& workloadFactory,
159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
160 bool biasEnabled,
161 const armnn::DataLayout layout);
162
163template<typename T>
164LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
165 armnn::IWorkloadFactory& workloadFactory,
166 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
167 armnn::IWorkloadFactory& refWorkloadFactory,
168 const armnn::DataLayout layout);
169
170LayerTestResult<float, 4> DepthwiseConvolution2dTest(
171 armnn::IWorkloadFactory& workloadFactory,
172 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
173 bool biasEnabled,
174 const armnn::DataLayout layout);
175
176LayerTestResult<float, 4> DepthwiseConvolution2dDepthNhwcTest(
177 armnn::IWorkloadFactory& workloadFactory,
178 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
179 bool biasEnabled);
180
181LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul1Test(
182 armnn::IWorkloadFactory& workloadFactory,
183 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
184 bool biasEnabled,
185 const armnn::DataLayout layout);
186
187LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul64Test(
188 armnn::IWorkloadFactory& workloadFactory,
189 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
190
191LayerTestResult<float, 4> DepthwiseConvolution2dAsymmetricTest(
192 armnn::IWorkloadFactory& workloadFactory,
193 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
194 bool biasEnabled,
195 const armnn::DataLayout layout);
196
197LayerTestResult<float, 4> SimpleDepthwiseConvolution2d3x3Dilation3x3NhwcTest(
198 armnn::IWorkloadFactory& workloadFactory,
199 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
200
201LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
202 armnn::IWorkloadFactory& workloadFactory,
203 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
204 bool biasEnabled,
205 const armnn::DataLayout layout);
206
207LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
208 armnn::IWorkloadFactory& workloadFactory,
209 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
210 bool biasEnabled,
211 const armnn::DataLayout layout);
212
213LayerTestResult<int16_t, 4> DepthwiseConvolution2dInt16Test(
214 armnn::IWorkloadFactory& workloadFactory,
215 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
216 bool biasEnabled,
217 const armnn::DataLayout layout);
218
219LayerTestResult<int16_t, 4> DepthwiseConvolution2dDepthMul1Int16Test(
220 armnn::IWorkloadFactory& workloadFactory,
221 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
222 bool biasEnabled,
223 const armnn::DataLayout layout);
224
Teresa Charlind8df0262019-11-11 12:28:15 +0000225LayerTestResult<uint8_t, 4> DepthwiseConvolution2dPerAxisQuantTest(
226 armnn::IWorkloadFactory& workloadFactory,
227 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
228 const armnn::DataLayout layout);
229
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100230LayerTestResult<float, 4> CompareDepthwiseConvolution2dFloatTest(
231 armnn::IWorkloadFactory& workloadFactory,
232 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
233 armnn::IWorkloadFactory& refWorkloadFactory,
234 const armnn::DataLayout layout);
235
236LayerTestResult<uint8_t, 4> CompareDepthwiseConvolution2dUint8Test(
237 armnn::IWorkloadFactory& workloadFactory,
238 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
239 armnn::IWorkloadFactory& refWorkloadFactory,
240 const armnn::DataLayout layout);