blob: f5ff586f02259330f9f9dc97f0e3ff356043f052 [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
14#include <backendsCommon/IBackendInternal.hpp>
15#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
114//
115// DepthwiseConvolution2d
116//
117
118template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
119LayerTestResult<T, 4> DepthwiseConvolution2d3x3Dilation3x3Test(
120 armnn::IWorkloadFactory& workloadFactory,
121 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
122 bool biasEnabled,
123 const armnn::DataLayout layout);
124
125template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
126LayerTestResult<T, 4> DepthwiseConvolution2d2x3x3Dilation3x3Test(
127 armnn::IWorkloadFactory& workloadFactory,
128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
129 bool biasEnabled,
130 const armnn::DataLayout layout);
131
132template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
133LayerTestResult<T, 4> DepthwiseConvolution2dMult4Test(
134 armnn::IWorkloadFactory& workloadFactory,
135 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
136 bool biasEnabled,
137 const armnn::DataLayout layout);
138
139template<armnn::DataType ArmnnType, armnn::DataType ArmnnBType, typename T = armnn::ResolveType<ArmnnType>>
140LayerTestResult<T, 4> DepthwiseConvolution2dMult2Test(
141 armnn::IWorkloadFactory& workloadFactory,
142 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
143 bool biasEnabled,
144 const armnn::DataLayout layout);
145
146template<typename T>
147LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
148 armnn::IWorkloadFactory& workloadFactory,
149 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150 armnn::IWorkloadFactory& refWorkloadFactory,
151 const armnn::DataLayout layout);
152
153LayerTestResult<float, 4> DepthwiseConvolution2dTest(
154 armnn::IWorkloadFactory& workloadFactory,
155 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
156 bool biasEnabled,
157 const armnn::DataLayout layout);
158
159LayerTestResult<float, 4> DepthwiseConvolution2dDepthNhwcTest(
160 armnn::IWorkloadFactory& workloadFactory,
161 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
162 bool biasEnabled);
163
164LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul1Test(
165 armnn::IWorkloadFactory& workloadFactory,
166 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
167 bool biasEnabled,
168 const armnn::DataLayout layout);
169
170LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul64Test(
171 armnn::IWorkloadFactory& workloadFactory,
172 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
173
174LayerTestResult<float, 4> DepthwiseConvolution2dAsymmetricTest(
175 armnn::IWorkloadFactory& workloadFactory,
176 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
177 bool biasEnabled,
178 const armnn::DataLayout layout);
179
180LayerTestResult<float, 4> SimpleDepthwiseConvolution2d3x3Dilation3x3NhwcTest(
181 armnn::IWorkloadFactory& workloadFactory,
182 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
183
184LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
185 armnn::IWorkloadFactory& workloadFactory,
186 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
187 bool biasEnabled,
188 const armnn::DataLayout layout);
189
190LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
191 armnn::IWorkloadFactory& workloadFactory,
192 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
193 bool biasEnabled,
194 const armnn::DataLayout layout);
195
196LayerTestResult<int16_t, 4> DepthwiseConvolution2dInt16Test(
197 armnn::IWorkloadFactory& workloadFactory,
198 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
199 bool biasEnabled,
200 const armnn::DataLayout layout);
201
202LayerTestResult<int16_t, 4> DepthwiseConvolution2dDepthMul1Int16Test(
203 armnn::IWorkloadFactory& workloadFactory,
204 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
205 bool biasEnabled,
206 const armnn::DataLayout layout);
207
208LayerTestResult<float, 4> CompareDepthwiseConvolution2dFloatTest(
209 armnn::IWorkloadFactory& workloadFactory,
210 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
211 armnn::IWorkloadFactory& refWorkloadFactory,
212 const armnn::DataLayout layout);
213
214LayerTestResult<uint8_t, 4> CompareDepthwiseConvolution2dUint8Test(
215 armnn::IWorkloadFactory& workloadFactory,
216 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
217 armnn::IWorkloadFactory& refWorkloadFactory,
218 const armnn::DataLayout layout);