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