1 // 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 "sigmoid-operator-tester.h"
12
13
TEST(SIGMOID_NC_F16,unit_batch)14 TEST(SIGMOID_NC_F16, unit_batch) {
15 for (size_t channels = 1; channels < 100; channels += 15) {
16 SigmoidOperatorTester()
17 .batch_size(1)
18 .channels(channels)
19 .iterations(3)
20 .TestF16();
21 }
22 }
23
TEST(SIGMOID_NC_F16,small_batch)24 TEST(SIGMOID_NC_F16, small_batch) {
25 for (size_t channels = 1; channels < 100; channels += 15) {
26 SigmoidOperatorTester()
27 .batch_size(3)
28 .channels(channels)
29 .iterations(3)
30 .TestF16();
31 }
32 }
33
TEST(SIGMOID_NC_F16,small_batch_with_input_stride)34 TEST(SIGMOID_NC_F16, small_batch_with_input_stride) {
35 for (size_t channels = 1; channels < 100; channels += 15) {
36 SigmoidOperatorTester()
37 .batch_size(3)
38 .channels(channels)
39 .input_stride(129)
40 .iterations(3)
41 .TestF16();
42 }
43 }
44
TEST(SIGMOID_NC_F16,small_batch_with_output_stride)45 TEST(SIGMOID_NC_F16, small_batch_with_output_stride) {
46 for (size_t channels = 1; channels < 100; channels += 15) {
47 SigmoidOperatorTester()
48 .batch_size(3)
49 .channels(channels)
50 .output_stride(117)
51 .iterations(3)
52 .TestF16();
53 }
54 }
55
TEST(SIGMOID_NC_F16,strided_batch)56 TEST(SIGMOID_NC_F16, strided_batch) {
57 for (size_t channels = 1; channels < 100; channels += 15) {
58 SigmoidOperatorTester()
59 .batch_size(3)
60 .channels(channels)
61 .input_stride(129)
62 .output_stride(117)
63 .iterations(3)
64 .TestF16();
65 }
66 }
67
68
TEST(SIGMOID_NC_F32,unit_batch)69 TEST(SIGMOID_NC_F32, unit_batch) {
70 for (size_t channels = 1; channels < 100; channels += 15) {
71 SigmoidOperatorTester()
72 .batch_size(1)
73 .channels(channels)
74 .iterations(3)
75 .TestF32();
76 }
77 }
78
TEST(SIGMOID_NC_F32,small_batch)79 TEST(SIGMOID_NC_F32, small_batch) {
80 for (size_t channels = 1; channels < 100; channels += 15) {
81 SigmoidOperatorTester()
82 .batch_size(3)
83 .channels(channels)
84 .iterations(3)
85 .TestF32();
86 }
87 }
88
TEST(SIGMOID_NC_F32,small_batch_with_input_stride)89 TEST(SIGMOID_NC_F32, small_batch_with_input_stride) {
90 for (size_t channels = 1; channels < 100; channels += 15) {
91 SigmoidOperatorTester()
92 .batch_size(3)
93 .channels(channels)
94 .input_stride(129)
95 .iterations(3)
96 .TestF32();
97 }
98 }
99
TEST(SIGMOID_NC_F32,small_batch_with_output_stride)100 TEST(SIGMOID_NC_F32, small_batch_with_output_stride) {
101 for (size_t channels = 1; channels < 100; channels += 15) {
102 SigmoidOperatorTester()
103 .batch_size(3)
104 .channels(channels)
105 .output_stride(117)
106 .iterations(3)
107 .TestF32();
108 }
109 }
110
TEST(SIGMOID_NC_F32,strided_batch)111 TEST(SIGMOID_NC_F32, strided_batch) {
112 for (size_t channels = 1; channels < 100; channels += 15) {
113 SigmoidOperatorTester()
114 .batch_size(3)
115 .channels(channels)
116 .input_stride(129)
117 .output_stride(117)
118 .iterations(3)
119 .TestF32();
120 }
121 }
122
123
TEST(SIGMOID_NC_QS8,unit_batch)124 TEST(SIGMOID_NC_QS8, unit_batch) {
125 for (size_t channels = 1; channels < 100; channels += 15) {
126 SigmoidOperatorTester()
127 .batch_size(1)
128 .channels(channels)
129 .iterations(3)
130 .TestQS8();
131 }
132 }
133
TEST(SIGMOID_NC_QS8,unit_batch_with_qmin)134 TEST(SIGMOID_NC_QS8, unit_batch_with_qmin) {
135 for (size_t channels = 1; channels < 100; channels += 15) {
136 SigmoidOperatorTester()
137 .batch_size(1)
138 .channels(channels)
139 .qmin(128)
140 .iterations(3)
141 .TestQS8();
142 }
143 }
144
TEST(SIGMOID_NC_QS8,unit_batch_with_qmax)145 TEST(SIGMOID_NC_QS8, unit_batch_with_qmax) {
146 for (size_t channels = 1; channels < 100; channels += 15) {
147 SigmoidOperatorTester()
148 .batch_size(1)
149 .channels(channels)
150 .qmax(128)
151 .iterations(3)
152 .TestQS8();
153 }
154 }
155
TEST(SIGMOID_NC_QS8,unit_batch_with_input_scale)156 TEST(SIGMOID_NC_QS8, unit_batch_with_input_scale) {
157 for (size_t channels = 1; channels < 100; channels += 15) {
158 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
159 SigmoidOperatorTester()
160 .batch_size(1)
161 .channels(channels)
162 .input_scale(input_scale)
163 .iterations(1)
164 .TestQS8();
165 }
166 }
167 }
168
TEST(SIGMOID_NC_QS8,unit_batch_with_input_zero_point)169 TEST(SIGMOID_NC_QS8, unit_batch_with_input_zero_point) {
170 for (size_t channels = 1; channels < 100; channels += 15) {
171 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
172 SigmoidOperatorTester()
173 .batch_size(1)
174 .channels(channels)
175 .input_zero_point(uint8_t(input_zero_point))
176 .iterations(1)
177 .TestQS8();
178 }
179 }
180 }
181
TEST(SIGMOID_NC_QS8,small_batch)182 TEST(SIGMOID_NC_QS8, small_batch) {
183 for (size_t channels = 1; channels < 100; channels += 15) {
184 SigmoidOperatorTester()
185 .batch_size(3)
186 .channels(channels)
187 .iterations(3)
188 .TestQS8();
189 }
190 }
191
TEST(SIGMOID_NC_QS8,small_batch_with_input_stride)192 TEST(SIGMOID_NC_QS8, small_batch_with_input_stride) {
193 for (size_t channels = 1; channels < 100; channels += 15) {
194 SigmoidOperatorTester()
195 .batch_size(3)
196 .channels(channels)
197 .input_stride(129)
198 .iterations(3)
199 .TestQS8();
200 }
201 }
202
TEST(SIGMOID_NC_QS8,small_batch_with_output_stride)203 TEST(SIGMOID_NC_QS8, small_batch_with_output_stride) {
204 for (size_t channels = 1; channels < 100; channels += 15) {
205 SigmoidOperatorTester()
206 .batch_size(3)
207 .channels(channels)
208 .output_stride(117)
209 .iterations(3)
210 .TestQS8();
211 }
212 }
213
TEST(SIGMOID_NC_QS8,small_batch_with_qmin)214 TEST(SIGMOID_NC_QS8, small_batch_with_qmin) {
215 for (size_t channels = 1; channels < 100; channels += 15) {
216 SigmoidOperatorTester()
217 .batch_size(3)
218 .channels(channels)
219 .qmin(128)
220 .iterations(3)
221 .TestQS8();
222 }
223 }
224
TEST(SIGMOID_NC_QS8,small_batch_with_qmax)225 TEST(SIGMOID_NC_QS8, small_batch_with_qmax) {
226 for (size_t channels = 1; channels < 100; channels += 15) {
227 SigmoidOperatorTester()
228 .batch_size(3)
229 .channels(channels)
230 .qmax(128)
231 .iterations(3)
232 .TestQS8();
233 }
234 }
235
TEST(SIGMOID_NC_QS8,small_batch_with_input_scale)236 TEST(SIGMOID_NC_QS8, small_batch_with_input_scale) {
237 for (size_t channels = 1; channels < 100; channels += 15) {
238 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
239 SigmoidOperatorTester()
240 .batch_size(3)
241 .channels(channels)
242 .input_scale(input_scale)
243 .iterations(1)
244 .TestQS8();
245 }
246 }
247 }
248
TEST(SIGMOID_NC_QS8,small_batch_with_input_zero_point)249 TEST(SIGMOID_NC_QS8, small_batch_with_input_zero_point) {
250 for (size_t channels = 1; channels < 100; channels += 15) {
251 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
252 SigmoidOperatorTester()
253 .batch_size(3)
254 .channels(channels)
255 .input_zero_point(uint8_t(input_zero_point))
256 .iterations(1)
257 .TestQS8();
258 }
259 }
260 }
261
TEST(SIGMOID_NC_QS8,strided_batch)262 TEST(SIGMOID_NC_QS8, strided_batch) {
263 for (size_t channels = 1; channels < 100; channels += 15) {
264 SigmoidOperatorTester()
265 .batch_size(3)
266 .channels(channels)
267 .input_stride(129)
268 .output_stride(117)
269 .iterations(3)
270 .TestQS8();
271 }
272 }
273
TEST(SIGMOID_NC_QS8,strided_batch_with_qmin)274 TEST(SIGMOID_NC_QS8, strided_batch_with_qmin) {
275 for (size_t channels = 1; channels < 100; channels += 15) {
276 SigmoidOperatorTester()
277 .batch_size(3)
278 .channels(channels)
279 .input_stride(129)
280 .output_stride(117)
281 .qmin(128)
282 .iterations(3)
283 .TestQS8();
284 }
285 }
286
TEST(SIGMOID_NC_QS8,strided_batch_with_qmax)287 TEST(SIGMOID_NC_QS8, strided_batch_with_qmax) {
288 for (size_t channels = 1; channels < 100; channels += 15) {
289 SigmoidOperatorTester()
290 .batch_size(3)
291 .channels(channels)
292 .input_stride(129)
293 .output_stride(117)
294 .qmax(128)
295 .iterations(3)
296 .TestQS8();
297 }
298 }
299
TEST(SIGMOID_NC_QS8,strided_batch_with_input_scale)300 TEST(SIGMOID_NC_QS8, strided_batch_with_input_scale) {
301 for (size_t channels = 1; channels < 100; channels += 15) {
302 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
303 SigmoidOperatorTester()
304 .batch_size(3)
305 .channels(channels)
306 .input_stride(129)
307 .output_stride(117)
308 .input_scale(input_scale)
309 .iterations(1)
310 .TestQS8();
311 }
312 }
313 }
314
TEST(SIGMOID_NC_QS8,strided_batch_with_input_zero_point)315 TEST(SIGMOID_NC_QS8, strided_batch_with_input_zero_point) {
316 for (size_t channels = 1; channels < 100; channels += 15) {
317 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
318 SigmoidOperatorTester()
319 .batch_size(3)
320 .channels(channels)
321 .input_stride(129)
322 .output_stride(117)
323 .input_zero_point(uint8_t(input_zero_point))
324 .iterations(1)
325 .TestQS8();
326 }
327 }
328 }
329
330
TEST(SIGMOID_NC_QU8,unit_batch)331 TEST(SIGMOID_NC_QU8, unit_batch) {
332 for (size_t channels = 1; channels < 100; channels += 15) {
333 SigmoidOperatorTester()
334 .batch_size(1)
335 .channels(channels)
336 .iterations(3)
337 .TestQU8();
338 }
339 }
340
TEST(SIGMOID_NC_QU8,unit_batch_with_qmin)341 TEST(SIGMOID_NC_QU8, unit_batch_with_qmin) {
342 for (size_t channels = 1; channels < 100; channels += 15) {
343 SigmoidOperatorTester()
344 .batch_size(1)
345 .channels(channels)
346 .qmin(128)
347 .iterations(3)
348 .TestQU8();
349 }
350 }
351
TEST(SIGMOID_NC_QU8,unit_batch_with_qmax)352 TEST(SIGMOID_NC_QU8, unit_batch_with_qmax) {
353 for (size_t channels = 1; channels < 100; channels += 15) {
354 SigmoidOperatorTester()
355 .batch_size(1)
356 .channels(channels)
357 .qmax(128)
358 .iterations(3)
359 .TestQU8();
360 }
361 }
362
TEST(SIGMOID_NC_QU8,unit_batch_with_input_scale)363 TEST(SIGMOID_NC_QU8, unit_batch_with_input_scale) {
364 for (size_t channels = 1; channels < 100; channels += 15) {
365 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
366 SigmoidOperatorTester()
367 .batch_size(1)
368 .channels(channels)
369 .input_scale(input_scale)
370 .iterations(1)
371 .TestQU8();
372 }
373 }
374 }
375
TEST(SIGMOID_NC_QU8,unit_batch_with_input_zero_point)376 TEST(SIGMOID_NC_QU8, unit_batch_with_input_zero_point) {
377 for (size_t channels = 1; channels < 100; channels += 15) {
378 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
379 SigmoidOperatorTester()
380 .batch_size(1)
381 .channels(channels)
382 .input_zero_point(uint8_t(input_zero_point))
383 .iterations(1)
384 .TestQU8();
385 }
386 }
387 }
388
TEST(SIGMOID_NC_QU8,small_batch)389 TEST(SIGMOID_NC_QU8, small_batch) {
390 for (size_t channels = 1; channels < 100; channels += 15) {
391 SigmoidOperatorTester()
392 .batch_size(3)
393 .channels(channels)
394 .iterations(3)
395 .TestQU8();
396 }
397 }
398
TEST(SIGMOID_NC_QU8,small_batch_with_input_stride)399 TEST(SIGMOID_NC_QU8, small_batch_with_input_stride) {
400 for (size_t channels = 1; channels < 100; channels += 15) {
401 SigmoidOperatorTester()
402 .batch_size(3)
403 .channels(channels)
404 .input_stride(129)
405 .iterations(3)
406 .TestQU8();
407 }
408 }
409
TEST(SIGMOID_NC_QU8,small_batch_with_output_stride)410 TEST(SIGMOID_NC_QU8, small_batch_with_output_stride) {
411 for (size_t channels = 1; channels < 100; channels += 15) {
412 SigmoidOperatorTester()
413 .batch_size(3)
414 .channels(channels)
415 .output_stride(117)
416 .iterations(3)
417 .TestQU8();
418 }
419 }
420
TEST(SIGMOID_NC_QU8,small_batch_with_qmin)421 TEST(SIGMOID_NC_QU8, small_batch_with_qmin) {
422 for (size_t channels = 1; channels < 100; channels += 15) {
423 SigmoidOperatorTester()
424 .batch_size(3)
425 .channels(channels)
426 .qmin(128)
427 .iterations(3)
428 .TestQU8();
429 }
430 }
431
TEST(SIGMOID_NC_QU8,small_batch_with_qmax)432 TEST(SIGMOID_NC_QU8, small_batch_with_qmax) {
433 for (size_t channels = 1; channels < 100; channels += 15) {
434 SigmoidOperatorTester()
435 .batch_size(3)
436 .channels(channels)
437 .qmax(128)
438 .iterations(3)
439 .TestQU8();
440 }
441 }
442
TEST(SIGMOID_NC_QU8,small_batch_with_input_scale)443 TEST(SIGMOID_NC_QU8, small_batch_with_input_scale) {
444 for (size_t channels = 1; channels < 100; channels += 15) {
445 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
446 SigmoidOperatorTester()
447 .batch_size(3)
448 .channels(channels)
449 .input_scale(input_scale)
450 .iterations(1)
451 .TestQU8();
452 }
453 }
454 }
455
TEST(SIGMOID_NC_QU8,small_batch_with_input_zero_point)456 TEST(SIGMOID_NC_QU8, small_batch_with_input_zero_point) {
457 for (size_t channels = 1; channels < 100; channels += 15) {
458 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
459 SigmoidOperatorTester()
460 .batch_size(3)
461 .channels(channels)
462 .input_zero_point(uint8_t(input_zero_point))
463 .iterations(1)
464 .TestQU8();
465 }
466 }
467 }
468
TEST(SIGMOID_NC_QU8,strided_batch)469 TEST(SIGMOID_NC_QU8, strided_batch) {
470 for (size_t channels = 1; channels < 100; channels += 15) {
471 SigmoidOperatorTester()
472 .batch_size(3)
473 .channels(channels)
474 .input_stride(129)
475 .output_stride(117)
476 .iterations(3)
477 .TestQU8();
478 }
479 }
480
TEST(SIGMOID_NC_QU8,strided_batch_with_qmin)481 TEST(SIGMOID_NC_QU8, strided_batch_with_qmin) {
482 for (size_t channels = 1; channels < 100; channels += 15) {
483 SigmoidOperatorTester()
484 .batch_size(3)
485 .channels(channels)
486 .input_stride(129)
487 .output_stride(117)
488 .qmin(128)
489 .iterations(3)
490 .TestQU8();
491 }
492 }
493
TEST(SIGMOID_NC_QU8,strided_batch_with_qmax)494 TEST(SIGMOID_NC_QU8, strided_batch_with_qmax) {
495 for (size_t channels = 1; channels < 100; channels += 15) {
496 SigmoidOperatorTester()
497 .batch_size(3)
498 .channels(channels)
499 .input_stride(129)
500 .output_stride(117)
501 .qmax(128)
502 .iterations(3)
503 .TestQU8();
504 }
505 }
506
TEST(SIGMOID_NC_QU8,strided_batch_with_input_scale)507 TEST(SIGMOID_NC_QU8, strided_batch_with_input_scale) {
508 for (size_t channels = 1; channels < 100; channels += 15) {
509 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
510 SigmoidOperatorTester()
511 .batch_size(3)
512 .channels(channels)
513 .input_stride(129)
514 .output_stride(117)
515 .input_scale(input_scale)
516 .iterations(1)
517 .TestQU8();
518 }
519 }
520 }
521
TEST(SIGMOID_NC_QU8,strided_batch_with_input_zero_point)522 TEST(SIGMOID_NC_QU8, strided_batch_with_input_zero_point) {
523 for (size_t channels = 1; channels < 100; channels += 15) {
524 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
525 SigmoidOperatorTester()
526 .batch_size(3)
527 .channels(channels)
528 .input_stride(129)
529 .output_stride(117)
530 .input_zero_point(uint8_t(input_zero_point))
531 .iterations(1)
532 .TestQU8();
533 }
534 }
535 }
536