blob: 98615534c509a2b9716b354b0de90f32fbc02857 [file] [log] [blame]
XNNPACK Teamb455b122019-09-27 18:10:33 -07001// Copyright (c) Facebook, Inc. and its affiliates.
2// All rights reserved.
3//
4// Copyright 2019 Google LLC
5//
6// This source code is licensed under the BSD-style license found in the
7// LICENSE file in the root directory of this source tree.
8
9#include <gtest/gtest.h>
10
11#include "channel-shuffle-operator-tester.h"
12
13
Marat Dukhanefc47b82019-11-18 09:25:38 -080014TEST(CHANNEL_SHUFFLE_NC_X8, two_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070015 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
16 ChannelShuffleOperatorTester()
17 .batch_size(1)
18 .groups(2)
19 .group_channels(group_channels)
20 .iterations(3)
21 .TestX8();
22 }
23}
24
Marat Dukhanefc47b82019-11-18 09:25:38 -080025TEST(CHANNEL_SHUFFLE_NC_X8, three_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070026 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
27 ChannelShuffleOperatorTester()
28 .batch_size(1)
29 .groups(3)
30 .group_channels(group_channels)
31 .iterations(3)
32 .TestX8();
33 }
34}
35
Marat Dukhanefc47b82019-11-18 09:25:38 -080036TEST(CHANNEL_SHUFFLE_NC_X8, four_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070037 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
38 ChannelShuffleOperatorTester()
39 .batch_size(1)
40 .groups(4)
41 .group_channels(group_channels)
42 .iterations(3)
43 .TestX8();
44 }
45}
46
Marat Dukhanefc47b82019-11-18 09:25:38 -080047TEST(CHANNEL_SHUFFLE_NC_X8, many_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070048 for (size_t groups = 5; groups < 12; groups += 3) {
49 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
50 ChannelShuffleOperatorTester()
51 .batch_size(1)
52 .groups(groups)
53 .group_channels(group_channels)
54 .iterations(3)
55 .TestX8();
56 }
57 }
58}
59
Marat Dukhanefc47b82019-11-18 09:25:38 -080060TEST(CHANNEL_SHUFFLE_NC_X8, two_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070061 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
62 ChannelShuffleOperatorTester()
63 .batch_size(3)
64 .groups(2)
65 .group_channels(group_channels)
66 .iterations(3)
67 .TestX8();
68 }
69}
70
Marat Dukhanefc47b82019-11-18 09:25:38 -080071TEST(CHANNEL_SHUFFLE_NC_X8, three_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070072 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
73 ChannelShuffleOperatorTester()
74 .batch_size(3)
75 .groups(3)
76 .group_channels(group_channels)
77 .iterations(3)
78 .TestX8();
79 }
80}
81
Marat Dukhanefc47b82019-11-18 09:25:38 -080082TEST(CHANNEL_SHUFFLE_NC_X8, four_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070083 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
84 ChannelShuffleOperatorTester()
85 .batch_size(3)
86 .groups(4)
87 .group_channels(group_channels)
88 .iterations(3)
89 .TestX8();
90 }
91}
92
Marat Dukhanefc47b82019-11-18 09:25:38 -080093TEST(CHANNEL_SHUFFLE_NC_X8, many_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070094 for (size_t groups = 5; groups < 12; groups += 3) {
95 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
96 ChannelShuffleOperatorTester()
97 .batch_size(3)
98 .groups(groups)
99 .group_channels(group_channels)
100 .iterations(3)
101 .TestX8();
102 }
103 }
104}
105
Marat Dukhanefc47b82019-11-18 09:25:38 -0800106TEST(CHANNEL_SHUFFLE_NC_X8, two_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700107 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
108 ChannelShuffleOperatorTester()
109 .batch_size(3)
110 .groups(2)
111 .group_channels(group_channels)
112 .input_stride(511)
113 .iterations(3)
114 .TestX8();
115 }
116}
117
Marat Dukhanefc47b82019-11-18 09:25:38 -0800118TEST(CHANNEL_SHUFFLE_NC_X8, three_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700119 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
120 ChannelShuffleOperatorTester()
121 .batch_size(3)
122 .groups(3)
123 .group_channels(group_channels)
124 .input_stride(511)
125 .iterations(3)
126 .TestX8();
127 }
128}
129
Marat Dukhanefc47b82019-11-18 09:25:38 -0800130TEST(CHANNEL_SHUFFLE_NC_X8, four_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700131 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
132 ChannelShuffleOperatorTester()
133 .batch_size(3)
134 .groups(4)
135 .group_channels(group_channels)
136 .input_stride(511)
137 .iterations(3)
138 .TestX8();
139 }
140}
141
Marat Dukhanefc47b82019-11-18 09:25:38 -0800142TEST(CHANNEL_SHUFFLE_NC_X8, many_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700143 for (size_t groups = 5; groups < 12; groups += 3) {
144 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
145 ChannelShuffleOperatorTester()
146 .batch_size(3)
147 .groups(groups)
148 .group_channels(group_channels)
149 .input_stride(1007)
150 .iterations(3)
151 .TestX8();
152 }
153 }
154}
155
Marat Dukhanefc47b82019-11-18 09:25:38 -0800156TEST(CHANNEL_SHUFFLE_NC_X8, two_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700157 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
158 ChannelShuffleOperatorTester()
159 .batch_size(3)
160 .groups(2)
161 .group_channels(group_channels)
162 .output_stride(513)
163 .iterations(3)
164 .TestX8();
165 }
166}
167
Marat Dukhanefc47b82019-11-18 09:25:38 -0800168TEST(CHANNEL_SHUFFLE_NC_X8, three_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700169 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
170 ChannelShuffleOperatorTester()
171 .batch_size(3)
172 .groups(3)
173 .group_channels(group_channels)
174 .output_stride(513)
175 .iterations(3)
176 .TestX8();
177 }
178}
179
Marat Dukhanefc47b82019-11-18 09:25:38 -0800180TEST(CHANNEL_SHUFFLE_NC_X8, four_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700181 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
182 ChannelShuffleOperatorTester()
183 .batch_size(3)
184 .groups(4)
185 .group_channels(group_channels)
186 .output_stride(513)
187 .iterations(3)
188 .TestX8();
189 }
190}
191
Marat Dukhanefc47b82019-11-18 09:25:38 -0800192TEST(CHANNEL_SHUFFLE_NC_X8, many_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700193 for (size_t groups = 5; groups < 12; groups += 3) {
194 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
195 ChannelShuffleOperatorTester()
196 .batch_size(3)
197 .groups(groups)
198 .group_channels(group_channels)
199 .output_stride(1111)
200 .iterations(3)
201 .TestX8();
202 }
203 }
204}
205
Marat Dukhanefc47b82019-11-18 09:25:38 -0800206TEST(CHANNEL_SHUFFLE_NC_X8, two_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700207 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
208 ChannelShuffleOperatorTester()
209 .batch_size(3)
210 .groups(2)
211 .group_channels(group_channels)
212 .input_stride(511)
213 .output_stride(513)
214 .iterations(3)
215 .TestX8();
216 }
217}
218
Marat Dukhanefc47b82019-11-18 09:25:38 -0800219TEST(CHANNEL_SHUFFLE_NC_X8, three_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700220 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
221 ChannelShuffleOperatorTester()
222 .batch_size(3)
223 .groups(3)
224 .group_channels(group_channels)
225 .input_stride(511)
226 .output_stride(513)
227 .iterations(3)
228 .TestX8();
229 }
230}
231
Marat Dukhanefc47b82019-11-18 09:25:38 -0800232TEST(CHANNEL_SHUFFLE_NC_X8, four_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700233 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
234 ChannelShuffleOperatorTester()
235 .batch_size(3)
236 .groups(4)
237 .group_channels(group_channels)
238 .input_stride(511)
239 .output_stride(513)
240 .iterations(3)
241 .TestX8();
242 }
243}
244
Marat Dukhanefc47b82019-11-18 09:25:38 -0800245TEST(CHANNEL_SHUFFLE_NC_X8, many_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700246 for (size_t groups = 5; groups < 12; groups += 3) {
247 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
248 ChannelShuffleOperatorTester()
249 .batch_size(3)
250 .groups(groups)
251 .group_channels(group_channels)
252 .input_stride(1007)
253 .output_stride(1111)
254 .iterations(3)
255 .TestX8();
256 }
257 }
258}
259
Marat Dukhanefc47b82019-11-18 09:25:38 -0800260TEST(CHANNEL_SHUFFLE_NC_X32, two_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700261 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
262 ChannelShuffleOperatorTester()
263 .batch_size(1)
264 .groups(2)
265 .group_channels(group_channels)
266 .iterations(3)
267 .TestX32();
268 }
269}
270
Marat Dukhanefc47b82019-11-18 09:25:38 -0800271TEST(CHANNEL_SHUFFLE_NC_X32, three_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700272 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
273 ChannelShuffleOperatorTester()
274 .batch_size(1)
275 .groups(3)
276 .group_channels(group_channels)
277 .iterations(3)
278 .TestX32();
279 }
280}
281
Marat Dukhanefc47b82019-11-18 09:25:38 -0800282TEST(CHANNEL_SHUFFLE_NC_X32, four_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700283 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
284 ChannelShuffleOperatorTester()
285 .batch_size(1)
286 .groups(4)
287 .group_channels(group_channels)
288 .iterations(3)
289 .TestX32();
290 }
291}
292
Marat Dukhanefc47b82019-11-18 09:25:38 -0800293TEST(CHANNEL_SHUFFLE_NC_X32, many_groups_unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700294 for (size_t groups = 5; groups < 12; groups += 3) {
295 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
296 ChannelShuffleOperatorTester()
297 .batch_size(1)
298 .groups(groups)
299 .group_channels(group_channels)
300 .iterations(3)
301 .TestX32();
302 }
303 }
304}
305
Marat Dukhanefc47b82019-11-18 09:25:38 -0800306TEST(CHANNEL_SHUFFLE_NC_X32, two_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700307 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
308 ChannelShuffleOperatorTester()
309 .batch_size(3)
310 .groups(2)
311 .group_channels(group_channels)
312 .iterations(3)
313 .TestX32();
314 }
315}
316
Marat Dukhanefc47b82019-11-18 09:25:38 -0800317TEST(CHANNEL_SHUFFLE_NC_X32, three_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700318 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
319 ChannelShuffleOperatorTester()
320 .batch_size(3)
321 .groups(3)
322 .group_channels(group_channels)
323 .iterations(3)
324 .TestX32();
325 }
326}
327
Marat Dukhanefc47b82019-11-18 09:25:38 -0800328TEST(CHANNEL_SHUFFLE_NC_X32, four_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700329 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
330 ChannelShuffleOperatorTester()
331 .batch_size(3)
332 .groups(4)
333 .group_channels(group_channels)
334 .iterations(3)
335 .TestX32();
336 }
337}
338
Marat Dukhanefc47b82019-11-18 09:25:38 -0800339TEST(CHANNEL_SHUFFLE_NC_X32, many_groups_small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700340 for (size_t groups = 5; groups < 12; groups += 3) {
341 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
342 ChannelShuffleOperatorTester()
343 .batch_size(3)
344 .groups(groups)
345 .group_channels(group_channels)
346 .iterations(3)
347 .TestX32();
348 }
349 }
350}
351
Marat Dukhanefc47b82019-11-18 09:25:38 -0800352TEST(CHANNEL_SHUFFLE_NC_X32, two_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700353 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
354 ChannelShuffleOperatorTester()
355 .batch_size(3)
356 .groups(2)
357 .group_channels(group_channels)
358 .input_stride(511)
359 .iterations(3)
360 .TestX32();
361 }
362}
363
Marat Dukhanefc47b82019-11-18 09:25:38 -0800364TEST(CHANNEL_SHUFFLE_NC_X32, three_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700365 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
366 ChannelShuffleOperatorTester()
367 .batch_size(3)
368 .groups(3)
369 .group_channels(group_channels)
370 .input_stride(511)
371 .iterations(3)
372 .TestX32();
373 }
374}
375
Marat Dukhanefc47b82019-11-18 09:25:38 -0800376TEST(CHANNEL_SHUFFLE_NC_X32, four_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700377 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
378 ChannelShuffleOperatorTester()
379 .batch_size(3)
380 .groups(4)
381 .group_channels(group_channels)
382 .input_stride(511)
383 .iterations(3)
384 .TestX32();
385 }
386}
387
Marat Dukhanefc47b82019-11-18 09:25:38 -0800388TEST(CHANNEL_SHUFFLE_NC_X32, many_groups_small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700389 for (size_t groups = 5; groups < 12; groups += 3) {
390 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
391 ChannelShuffleOperatorTester()
392 .batch_size(3)
393 .groups(groups)
394 .group_channels(group_channels)
395 .input_stride(1007)
396 .iterations(3)
397 .TestX32();
398 }
399 }
400}
401
Marat Dukhanefc47b82019-11-18 09:25:38 -0800402TEST(CHANNEL_SHUFFLE_NC_X32, two_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700403 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
404 ChannelShuffleOperatorTester()
405 .batch_size(3)
406 .groups(2)
407 .group_channels(group_channels)
408 .output_stride(513)
409 .iterations(3)
410 .TestX32();
411 }
412}
413
Marat Dukhanefc47b82019-11-18 09:25:38 -0800414TEST(CHANNEL_SHUFFLE_NC_X32, three_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700415 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
416 ChannelShuffleOperatorTester()
417 .batch_size(3)
418 .groups(3)
419 .group_channels(group_channels)
420 .output_stride(513)
421 .iterations(3)
422 .TestX32();
423 }
424}
425
Marat Dukhanefc47b82019-11-18 09:25:38 -0800426TEST(CHANNEL_SHUFFLE_NC_X32, four_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700427 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
428 ChannelShuffleOperatorTester()
429 .batch_size(3)
430 .groups(4)
431 .group_channels(group_channels)
432 .output_stride(513)
433 .iterations(3)
434 .TestX32();
435 }
436}
437
Marat Dukhanefc47b82019-11-18 09:25:38 -0800438TEST(CHANNEL_SHUFFLE_NC_X32, many_groups_small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700439 for (size_t groups = 5; groups < 12; groups += 3) {
440 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
441 ChannelShuffleOperatorTester()
442 .batch_size(3)
443 .groups(groups)
444 .group_channels(group_channels)
445 .output_stride(1111)
446 .iterations(3)
447 .TestX32();
448 }
449 }
450}
451
Marat Dukhanefc47b82019-11-18 09:25:38 -0800452TEST(CHANNEL_SHUFFLE_NC_X32, two_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700453 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
454 ChannelShuffleOperatorTester()
455 .batch_size(3)
456 .groups(2)
457 .group_channels(group_channels)
458 .input_stride(511)
459 .output_stride(513)
460 .iterations(3)
461 .TestX32();
462 }
463}
464
Marat Dukhanefc47b82019-11-18 09:25:38 -0800465TEST(CHANNEL_SHUFFLE_NC_X32, three_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700466 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
467 ChannelShuffleOperatorTester()
468 .batch_size(3)
469 .groups(3)
470 .group_channels(group_channels)
471 .input_stride(511)
472 .output_stride(513)
473 .iterations(3)
474 .TestX32();
475 }
476}
477
Marat Dukhanefc47b82019-11-18 09:25:38 -0800478TEST(CHANNEL_SHUFFLE_NC_X32, four_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700479 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
480 ChannelShuffleOperatorTester()
481 .batch_size(3)
482 .groups(4)
483 .group_channels(group_channels)
484 .input_stride(511)
485 .output_stride(513)
486 .iterations(3)
487 .TestX32();
488 }
489}
490
Marat Dukhanefc47b82019-11-18 09:25:38 -0800491TEST(CHANNEL_SHUFFLE_NC_X32, many_groups_small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700492 for (size_t groups = 5; groups < 12; groups += 3) {
493 for (size_t group_channels = 1; group_channels < 100; group_channels += 15) {
494 ChannelShuffleOperatorTester()
495 .batch_size(3)
496 .groups(groups)
497 .group_channels(group_channels)
498 .input_stride(1007)
499 .output_stride(1111)
500 .iterations(3)
501 .TestX32();
502 }
503 }
504}