• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 Google LLC
2 //
3 // This source code is licensed under the BSD-style license found in the
4 // LICENSE file in the root directory of this source tree.
5 
6 #include <gtest/gtest.h>
7 
8 #include "elu-operator-tester.h"
9 
10 
TEST(ELU_NC_QS8,unit_batch)11 TEST(ELU_NC_QS8, unit_batch) {
12   for (size_t channels = 1; channels < 100; channels += 15) {
13     ELUOperatorTester()
14       .batch_size(1)
15       .channels(channels)
16       .iterations(3)
17       .TestQS8();
18   }
19 }
20 
TEST(ELU_NC_QS8,unit_batch_with_qmin)21 TEST(ELU_NC_QS8, unit_batch_with_qmin) {
22   for (size_t channels = 1; channels < 100; channels += 15) {
23     ELUOperatorTester()
24       .batch_size(1)
25       .channels(channels)
26       .qmin(128)
27       .iterations(3)
28       .TestQS8();
29   }
30 }
31 
TEST(ELU_NC_QS8,unit_batch_with_qmax)32 TEST(ELU_NC_QS8, unit_batch_with_qmax) {
33   for (size_t channels = 1; channels < 100; channels += 15) {
34     ELUOperatorTester()
35       .batch_size(1)
36       .channels(channels)
37       .qmax(128)
38       .iterations(3)
39       .TestQS8();
40   }
41 }
42 
TEST(ELU_NC_QS8,unit_batch_with_input_scale)43 TEST(ELU_NC_QS8, unit_batch_with_input_scale) {
44   for (size_t channels = 1; channels < 100; channels += 15) {
45     for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
46       ELUOperatorTester()
47         .batch_size(1)
48         .channels(channels)
49         .input_scale(input_scale)
50         .iterations(1)
51         .TestQS8();
52     }
53   }
54 }
55 
TEST(ELU_NC_QS8,unit_batch_with_input_zero_point)56 TEST(ELU_NC_QS8, unit_batch_with_input_zero_point) {
57   for (size_t channels = 1; channels < 100; channels += 15) {
58     for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
59       ELUOperatorTester()
60         .batch_size(1)
61         .channels(channels)
62         .input_zero_point(uint8_t(input_zero_point))
63         .iterations(1)
64         .TestQS8();
65     }
66   }
67 }
68 
TEST(ELU_NC_QS8,small_batch)69 TEST(ELU_NC_QS8, small_batch) {
70   for (size_t channels = 1; channels < 100; channels += 15) {
71     ELUOperatorTester()
72       .batch_size(3)
73       .channels(channels)
74       .iterations(3)
75       .TestQS8();
76   }
77 }
78 
TEST(ELU_NC_QS8,small_batch_with_input_stride)79 TEST(ELU_NC_QS8, small_batch_with_input_stride) {
80   for (size_t channels = 1; channels < 100; channels += 15) {
81     ELUOperatorTester()
82       .batch_size(3)
83       .channels(channels)
84       .input_stride(129)
85       .iterations(3)
86       .TestQS8();
87   }
88 }
89 
TEST(ELU_NC_QS8,small_batch_with_output_stride)90 TEST(ELU_NC_QS8, small_batch_with_output_stride) {
91   for (size_t channels = 1; channels < 100; channels += 15) {
92     ELUOperatorTester()
93       .batch_size(3)
94       .channels(channels)
95       .output_stride(117)
96       .iterations(3)
97       .TestQS8();
98   }
99 }
100 
TEST(ELU_NC_QS8,small_batch_with_qmin)101 TEST(ELU_NC_QS8, small_batch_with_qmin) {
102   for (size_t channels = 1; channels < 100; channels += 15) {
103     ELUOperatorTester()
104       .batch_size(3)
105       .channels(channels)
106       .qmin(128)
107       .iterations(3)
108       .TestQS8();
109   }
110 }
111 
TEST(ELU_NC_QS8,small_batch_with_qmax)112 TEST(ELU_NC_QS8, small_batch_with_qmax) {
113   for (size_t channels = 1; channels < 100; channels += 15) {
114     ELUOperatorTester()
115       .batch_size(3)
116       .channels(channels)
117       .qmax(128)
118       .iterations(3)
119       .TestQS8();
120   }
121 }
122 
TEST(ELU_NC_QS8,small_batch_with_input_scale)123 TEST(ELU_NC_QS8, small_batch_with_input_scale) {
124   for (size_t channels = 1; channels < 100; channels += 15) {
125     for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
126       ELUOperatorTester()
127         .batch_size(3)
128         .channels(channels)
129         .input_scale(input_scale)
130         .iterations(1)
131         .TestQS8();
132     }
133   }
134 }
135 
TEST(ELU_NC_QS8,small_batch_with_input_zero_point)136 TEST(ELU_NC_QS8, small_batch_with_input_zero_point) {
137   for (size_t channels = 1; channels < 100; channels += 15) {
138     for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
139       ELUOperatorTester()
140         .batch_size(3)
141         .channels(channels)
142         .input_zero_point(uint8_t(input_zero_point))
143         .iterations(1)
144         .TestQS8();
145     }
146   }
147 }
148 
TEST(ELU_NC_QS8,small_batch_with_alpha)149 TEST(ELU_NC_QS8, small_batch_with_alpha) {
150   for (size_t channels = 1; channels < 100; channels += 15) {
151     for (float alpha = 1.0e-4f; alpha < 1.0f; alpha *= 3.14159265f) {
152       ELUOperatorTester()
153         .batch_size(3)
154         .channels(channels)
155         .alpha(alpha)
156         .iterations(1)
157         .TestQS8();
158     }
159   }
160 }
161 
TEST(ELU_NC_QS8,strided_batch)162 TEST(ELU_NC_QS8, strided_batch) {
163   for (size_t channels = 1; channels < 100; channels += 15) {
164     ELUOperatorTester()
165       .batch_size(3)
166       .channels(channels)
167       .input_stride(129)
168       .output_stride(117)
169       .iterations(3)
170       .TestQS8();
171   }
172 }
173 
TEST(ELU_NC_QS8,strided_batch_with_qmin)174 TEST(ELU_NC_QS8, strided_batch_with_qmin) {
175   for (size_t channels = 1; channels < 100; channels += 15) {
176     ELUOperatorTester()
177       .batch_size(3)
178       .channels(channels)
179       .input_stride(129)
180       .output_stride(117)
181       .qmin(128)
182       .iterations(3)
183       .TestQS8();
184   }
185 }
186 
TEST(ELU_NC_QS8,strided_batch_with_qmax)187 TEST(ELU_NC_QS8, strided_batch_with_qmax) {
188   for (size_t channels = 1; channels < 100; channels += 15) {
189     ELUOperatorTester()
190       .batch_size(3)
191       .channels(channels)
192       .input_stride(129)
193       .output_stride(117)
194       .qmax(128)
195       .iterations(3)
196       .TestQS8();
197   }
198 }
199 
TEST(ELU_NC_QS8,strided_batch_with_input_scale)200 TEST(ELU_NC_QS8, strided_batch_with_input_scale) {
201   for (size_t channels = 1; channels < 100; channels += 15) {
202     for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
203       ELUOperatorTester()
204         .batch_size(3)
205         .channels(channels)
206         .input_stride(129)
207         .output_stride(117)
208         .input_scale(input_scale)
209         .iterations(1)
210         .TestQS8();
211     }
212   }
213 }
214 
TEST(ELU_NC_QS8,strided_batch_with_input_zero_point)215 TEST(ELU_NC_QS8, strided_batch_with_input_zero_point) {
216   for (size_t channels = 1; channels < 100; channels += 15) {
217     for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
218       ELUOperatorTester()
219         .batch_size(3)
220         .channels(channels)
221         .input_stride(129)
222         .output_stride(117)
223         .input_zero_point(uint8_t(input_zero_point))
224         .iterations(1)
225         .TestQS8();
226     }
227   }
228 }
229 
TEST(ELU_NC_QS8,strided_batch_with_alpha)230 TEST(ELU_NC_QS8, strided_batch_with_alpha) {
231   for (size_t channels = 1; channels < 100; channels += 15) {
232     for (float alpha = 1.0e-4f; alpha < 1.0f; alpha *= 3.14159265f) {
233       ELUOperatorTester()
234         .batch_size(3)
235         .channels(channels)
236         .input_stride(129)
237         .output_stride(117)
238         .alpha(alpha)
239         .iterations(1)
240         .TestQS8();
241     }
242   }
243 }
244 
TEST(ELU_NC_F32,unit_batch)245 TEST(ELU_NC_F32, unit_batch) {
246   for (size_t channels = 1; channels < 100; channels++) {
247     ELUOperatorTester()
248       .batch_size(1)
249       .channels(channels)
250       .iterations(3)
251       .TestF32();
252   }
253 }
254 
TEST(ELU_NC_F32,small_batch)255 TEST(ELU_NC_F32, small_batch) {
256   for (size_t channels = 1; channels < 100; channels++) {
257     ELUOperatorTester()
258       .batch_size(3)
259       .channels(channels)
260       .iterations(3)
261       .TestF32();
262   }
263 }
264 
TEST(ELU_NC_F32,small_batch_with_input_stride)265 TEST(ELU_NC_F32, small_batch_with_input_stride) {
266   for (size_t channels = 1; channels < 100; channels += 15) {
267     ELUOperatorTester()
268       .batch_size(3)
269       .channels(channels)
270       .input_stride(129)
271       .iterations(3)
272       .TestF32();
273   }
274 }
275 
TEST(ELU_NC_F32,small_batch_with_output_stride)276 TEST(ELU_NC_F32, small_batch_with_output_stride) {
277   for (size_t channels = 1; channels < 100; channels += 15) {
278     ELUOperatorTester()
279       .batch_size(3)
280       .channels(channels)
281       .output_stride(117)
282       .iterations(3)
283       .TestF32();
284   }
285 }
286 
TEST(ELU_NC_F32,small_batch_with_input_and_output_stride)287 TEST(ELU_NC_F32, small_batch_with_input_and_output_stride) {
288   for (size_t channels = 1; channels < 100; channels += 15) {
289     ELUOperatorTester()
290       .batch_size(3)
291       .channels(channels)
292       .input_stride(129)
293       .output_stride(117)
294       .iterations(3)
295       .TestF32();
296   }
297 }
298 
TEST(ELU_NC_F32,small_batch_with_alpha)299 TEST(ELU_NC_F32, small_batch_with_alpha) {
300   for (size_t batch_size = 1; batch_size <= 3; batch_size += 2) {
301     for (size_t channels = 1; channels < 100; channels += 15) {
302       for (float alpha = 1.0e-4f; alpha < 1.0f; alpha *= 3.14159265f) {
303         ELUOperatorTester()
304           .batch_size(3)
305           .channels(channels)
306           .alpha(alpha)
307           .iterations(1)
308           .TestF32();
309       }
310     }
311   }
312 }
313