blob: a25a2e90388688900817abc425d4f956203234c7 [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 "fully-connected-operator-tester.h"
12
13
Marat Dukhan08b7a972020-07-14 18:17:29 -070014TEST(FULLY_CONNECTED_NC_QU8, unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070015 FullyConnectedOperatorTester()
16 .batch_size(1)
17 .input_channels(23)
18 .output_channels(19)
19 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070020 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070021}
22
Marat Dukhan08b7a972020-07-14 18:17:29 -070023TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_qmin) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070024 FullyConnectedOperatorTester()
25 .batch_size(1)
26 .input_channels(23)
27 .output_channels(19)
28 .qmin(128)
29 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070030 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070031}
32
Marat Dukhan08b7a972020-07-14 18:17:29 -070033TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_qmax) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070034 FullyConnectedOperatorTester()
35 .batch_size(1)
36 .input_channels(23)
37 .output_channels(19)
38 .qmax(128)
39 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070040 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070041}
42
Marat Dukhan08b7a972020-07-14 18:17:29 -070043TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070044 FullyConnectedOperatorTester()
45 .batch_size(1)
46 .input_channels(23)
47 .input_stride(28)
48 .output_channels(19)
49 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070050 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070051}
52
Marat Dukhan08b7a972020-07-14 18:17:29 -070053TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070054 FullyConnectedOperatorTester()
55 .batch_size(1)
56 .input_channels(23)
57 .output_channels(19)
58 .output_stride(29)
59 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070060 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070061}
62
Marat Dukhan08b7a972020-07-14 18:17:29 -070063TEST(FULLY_CONNECTED_NC_QU8, unit_batch_transpose_weights) {
Marat Dukhanc4f0ff92019-12-03 14:59:08 -080064 FullyConnectedOperatorTester()
65 .transpose_weights(true)
66 .batch_size(1)
67 .input_channels(23)
68 .output_channels(19)
69 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070070 .TestQU8();
Marat Dukhanc4f0ff92019-12-03 14:59:08 -080071}
72
Marat Dukhan08b7a972020-07-14 18:17:29 -070073TEST(FULLY_CONNECTED_NC_QU8, unit_batch_without_bias) {
Marat Dukhanf568f082019-10-30 09:47:07 -070074 FullyConnectedOperatorTester()
75 .has_bias(false)
76 .batch_size(1)
77 .input_channels(23)
78 .output_channels(19)
79 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070080 .TestQU8();
Marat Dukhanf568f082019-10-30 09:47:07 -070081}
82
Marat Dukhan08b7a972020-07-14 18:17:29 -070083TEST(FULLY_CONNECTED_NC_QU8, small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070084 FullyConnectedOperatorTester()
85 .batch_size(12)
86 .input_channels(23)
87 .output_channels(19)
88 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070089 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070090}
91
Marat Dukhan08b7a972020-07-14 18:17:29 -070092TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_qmin) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070093 FullyConnectedOperatorTester()
94 .batch_size(12)
95 .input_channels(23)
96 .output_channels(19)
97 .qmin(128)
98 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070099 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700100}
101
Marat Dukhan08b7a972020-07-14 18:17:29 -0700102TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_qmax) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700103 FullyConnectedOperatorTester()
104 .batch_size(12)
105 .input_channels(23)
106 .output_channels(19)
107 .qmax(128)
108 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700109 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700110}
111
Marat Dukhan08b7a972020-07-14 18:17:29 -0700112TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700113 FullyConnectedOperatorTester()
114 .batch_size(12)
115 .input_channels(23)
116 .input_stride(28)
117 .output_channels(19)
118 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700119 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700120}
121
Marat Dukhan08b7a972020-07-14 18:17:29 -0700122TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700123 FullyConnectedOperatorTester()
124 .batch_size(12)
125 .input_channels(23)
126 .output_channels(19)
127 .output_stride(29)
128 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700129 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700130}
131
Marat Dukhan08b7a972020-07-14 18:17:29 -0700132TEST(FULLY_CONNECTED_NC_QU8, small_batch_transpose_weights) {
Marat Dukhanc4f0ff92019-12-03 14:59:08 -0800133 FullyConnectedOperatorTester()
134 .transpose_weights(true)
135 .batch_size(12)
136 .input_channels(23)
137 .output_channels(19)
138 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700139 .TestQU8();
Marat Dukhanc4f0ff92019-12-03 14:59:08 -0800140}
141
Marat Dukhan08b7a972020-07-14 18:17:29 -0700142TEST(FULLY_CONNECTED_NC_QU8, small_batch_without_bias) {
Marat Dukhanf568f082019-10-30 09:47:07 -0700143 FullyConnectedOperatorTester()
144 .has_bias(false)
145 .batch_size(12)
146 .input_channels(23)
147 .output_channels(19)
148 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700149 .TestQU8();
Marat Dukhanf568f082019-10-30 09:47:07 -0700150}
151
Marat Dukhanefc47b82019-11-18 09:25:38 -0800152TEST(FULLY_CONNECTED_NC_F32, unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700153 FullyConnectedOperatorTester()
154 .batch_size(1)
155 .input_channels(23)
156 .output_channels(19)
157 .iterations(3)
158 .TestF32();
159}
160
Marat Dukhanefc47b82019-11-18 09:25:38 -0800161TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_qmin) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700162 FullyConnectedOperatorTester()
163 .batch_size(1)
164 .input_channels(23)
165 .output_channels(19)
166 .qmin(128)
167 .iterations(3)
168 .TestF32();
169}
170
Marat Dukhanefc47b82019-11-18 09:25:38 -0800171TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_qmax) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700172 FullyConnectedOperatorTester()
173 .batch_size(1)
174 .input_channels(23)
175 .output_channels(19)
176 .qmax(128)
177 .iterations(3)
178 .TestF32();
179}
180
Marat Dukhanefc47b82019-11-18 09:25:38 -0800181TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700182 FullyConnectedOperatorTester()
183 .batch_size(1)
184 .input_channels(23)
185 .input_stride(28)
186 .output_channels(19)
187 .iterations(3)
188 .TestF32();
189}
190
Marat Dukhanefc47b82019-11-18 09:25:38 -0800191TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700192 FullyConnectedOperatorTester()
193 .batch_size(1)
194 .input_channels(23)
195 .output_channels(19)
196 .output_stride(29)
197 .iterations(3)
198 .TestF32();
199}
200
Marat Dukhanc4f0ff92019-12-03 14:59:08 -0800201TEST(FULLY_CONNECTED_NC_F32, unit_batch_transpose_weights) {
202 FullyConnectedOperatorTester()
203 .transpose_weights(true)
204 .batch_size(1)
205 .input_channels(23)
206 .output_channels(19)
207 .iterations(3)
208 .TestF32();
209}
210
Marat Dukhanefc47b82019-11-18 09:25:38 -0800211TEST(FULLY_CONNECTED_NC_F32, unit_batch_without_bias) {
Marat Dukhanf568f082019-10-30 09:47:07 -0700212 FullyConnectedOperatorTester()
213 .has_bias(false)
214 .batch_size(1)
215 .input_channels(23)
216 .output_channels(19)
217 .iterations(3)
218 .TestF32();
219}
220
Marat Dukhanefc47b82019-11-18 09:25:38 -0800221TEST(FULLY_CONNECTED_NC_F32, small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700222 FullyConnectedOperatorTester()
223 .batch_size(12)
224 .input_channels(23)
225 .output_channels(19)
226 .iterations(3)
227 .TestF32();
228}
229
Marat Dukhanefc47b82019-11-18 09:25:38 -0800230TEST(FULLY_CONNECTED_NC_F32, small_batch_with_qmin) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700231 FullyConnectedOperatorTester()
232 .batch_size(12)
233 .input_channels(23)
234 .output_channels(19)
235 .qmin(128)
236 .iterations(3)
237 .TestF32();
238}
239
Marat Dukhanefc47b82019-11-18 09:25:38 -0800240TEST(FULLY_CONNECTED_NC_F32, small_batch_with_qmax) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700241 FullyConnectedOperatorTester()
242 .batch_size(12)
243 .input_channels(23)
244 .output_channels(19)
245 .qmax(128)
246 .iterations(3)
247 .TestF32();
248}
249
Marat Dukhanefc47b82019-11-18 09:25:38 -0800250TEST(FULLY_CONNECTED_NC_F32, small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700251 FullyConnectedOperatorTester()
252 .batch_size(12)
253 .input_channels(23)
254 .input_stride(28)
255 .output_channels(19)
256 .iterations(3)
257 .TestF32();
258}
259
Marat Dukhanefc47b82019-11-18 09:25:38 -0800260TEST(FULLY_CONNECTED_NC_F32, small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700261 FullyConnectedOperatorTester()
262 .batch_size(12)
263 .input_channels(23)
264 .output_channels(19)
265 .output_stride(29)
266 .iterations(3)
267 .TestF32();
268}
Marat Dukhanf568f082019-10-30 09:47:07 -0700269
Marat Dukhanc4f0ff92019-12-03 14:59:08 -0800270TEST(FULLY_CONNECTED_NC_F32, small_batch_transpose_weights) {
271 FullyConnectedOperatorTester()
272 .transpose_weights(true)
273 .batch_size(12)
274 .input_channels(23)
275 .output_channels(19)
276 .iterations(3)
277 .TestF32();
278}
279
Marat Dukhanefc47b82019-11-18 09:25:38 -0800280TEST(FULLY_CONNECTED_NC_F32, small_batch_without_bias) {
Marat Dukhanf568f082019-10-30 09:47:07 -0700281 FullyConnectedOperatorTester()
282 .has_bias(false)
283 .batch_size(12)
284 .input_channels(23)
285 .output_channels(19)
286 .iterations(3)
287 .TestF32();
288}