• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
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 <BFloat16.hpp>
11 #include <Half.hpp>
12 #include <ResolveType.hpp>
13 
14 #include <armnn/backends/IBackendInternal.hpp>
15 #include <backendsCommon/WorkloadFactory.hpp>
16 
17 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
18 LayerTestResult<T, 3> ConcatDifferentInputOutputQParamTest(
19     armnn::IWorkloadFactory& workloadFactory,
20     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
21     const armnn::ITensorHandleFactory& tensorHandleFactory,
22     bool useSubtensor);
23 
24 LayerTestResult<float, 3> ConcatTest(
25     armnn::IWorkloadFactory& workloadFactory,
26     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
27     const armnn::ITensorHandleFactory& tensorHandleFactory);
28 
29 LayerTestResult<armnn::BFloat16, 3> ConcatBFloat16Test(
30     armnn::IWorkloadFactory& workloadFactory,
31     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
32     const armnn::ITensorHandleFactory& tensorHandleFactory);
33 
34 LayerTestResult<armnn::Half, 3> ConcatFloat16Test(
35     armnn::IWorkloadFactory& workloadFactory,
36     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
37     const armnn::ITensorHandleFactory& tensorHandleFactory);
38 
39 LayerTestResult<uint8_t, 3> ConcatUint8Test(
40     armnn::IWorkloadFactory& workloadFactory,
41     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
42     const armnn::ITensorHandleFactory& tensorHandleFactory);
43 
44 LayerTestResult<uint16_t, 3> ConcatUint16Test(
45     armnn::IWorkloadFactory& workloadFactory,
46     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
47     const armnn::ITensorHandleFactory& tensorHandleFactory);
48 
49 LayerTestResult<uint8_t, 3> ConcatUint8DifferentQParamsTest(
50     armnn::IWorkloadFactory& workloadFactory,
51     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
52     const armnn::ITensorHandleFactory& tensorHandleFactory);
53 
54 LayerTestResult<float, 1> Concat1dTest(
55     armnn::IWorkloadFactory& workloadFactory,
56     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
57     const armnn::ITensorHandleFactory& tensorHandleFactory);
58 
59 LayerTestResult<float, 2> Concat2dDim0Test(
60     armnn::IWorkloadFactory& workloadFactory,
61     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
62     const armnn::ITensorHandleFactory& tensorHandleFactory);
63 
64 LayerTestResult<float, 2> Concat2dDim1Test(
65     armnn::IWorkloadFactory& workloadFactory,
66     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
67     const armnn::ITensorHandleFactory& tensorHandleFactory);
68 
69 LayerTestResult<float, 2> Concat2dDim0DiffInputDimsTest(
70     armnn::IWorkloadFactory& workloadFactory,
71     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
72     const armnn::ITensorHandleFactory& tensorHandleFactory);
73 
74 LayerTestResult<float, 2> Concat2dDim1DiffInputDimsTest(
75     armnn::IWorkloadFactory& workloadFactory,
76     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
77     const armnn::ITensorHandleFactory& tensorHandleFactory);
78 
79 LayerTestResult<float, 3> Concat3dDim0Test(
80     armnn::IWorkloadFactory& workloadFactory,
81     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
82     const armnn::ITensorHandleFactory& tensorHandleFactory);
83 
84 LayerTestResult<float, 3> Concat3dDim1Test(
85     armnn::IWorkloadFactory& workloadFactory,
86     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
87     const armnn::ITensorHandleFactory& tensorHandleFactory);
88 
89 LayerTestResult<float, 3> Concat3dDim2Test(
90     armnn::IWorkloadFactory& workloadFactory,
91     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
92     const armnn::ITensorHandleFactory& tensorHandleFactory,
93     bool useSubtensor);
94 
95 LayerTestResult<float, 3> Concat3dDim0DiffInputDimsTest(
96     armnn::IWorkloadFactory& workloadFactory,
97     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
98     const armnn::ITensorHandleFactory& tensorHandleFactory);
99 
100 LayerTestResult<float, 3> Concat3dDim1DiffInputDimsTest(
101     armnn::IWorkloadFactory& workloadFactory,
102     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
103     const armnn::ITensorHandleFactory& tensorHandleFactory);
104 
105 LayerTestResult<float, 3> Concat3dDim2DiffInputDimsTest(
106     armnn::IWorkloadFactory& workloadFactory,
107     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
108     const armnn::ITensorHandleFactory& tensorHandleFactory,
109     bool useSubtensor);
110 
111 LayerTestResult<float, 4> Concat4dDim0Test(
112     armnn::IWorkloadFactory& workloadFactory,
113     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
114     const armnn::ITensorHandleFactory& tensorHandleFactory);
115 
116 LayerTestResult<float, 4> Concat4dDim1Test(
117     armnn::IWorkloadFactory& workloadFactory,
118     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
119     const armnn::ITensorHandleFactory& tensorHandleFactory);
120 
121 LayerTestResult<float, 4> Concat4dDim2Test(
122     armnn::IWorkloadFactory& workloadFactory,
123     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
124     const armnn::ITensorHandleFactory& tensorHandleFactory);
125 
126 LayerTestResult<float, 4> Concat4dDim3Test(
127     armnn::IWorkloadFactory& workloadFactory,
128     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
129     const armnn::ITensorHandleFactory& tensorHandleFactory,
130     bool useSubtensor);
131 
132 LayerTestResult<float, 4> Concat4dDiffShapeDim0Test(
133     armnn::IWorkloadFactory& workloadFactory,
134     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
135     const armnn::ITensorHandleFactory& tensorHandleFactory);
136 
137 LayerTestResult<float, 4> Concat4dDiffShapeDim1Test(
138     armnn::IWorkloadFactory& workloadFactory,
139     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
140     const armnn::ITensorHandleFactory& tensorHandleFactory);
141 
142 LayerTestResult<float, 4> Concat4dDiffShapeDim2Test(
143     armnn::IWorkloadFactory& workloadFactory,
144     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
145     const armnn::ITensorHandleFactory& tensorHandleFactory);
146 
147 LayerTestResult<float, 4> Concat4dDiffShapeDim3Test(
148     armnn::IWorkloadFactory& workloadFactory,
149     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150     const armnn::ITensorHandleFactory& tensorHandleFactory,
151     bool useSubtensor);
152 
153 LayerTestResult<uint8_t, 4> Concat4dDim0Uint8Test(
154     armnn::IWorkloadFactory& workloadFactory,
155     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
156     const armnn::ITensorHandleFactory& tensorHandleFactory);
157 
158 LayerTestResult<uint8_t, 4> Concat4dDim1Uint8Test(
159     armnn::IWorkloadFactory& workloadFactory,
160     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
161     const armnn::ITensorHandleFactory& tensorHandleFactory);
162 
163 LayerTestResult<uint8_t, 4> Concat4dDim2Uint8Test(
164     armnn::IWorkloadFactory& workloadFactory,
165     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
166     const armnn::ITensorHandleFactory& tensorHandleFactory);
167 
168 LayerTestResult<uint8_t, 4> Concat4dDim3Uint8Test(
169     armnn::IWorkloadFactory& workloadFactory,
170     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
171     const armnn::ITensorHandleFactory& tensorHandleFactory,
172     bool useSubtensor);
173 
174 LayerTestResult<uint8_t, 4> Concat4dDiffShapeDim0Uint8Test(
175     armnn::IWorkloadFactory& workloadFactory,
176     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
177     const armnn::ITensorHandleFactory& tensorHandleFactory);
178 
179 LayerTestResult<uint8_t, 4> Concat4dDiffShapeDim1Uint8Test(
180     armnn::IWorkloadFactory& workloadFactory,
181     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
182     const armnn::ITensorHandleFactory& tensorHandleFactory);
183 
184 LayerTestResult<uint8_t, 4> Concat4dDiffShapeDim2Uint8Test(
185     armnn::IWorkloadFactory& workloadFactory,
186     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
187     const armnn::ITensorHandleFactory& tensorHandleFactory);
188 
189 LayerTestResult<uint8_t, 4> Concat4dDiffShapeDim3Uint8Test(
190     armnn::IWorkloadFactory& workloadFactory,
191     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
192     const armnn::ITensorHandleFactory& tensorHandleFactory,
193     bool useSubtensor);
194 
195 LayerTestResult<uint8_t, 1> Concat1dUint8Test(
196     armnn::IWorkloadFactory& workloadFactory,
197     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
198     const armnn::ITensorHandleFactory& tensorHandleFactory);
199 
200 LayerTestResult<uint8_t, 2> Concat2dDim0Uint8Test(
201     armnn::IWorkloadFactory& workloadFactory,
202     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
203     const armnn::ITensorHandleFactory& tensorHandleFactory);
204 
205 LayerTestResult<uint8_t, 2> Concat2dDim1Uint8Test(
206     armnn::IWorkloadFactory& workloadFactory,
207     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
208     const armnn::ITensorHandleFactory& tensorHandleFactory);
209 
210 LayerTestResult<uint8_t, 2> Concat2dDim0DiffInputDimsUint8Test(
211     armnn::IWorkloadFactory& workloadFactory,
212     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
213     const armnn::ITensorHandleFactory& tensorHandleFactory);
214 
215 LayerTestResult<uint8_t, 2> Concat2dDim1DiffInputDimsUint8Test(
216     armnn::IWorkloadFactory& workloadFactory,
217     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
218     const armnn::ITensorHandleFactory& tensorHandleFactory);
219 
220 LayerTestResult<uint8_t, 3> Concat3dDim0Uint8Test(
221     armnn::IWorkloadFactory& workloadFactory,
222     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
223     const armnn::ITensorHandleFactory& tensorHandleFactory);
224 
225 LayerTestResult<uint8_t, 3> Concat3dDim1Uint8Test(
226     armnn::IWorkloadFactory& workloadFactory,
227     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
228     const armnn::ITensorHandleFactory& tensorHandleFactory);
229 
230 LayerTestResult<uint8_t, 3> Concat3dDim2Uint8Test(
231     armnn::IWorkloadFactory& workloadFactory,
232     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
233     const armnn::ITensorHandleFactory& tensorHandleFactory,
234     bool useSubtensor);
235 
236 LayerTestResult<uint8_t, 3> Concat3dDim0DiffInputDimsUint8Test(
237     armnn::IWorkloadFactory& workloadFactory,
238     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
239     const armnn::ITensorHandleFactory& tensorHandleFactory);
240 
241 LayerTestResult<uint8_t, 3> Concat3dDim1DiffInputDimsUint8Test(
242     armnn::IWorkloadFactory& workloadFactory,
243     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
244     const armnn::ITensorHandleFactory& tensorHandleFactory);
245 
246 LayerTestResult<uint8_t, 3> Concat3dDim2DiffInputDimsUint8Test(
247     armnn::IWorkloadFactory& workloadFactory,
248     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
249     const armnn::ITensorHandleFactory& tensorHandleFactory,
250     bool useSubtensor);
251 
252 LayerTestResult<uint8_t, 3> ConcatDifferentInputOutputQParamUint8Test(
253     armnn::IWorkloadFactory& workloadFactory,
254     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
255     const armnn::ITensorHandleFactory& tensorHandleFactory,
256     bool useSubtensor);
257 
258 LayerTestResult<int16_t, 3> ConcatDifferentInputOutputQParamInt16Test(
259     armnn::IWorkloadFactory& workloadFactory,
260     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
261     const armnn::ITensorHandleFactory& tensorHandleFactory,
262     bool useSubtensor);
263