xref: /aosp_15_r20/external/XNNPACK/bench/conv.h (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright (c) Facebook, Inc. and its affiliates.
2*4bdc9457SAndroid Build Coastguard Worker // All rights reserved.
3*4bdc9457SAndroid Build Coastguard Worker //
4*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 Google LLC
5*4bdc9457SAndroid Build Coastguard Worker //
6*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
7*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
8*4bdc9457SAndroid Build Coastguard Worker 
9*4bdc9457SAndroid Build Coastguard Worker #pragma once
10*4bdc9457SAndroid Build Coastguard Worker 
11*4bdc9457SAndroid Build Coastguard Worker #include <benchmark/benchmark.h>
12*4bdc9457SAndroid Build Coastguard Worker 
13*4bdc9457SAndroid Build Coastguard Worker 
14*4bdc9457SAndroid Build Coastguard Worker #define BENCHMARK_CONV(conv_fn) \
15*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, mobilenet_v1, "MobileNet v1")->Apply(MobileNetV1ConvArguments)->UseRealTime(); \
16*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, mobilenet_v2, "MobileNet v2")->Apply(MobileNetV2ConvArguments)->UseRealTime(); \
17*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, mobilenet_v3_small, "MobileNet v3 Small")->Apply(MobileNetV3SmallConvArguments)->UseRealTime(); \
18*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, mobilenet_v3_large, "MobileNet v3 Large")->Apply(MobileNetV3LargeConvArguments)->UseRealTime(); \
19*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v1_g1, "ShuffleNet v1 (1 group)")->Apply(ShuffleNetV1G1ConvArguments)->UseRealTime(); \
20*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v1_g2, "ShuffleNet v1 (2 groups)")->Apply(ShuffleNetV1G2ConvArguments)->UseRealTime(); \
21*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v1_g3, "ShuffleNet v1 (3 groups)")->Apply(ShuffleNetV1G3ConvArguments)->UseRealTime(); \
22*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v1_g4, "ShuffleNet v1 (4 groups)")->Apply(ShuffleNetV1G4ConvArguments)->UseRealTime(); \
23*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v1_g8, "ShuffleNet v1 (8 groups)")->Apply(ShuffleNetV1G8ConvArguments)->UseRealTime(); \
24*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v2_x05, "ShuffleNet v2 0.5X")->Apply(ShuffleNetV2X05ConvArguments)->UseRealTime(); \
25*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v2_x10, "ShuffleNet v2 1.0X")->Apply(ShuffleNetV2X10ConvArguments)->UseRealTime(); \
26*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v2_x15, "ShuffleNet v2 1.5X")->Apply(ShuffleNetV2X15ConvArguments)->UseRealTime(); \
27*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, shufflenet_v2_x20, "ShuffleNet v2 2.0X")->Apply(ShuffleNetV2X20ConvArguments)->UseRealTime(); \
28*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, inception_v3, "Inception v3")->Apply(InceptionV3ConvArguments)->UseRealTime(); \
29*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, resnet18, "ResNet-18")->Apply(ResNet18ConvArguments)->UseRealTime(); \
30*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, resnet50, "ResNet-50")->Apply(ResNet50ConvArguments)->UseRealTime(); \
31*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, squeezenet_v10, "SqueezeNet 1.0")->Apply(SqueezeNetV10ConvArguments)->UseRealTime(); \
32*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, squeezenet_v11, "SqueezeNet 1.1")->Apply(SqueezeNetV11ConvArguments)->UseRealTime(); \
33*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, vgg, "VGG")->Apply(VGGConvArguments)->UseRealTime(); \
34*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, srcnn915, "SRCNN (9-1-5)")->Apply(SRCNN915ConvArguments)->UseRealTime(); \
35*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, srcnn935, "SRCNN (9-3-5)")->Apply(SRCNN935ConvArguments)->UseRealTime(); \
36*4bdc9457SAndroid Build Coastguard Worker   BENCHMARK_CAPTURE(conv_fn, srcnn955, "SRCNN (9-5-5)")->Apply(SRCNN955ConvArguments)->UseRealTime();
37*4bdc9457SAndroid Build Coastguard Worker 
38*4bdc9457SAndroid Build Coastguard Worker 
39*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 1 group.
ShuffleNetV1G1ConvArguments(benchmark::internal::Benchmark * b)40*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G1ConvArguments(benchmark::internal::Benchmark* b) {
41*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
42*4bdc9457SAndroid Build Coastguard Worker 
43*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
44*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
45*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
46*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-2 unit **************/
47*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
48*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   36});
49*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   36,  120});
50*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-1 units *************/
51*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
52*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  144,   36});
53*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   36,  144});
54*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-2 unit **************/
55*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
56*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  144,   72});
57*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   72,  144});
58*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-1 units *************/
59*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
60*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  288,   72});
61*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   72,  288});
62*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-2 unit **************/
63*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
64*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  288,  144});
65*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  144,  288});
66*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-1 units *************/
67*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
68*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  576,  144});
69*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  144,  576});
70*4bdc9457SAndroid Build Coastguard Worker }
71*4bdc9457SAndroid Build Coastguard Worker 
72*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 2 groups.
ShuffleNetV1G2ConvArguments(benchmark::internal::Benchmark * b)73*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G2ConvArguments(benchmark::internal::Benchmark* b) {
74*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
75*4bdc9457SAndroid Build Coastguard Worker 
76*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
77*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
78*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
79*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-2 unit **************/
80*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
81*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   50});
82*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   25,   88});
83*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-1 units *************/
84*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
85*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  100,   25});
86*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   25,  100});
87*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-2 unit **************/
88*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
89*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  100,   50});
90*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   50,  100});
91*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-1 units *************/
92*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
93*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  200,   50});
94*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   50,  200});
95*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-2 unit **************/
96*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
97*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  200,  100});
98*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  100,  200});
99*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-1 units *************/
100*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
101*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  400,  100});
102*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  100,  400});
103*4bdc9457SAndroid Build Coastguard Worker }
104*4bdc9457SAndroid Build Coastguard Worker 
105*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 3 groups.
ShuffleNetV1G3ConvArguments(benchmark::internal::Benchmark * b)106*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G3ConvArguments(benchmark::internal::Benchmark* b) {
107*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
108*4bdc9457SAndroid Build Coastguard Worker 
109*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
110*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
111*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
112*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-2 unit **************/
113*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
114*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   60});
115*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   20,   72});
116*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-1 units *************/
117*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
118*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   80,   20});
119*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   20,   80});
120*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-2 unit **************/
121*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
122*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   80,   40});
123*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   40,   80});
124*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-1 units *************/
125*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
126*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  160,   40});
127*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   40,  160});
128*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-2 unit **************/
129*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
130*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  160,   80});
131*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   80,  160});
132*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-1 units *************/
133*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
134*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  320,   80});
135*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   80,  320});
136*4bdc9457SAndroid Build Coastguard Worker }
137*4bdc9457SAndroid Build Coastguard Worker 
138*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 4 groups.
ShuffleNetV1G4ConvArguments(benchmark::internal::Benchmark * b)139*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G4ConvArguments(benchmark::internal::Benchmark* b) {
140*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
141*4bdc9457SAndroid Build Coastguard Worker 
142*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
143*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
144*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
145*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-2 unit **************/
146*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
147*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   68});
148*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   17,   62});
149*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-1 units *************/
150*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
151*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   68,   17});
152*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   17,   68});
153*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-2 unit **************/
154*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
155*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   68,   34});
156*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   34,   68});
157*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-1 units *************/
158*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
159*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  136,   34});
160*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   34,  136});
161*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-2 unit **************/
162*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
163*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  136,   68});
164*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   68,  136});
165*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-1 units *************/
166*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
167*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  272,   68});
168*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   68,  272});
169*4bdc9457SAndroid Build Coastguard Worker }
170*4bdc9457SAndroid Build Coastguard Worker 
171*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 8 groups.
ShuffleNetV1G8ConvArguments(benchmark::internal::Benchmark * b)172*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G8ConvArguments(benchmark::internal::Benchmark* b) {
173*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
174*4bdc9457SAndroid Build Coastguard Worker 
175*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
176*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
177*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
178*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-2 unit **************/
179*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
180*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   96});
181*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   12,   45});
182*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 2: stride-1 units *************/
183*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
184*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   48,   12});
185*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   12,   48});
186*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-2 unit **************/
187*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
188*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   48,   24});
189*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   24,   48});
190*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 3: stride-1 units *************/
191*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
192*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   96,   24});
193*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   24,   96});
194*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-2 unit **************/
195*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
196*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   96,   48});
197*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   48,   96});
198*4bdc9457SAndroid Build Coastguard Worker   /*************** Stage 4: stride-1 units *************/
199*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
200*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  192,   48});
201*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   48,  192});
202*4bdc9457SAndroid Build Coastguard Worker }
203*4bdc9457SAndroid Build Coastguard Worker 
204*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (0.5X scale).
ShuffleNetV2X05ConvArguments(benchmark::internal::Benchmark * b)205*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X05ConvArguments(benchmark::internal::Benchmark* b) {
206*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
207*4bdc9457SAndroid Build Coastguard Worker 
208*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
209*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
210*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
211*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 2 **********************/
212*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
213*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   24,   24});
214*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   24});
215*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 3 **********************/
216*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
217*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   48,   48});
218*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   48,   48});
219*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 4 **********************/
220*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
221*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   96,   96});
222*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   96,   96});
223*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 5 **********************/
224*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
225*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  192, 1024});
226*4bdc9457SAndroid Build Coastguard Worker }
227*4bdc9457SAndroid Build Coastguard Worker 
228*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (1.0X scale).
ShuffleNetV2X10ConvArguments(benchmark::internal::Benchmark * b)229*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X10ConvArguments(benchmark::internal::Benchmark* b) {
230*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
231*4bdc9457SAndroid Build Coastguard Worker 
232*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
233*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
234*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
235*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 2 **********************/
236*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
237*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   24,   58});
238*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   58});
239*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   58,   58});
240*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 3 **********************/
241*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
242*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  116,  116});
243*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  116,  116});
244*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 4 **********************/
245*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
246*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  232,  232});
247*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  232,  232});
248*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 5 **********************/
249*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
250*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  464, 1024});
251*4bdc9457SAndroid Build Coastguard Worker }
252*4bdc9457SAndroid Build Coastguard Worker 
253*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (1.5X scale).
ShuffleNetV2X15ConvArguments(benchmark::internal::Benchmark * b)254*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X15ConvArguments(benchmark::internal::Benchmark* b) {
255*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
256*4bdc9457SAndroid Build Coastguard Worker 
257*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
258*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
259*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
260*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 2 **********************/
261*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
262*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   24,   88});
263*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   88});
264*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   88,   88});
265*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 3 **********************/
266*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
267*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  176,  176});
268*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  176,  176});
269*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 4 **********************/
270*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
271*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  352,  352});
272*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  352,  352});
273*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 5 **********************/
274*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
275*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  704, 1024});
276*4bdc9457SAndroid Build Coastguard Worker }
277*4bdc9457SAndroid Build Coastguard Worker 
278*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (2.0X scale).
ShuffleNetV2X20ConvArguments(benchmark::internal::Benchmark * b)279*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X20ConvArguments(benchmark::internal::Benchmark* b) {
280*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
281*4bdc9457SAndroid Build Coastguard Worker 
282*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
283*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
284*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   24});
285*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 2 **********************/
286*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
287*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   24,  122});
288*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,  122});
289*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  122,  122});
290*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 3 **********************/
291*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
292*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  244,  244});
293*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  244,  244});
294*4bdc9457SAndroid Build Coastguard Worker   /********************** Stage 4 **********************/
295*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
296*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  488,  488});
297*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  488,  488});
298*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 5 **********************/
299*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
300*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  976, 2048});
301*4bdc9457SAndroid Build Coastguard Worker }
302*4bdc9457SAndroid Build Coastguard Worker 
MobileNetV1ConvArguments(benchmark::internal::Benchmark * b)303*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV1ConvArguments(benchmark::internal::Benchmark* b) {
304*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
305*4bdc9457SAndroid Build Coastguard Worker 
306*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
307*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   32});
308*4bdc9457SAndroid Build Coastguard Worker   b->Args({112, 112,  1,  1,  0,  0, 1, 1,   32,   64});
309*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   64,  128});
310*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,  128,  128});
311*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  128,  256});
312*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  256,  256});
313*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  256,  512});
314*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  512,  512});
315*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  512, 1024});
316*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1, 1024, 1024});
317*4bdc9457SAndroid Build Coastguard Worker }
318*4bdc9457SAndroid Build Coastguard Worker 
MobileNetV2ConvArguments(benchmark::internal::Benchmark * b)319*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV2ConvArguments(benchmark::internal::Benchmark* b) {
320*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
321*4bdc9457SAndroid Build Coastguard Worker 
322*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
323*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   32});
324*4bdc9457SAndroid Build Coastguard Worker 
325*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 1 *******************/
326*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
327*4bdc9457SAndroid Build Coastguard Worker   b->Args({112, 112,  1,  1,  0,  0, 1, 1,   32,   16});
328*4bdc9457SAndroid Build Coastguard Worker 
329*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 2 *******************/
330*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
331*4bdc9457SAndroid Build Coastguard Worker   b->Args({112, 112,  1,  1,  0,  0, 1, 1,   16,   96});
332*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   96,   24});
333*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,  144});
334*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,  144,   24});
335*4bdc9457SAndroid Build Coastguard Worker 
336*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 3 *******************/
337*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
338*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,  144});
339*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  144,   32});
340*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   32,  192});
341*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  192,   32});
342*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   32,  192});
343*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  192,   32});
344*4bdc9457SAndroid Build Coastguard Worker 
345*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 4 *******************/
346*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
347*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   32,  192});
348*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  192,   64});
349*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   64,  384});
350*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  384,   64});
351*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   64,  384});
352*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  384,   64});
353*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   64,  384});
354*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  384,   64});
355*4bdc9457SAndroid Build Coastguard Worker 
356*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 5 *******************/
357*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
358*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   64,  384});
359*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  384,   96});
360*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   96,  576});
361*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  576,   96});
362*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   96,  576});
363*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  576,   96});
364*4bdc9457SAndroid Build Coastguard Worker 
365*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 6 *******************/
366*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
367*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   96,  576});
368*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  576,  160});
369*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  160,  960});
370*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  960,  160});
371*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  160,  960});
372*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  960,  160});
373*4bdc9457SAndroid Build Coastguard Worker 
374*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 7 *******************/
375*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
376*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  160,  960});
377*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  960,  320});
378*4bdc9457SAndroid Build Coastguard Worker 
379*4bdc9457SAndroid Build Coastguard Worker   /**************** Pre-pooling Conv2D *****************/
380*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
381*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  320, 1280});
382*4bdc9457SAndroid Build Coastguard Worker   /**************** Post-pooling Conv2D ****************/
383*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
384*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1, 1280, 1000});
385*4bdc9457SAndroid Build Coastguard Worker }
386*4bdc9457SAndroid Build Coastguard Worker 
MobileNetV3SmallConvArguments(benchmark::internal::Benchmark * b)387*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV3SmallConvArguments(benchmark::internal::Benchmark* b) {
388*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
389*4bdc9457SAndroid Build Coastguard Worker 
390*4bdc9457SAndroid Build Coastguard Worker   /******************* Initial Stage *******************/
391*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
392*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   16});
393*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 1 *******************/
394*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
395*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   16,    8});
396*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,    8,   16});
397*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   16,   16});
398*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 2 *******************/
399*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
400*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   16,   72});
401*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   72,   24});
402*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 3 *******************/
403*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
404*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   24,   88});
405*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   88,   24});
406*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 4 *******************/
407*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
408*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   24,   96});
409*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   96,   24});
410*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   24,   96});
411*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   96,   40});
412*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 5 *******************/
413*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
414*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   40,  240});
415*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  240,   64});
416*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   64,  240});
417*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  240,   40});
418*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 6 *******************/
419*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
420*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   40,  240});
421*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  240,   64});
422*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   64,  240});
423*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  240,   40});
424*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 7 *******************/
425*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
426*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   40,  120});
427*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  120,   32});
428*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   32,  120});
429*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  120,   48});
430*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 8 *******************/
431*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
432*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   48,  144});
433*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  144,   40});
434*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   40,  144});
435*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  144,   48});
436*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 9 *******************/
437*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
438*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   48,  288});
439*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  288,   72});
440*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   72,  288});
441*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  288,   96});
442*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 10 *******************/
443*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
444*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   96,  576});
445*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  576,  144});
446*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  144,  576});
447*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  576,   96});
448*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 11 *******************/
449*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
450*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   96,  576});
451*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  576,  144});
452*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  144,  576});
453*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  576,   96});
454*4bdc9457SAndroid Build Coastguard Worker   /********************* Last Stage ********************/
455*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
456*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,   96,  576});
457*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  576, 1024});
458*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1, 1024, 1001});
459*4bdc9457SAndroid Build Coastguard Worker }
460*4bdc9457SAndroid Build Coastguard Worker 
MobileNetV3LargeConvArguments(benchmark::internal::Benchmark * b)461*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV3LargeConvArguments(benchmark::internal::Benchmark* b) {
462*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
463*4bdc9457SAndroid Build Coastguard Worker 
464*4bdc9457SAndroid Build Coastguard Worker   /******************* Initial Stage *******************/
465*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
466*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   16});
467*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 1 *******************/
468*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
469*4bdc9457SAndroid Build Coastguard Worker   b->Args({112, 112,  1,  1,  0,  0, 1, 1,   16,   16});
470*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 2 *******************/
471*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
472*4bdc9457SAndroid Build Coastguard Worker   b->Args({112, 112,  1,  1,  0,  0, 1, 1,   16,   64});
473*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   64,   24});
474*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 3 *******************/
475*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
476*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   72});
477*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   72,   24});
478*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 4 *******************/
479*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
480*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   24,   72});*/
481*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   72,   24});
482*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   24,   72});
483*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   72,   40});
484*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 5 *******************/
485*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
486*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   40,  120});
487*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  120,   32});
488*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   32,  120});
489*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  120,   40});
490*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 6 *******************/
491*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
492*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   40,  120});
493*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  120,   32});
494*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,   32,  120});
495*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  120,   40});
496*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 7 *******************/
497*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
498*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,   40,  240});
499*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  240,   80});
500*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 8 *******************/
501*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
502*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   80,  200});
503*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  200,   80});
504*4bdc9457SAndroid Build Coastguard Worker   /******************** Bottleneck 9 *******************/
505*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
506*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   80,  184});
507*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  184,   80});
508*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 10 *******************/
509*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
510*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   80,  184});
511*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  184,   80});
512*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 11 *******************/
513*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
514*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,   80,  480});
515*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  480,  120});
516*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  120,  480});
517*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  480,  112});
518*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 12 *******************/
519*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
520*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  112,  672});
521*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  672,  168});
522*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  168,  672});
523*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  672,  112});
524*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 13 *******************/
525*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
526*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  112,  672});
527*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  672,  160});
528*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 14 *******************/
529*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
530*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  160,  960});
531*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  960,  240});
532*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  240,  960});
533*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  960,  160});
534*4bdc9457SAndroid Build Coastguard Worker   /******************* Bottleneck 15 *******************/
535*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
536*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  160,  960});
537*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  960,  240});
538*4bdc9457SAndroid Build Coastguard Worker //b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  240,  960});
539*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  960,  160});
540*4bdc9457SAndroid Build Coastguard Worker   /******************** Last Stage *********************/
541*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
542*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  160,  960});
543*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1,  960, 1280});
544*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1, 1280, 1001});
545*4bdc9457SAndroid Build Coastguard Worker }
546*4bdc9457SAndroid Build Coastguard Worker 
547*4bdc9457SAndroid Build Coastguard Worker // SqueezeNet 1.0
SqueezeNetV10ConvArguments(benchmark::internal::Benchmark * b)548*4bdc9457SAndroid Build Coastguard Worker static void SqueezeNetV10ConvArguments(benchmark::internal::Benchmark* b) {
549*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
550*4bdc9457SAndroid Build Coastguard Worker 
551*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
552*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
553*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  7,  7,  6,  6, 2, 1,    3,   96});
554*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 2 **********************/
555*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
556*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,   96,   16});
557*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,   16,   64});
558*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  3,  3,  2,  2, 1, 1,   16,   64});
559*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 3 **********************/
560*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
561*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  55,  1,  1,  0,  0, 1, 1,  128,   16});
562*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,   16,   64});
563*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 55,  55,  3,  3,  2,  2, 1, 1,   16,   64});
564*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 4 **********************/
565*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
566*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,  128,   32});
567*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,   32,  128});
568*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  3,  3,  2,  2, 1, 1,   32,  128});
569*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 5 **********************/
570*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
571*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,  256,   32});
572*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,   32,  128});
573*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  3,  3,  2,  2, 1, 1,   32,  128});
574*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 6 **********************/
575*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
576*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,  256,   48});
577*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,   48,  192});
578*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  3,  3,  2,  2, 1, 1,   48,  192});
579*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 7 **********************/
580*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
581*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,  384,   48});
582*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,   48,  192});
583*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 27,  27,  3,  3,  2,  2, 1, 1,   48,  192});
584*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 8 **********************/
585*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
586*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,  384,   64});
587*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,   64,  256});
588*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  3,  3,  2,  2, 1, 1,   64,  256});
589*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 9 **********************/
590*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
591*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,  512,   64});
592*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,   64,  256});
593*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  3,  3,  2,  2, 1, 1,   64,  256});
594*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 10 **********************/
595*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
596*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,  512, 1000});
597*4bdc9457SAndroid Build Coastguard Worker }
598*4bdc9457SAndroid Build Coastguard Worker 
599*4bdc9457SAndroid Build Coastguard Worker // SqueezeNet 1.1
SqueezeNetV11ConvArguments(benchmark::internal::Benchmark * b)600*4bdc9457SAndroid Build Coastguard Worker static void SqueezeNetV11ConvArguments(benchmark::internal::Benchmark* b) {
601*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
602*4bdc9457SAndroid Build Coastguard Worker 
603*4bdc9457SAndroid Build Coastguard Worker   /*********************** Conv 1 **********************/
604*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
605*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 2, 1,    3,   64});
606*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 2 **********************/
607*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
608*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,   64,   16});
609*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,   16,   64});
610*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  3,  3,  2,  2, 1, 1,   16,   64});
611*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 3 **********************/
612*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
613*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,  128,   16});
614*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 55,  55,  1,  1,  0,  0, 1, 1,   16,   64});
615*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 55,  55,  3,  3,  2,  2, 1, 1,   16,   64});
616*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 4 **********************/
617*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
618*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,  128,   32});
619*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,   32,  128});
620*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  3,  3,  2,  2, 1, 1,   32,  128});
621*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 5 **********************/
622*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
623*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,  256,   32});
624*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 27,  27,  1,  1,  0,  0, 1, 1,   32,  128});
625*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 27,  27,  3,  3,  2,  2, 1, 1,   32,  128});
626*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 6 **********************/
627*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
628*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,  256,   48});
629*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,   48,  192});
630*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  3,  3,  2,  2, 1, 1,   48,  192});
631*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 7 **********************/
632*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
633*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,  384,   48});
634*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,   48,  192});
635*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 13,  13,  3,  3,  2,  2, 1, 1,   48,  192});
636*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 8 **********************/
637*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
638*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,  384,   64});
639*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,   64,  256});
640*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  3,  3,  2,  2, 1, 1,   64,  256});
641*4bdc9457SAndroid Build Coastguard Worker   /*********************** Fire 9 **********************/
642*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
643*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,  512,   64});
644*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,   64,  256});
645*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 13,  13,  3,  3,  2,  2, 1, 1,   64,  256});
646*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 10 **********************/
647*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
648*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 13,  13,  1,  1,  0,  0, 1, 1,  512, 1000});
649*4bdc9457SAndroid Build Coastguard Worker }
650*4bdc9457SAndroid Build Coastguard Worker 
InceptionV3ConvArguments(benchmark::internal::Benchmark * b)651*4bdc9457SAndroid Build Coastguard Worker static void InceptionV3ConvArguments(benchmark::internal::Benchmark* b) {
652*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
653*4bdc9457SAndroid Build Coastguard Worker 
654*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
655*4bdc9457SAndroid Build Coastguard Worker   b->Args({299, 299,  3,  3,  0,  0, 2, 1,    3,   32});
656*4bdc9457SAndroid Build Coastguard Worker   b->Args({149, 149,  3,  3,  0,  0, 1, 1,   32,   32});
657*4bdc9457SAndroid Build Coastguard Worker   b->Args({147, 147,  3,  3,  2,  2, 1, 1,   32,   64});
658*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 73,  73,  1,  1,  0,  0, 1, 1,   64,   80});
659*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 73,  73,  3,  3,  0,  0, 1, 1,   80,  192});
660*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  1,  1,  0,  0, 1, 1,  192,   64});
661*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  1,  1,  0,  0, 1, 1,  192,   48});
662*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  5,  5,  4,  4, 1, 1,   48,   64});
663*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  3,  3,  2,  2, 1, 1,   64,   96});
664*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  3,  3,  2,  2, 1, 1,   96,   96});
665*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  1,  1,  0,  0, 1, 1,  192,   32});
666*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  1,  1,  0,  0, 1, 1,  256,   64});
667*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  1,  1,  0,  0, 1, 1,  256,   48});
668*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  1,  1,  0,  0, 1, 1,  288,   64});
669*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  1,  1,  0,  0, 1, 1,  288,   48});
670*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  3,  3,  0,  0, 2, 1,  288,  384});
671*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 35,  35,  3,  3,  0,  0, 2, 1,   96,   96});
672*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  1,  0,  0, 1, 1,  768,  192});
673*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  1,  0,  0, 1, 1,  768,  128});
674*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  7,  0,  6, 1, 1,  128,  128});
675*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  7,  1,  6,  0, 1, 1,  128,  192});
676*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  7,  1,  6,  0, 1, 1,  128,  128});
677*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  7,  0,  6, 1, 1,  128,  192});
678*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  1,  0,  0, 1, 1,  768,  160});
679*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  7,  0,  6, 1, 1,  160,  160});
680*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  7,  1,  6,  0, 1, 1,  160,  192});
681*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  7,  1,  6,  0, 1, 1,  160,  160});
682*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  7,  0,  6, 1, 1,  160,  192});
683*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  1,  7,  0,  6, 1, 1,  192,  192});
684*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  7,  1,  6,  0, 1, 1,  192,  192});
685*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  3,  3,  0,  0, 2, 1,  192,  320});
686*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 17,  17,  3,  3,  0,  0, 2, 1,  192,  192});
687*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 1280,  320});
688*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 1280,  384});
689*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  3,  0,  2, 1, 1,  384,  384});
690*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  3,  1,  2,  0, 1, 1,  384,  384});
691*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 1280,  448});
692*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  3,  3,  2,  2, 1, 1,  448,  384});
693*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 1280,  192});
694*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 2048,  320});
695*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 2048,  384});
696*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 2048,  448});
697*4bdc9457SAndroid Build Coastguard Worker   b->Args({  8,   8,  1,  1,  0,  0, 1, 1, 2048,  192});
698*4bdc9457SAndroid Build Coastguard Worker   b->Args({  1,   1,  1,  1,  0,  0, 1, 1, 2048, 1001});
699*4bdc9457SAndroid Build Coastguard Worker }
700*4bdc9457SAndroid Build Coastguard Worker 
ResNet18ConvArguments(benchmark::internal::Benchmark * b)701*4bdc9457SAndroid Build Coastguard Worker static void ResNet18ConvArguments(benchmark::internal::Benchmark* b) {
702*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
703*4bdc9457SAndroid Build Coastguard Worker 
704*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 1 ***********************/
705*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
706*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  7,  7,  6,  6, 2, 1,    3,   64});
707*4bdc9457SAndroid Build Coastguard Worker   /********************* Conv 2.X **********************/
708*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
709*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  3,  3,  2,  2, 1, 1,   64,   64});
710*4bdc9457SAndroid Build Coastguard Worker   /********************* Conv 3.X **********************/
711*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
712*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  3,  3,  2,  2, 2, 1,   64,  128});
713*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  3,  3,  2,  2, 1, 1,  128,  128});
714*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 2, 1,   64,  128});
715*4bdc9457SAndroid Build Coastguard Worker   /********************* Conv 4.X **********************/
716*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
717*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  3,  3,  2,  2, 2, 1,  128,  256});
718*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  3,  3,  2,  2, 1, 1,  256,  256});
719*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 2, 1,  128,  256});
720*4bdc9457SAndroid Build Coastguard Worker   /********************* Conv 5.X **********************/
721*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
722*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  3,  3,  2,  2, 2, 1,  256,  512});
723*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  3,  3,  2,  2, 1, 1,  512,  512});
724*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 2, 1,  256,  512});
725*4bdc9457SAndroid Build Coastguard Worker }
726*4bdc9457SAndroid Build Coastguard Worker 
ResNet50ConvArguments(benchmark::internal::Benchmark * b)727*4bdc9457SAndroid Build Coastguard Worker static void ResNet50ConvArguments(benchmark::internal::Benchmark* b) {
728*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
729*4bdc9457SAndroid Build Coastguard Worker 
730*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 1 ***********************/
731*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
732*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  7,  7,  6,  6, 2, 1,    3,   64});
733*4bdc9457SAndroid Build Coastguard Worker   /********************* Conv 2.1 **********************/
734*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
735*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   64,   64});
736*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  3,  3,  2,  2, 1, 1,   64,   64});
737*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   64,  256});
738*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   64,  256});
739*4bdc9457SAndroid Build Coastguard Worker   /********************* Conv 2.X **********************/
740*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
741*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,  256,   64});
742*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 56,  56,  3,  3,  2,  2, 1, 1,   64,   64});
743*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,   64,  256});
744*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 3.1 *********************/
745*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
746*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,  256,  128});
747*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  3,  3,  2,  2, 2, 1,  128,  128});
748*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  128,  512});
749*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 2, 1,  256,  512});
750*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 3.X *********************/
751*4bdc9457SAndroid Build Coastguard Worker   /*         H    W   KH  KW PH  PW  S  D  GCin  GCout */
752*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  512,  128});
753*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  3,  3,  2,  2, 1, 1,  128,  128});
754*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  128,  512});
755*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 4.1 *********************/
756*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
757*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  512,  256});
758*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  3,  3,  2,  2, 2, 1,  256,  256});
759*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  256, 1024});
760*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 2, 1,  512, 1024});
761*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 4.X *********************/
762*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
763*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1, 1024,  256});
764*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  3,  3,  2,  2, 1, 1,  256,  256});
765*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  256, 1024});
766*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 5.1 *********************/
767*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
768*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1, 1024,  512});
769*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  3,  3,  2,  2, 2, 1,  512,  512});
770*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  512, 2048});
771*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 2, 1, 1024, 2048});
772*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 5.X *********************/
773*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
774*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  1,  1,  0,  0, 1, 1, 2048,  512});
775*4bdc9457SAndroid Build Coastguard Worker   b->Args({  7,   7,  3,  3,  2,  2, 1, 1,  512,  512});
776*4bdc9457SAndroid Build Coastguard Worker //b->Args({  7,   7,  1,  1,  0,  0, 1, 1,  512, 2048});
777*4bdc9457SAndroid Build Coastguard Worker }
778*4bdc9457SAndroid Build Coastguard Worker 
VGGConvArguments(benchmark::internal::Benchmark * b)779*4bdc9457SAndroid Build Coastguard Worker static void VGGConvArguments(benchmark::internal::Benchmark* b) {
780*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
781*4bdc9457SAndroid Build Coastguard Worker 
782*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 1.1 *********************/
783*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
784*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 1, 1,    3,   64});
785*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 1.2 *********************/
786*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
787*4bdc9457SAndroid Build Coastguard Worker   b->Args({224, 224,  3,  3,  2,  2, 1, 1,   64,   64});
788*4bdc9457SAndroid Build Coastguard Worker 
789*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 2.1 *********************/
790*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
791*4bdc9457SAndroid Build Coastguard Worker   b->Args({112, 112,  3,  3,  2,  2, 1, 1,   64,  128});
792*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 2.2 *********************/
793*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
794*4bdc9457SAndroid Build Coastguard Worker   b->Args({112, 112,  3,  3,  2,  2, 1, 1,  128,  128});
795*4bdc9457SAndroid Build Coastguard Worker 
796*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 3.1 *********************/
797*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
798*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  3,  3,  2,  2, 1, 1,  128,  256});
799*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 3.2 *********************/
800*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
801*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  3,  3,  2,  2, 1, 1,  256,  256});
802*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 3.3 *********************/
803*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
804*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 56,  56,  1,  1,  0,  0, 1, 1,  256,  256});
805*4bdc9457SAndroid Build Coastguard Worker 
806*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 4.1 *********************/
807*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
808*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  3,  3,  2,  2, 1, 1,  256,  512});
809*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 4.2 *********************/
810*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
811*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  3,  3,  2,  2, 1, 1,  512,  512});
812*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 4.3 *********************/
813*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
814*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 28,  28,  1,  1,  0,  0, 1, 1,  512,  512});
815*4bdc9457SAndroid Build Coastguard Worker 
816*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 5.X *********************/
817*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
818*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  3,  3,  2,  2, 1, 1,  512,  512});
819*4bdc9457SAndroid Build Coastguard Worker   /********************** Conv 5.3 *********************/
820*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
821*4bdc9457SAndroid Build Coastguard Worker   b->Args({ 14,  14,  1,  1,  0,  0, 1, 1,  512,  512});
822*4bdc9457SAndroid Build Coastguard Worker }
823*4bdc9457SAndroid Build Coastguard Worker 
824*4bdc9457SAndroid Build Coastguard Worker // SRCNN (9-1-5)
SRCNN915ConvArguments(benchmark::internal::Benchmark * b)825*4bdc9457SAndroid Build Coastguard Worker static void SRCNN915ConvArguments(benchmark::internal::Benchmark* b) {
826*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
827*4bdc9457SAndroid Build Coastguard Worker 
828*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
829*4bdc9457SAndroid Build Coastguard Worker   b->Args({384, 384,  9,  9,  0,  0, 1, 1,    1,   64});
830*4bdc9457SAndroid Build Coastguard Worker   b->Args({376, 376,  1,  1,  0,  0, 1, 1,   64,   32});
831*4bdc9457SAndroid Build Coastguard Worker   b->Args({376, 376,  5,  5,  0,  0, 1, 1,   32,    1});
832*4bdc9457SAndroid Build Coastguard Worker }
833*4bdc9457SAndroid Build Coastguard Worker 
834*4bdc9457SAndroid Build Coastguard Worker // SRCNN (9-3-5)
SRCNN935ConvArguments(benchmark::internal::Benchmark * b)835*4bdc9457SAndroid Build Coastguard Worker static void SRCNN935ConvArguments(benchmark::internal::Benchmark* b) {
836*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
837*4bdc9457SAndroid Build Coastguard Worker 
838*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
839*4bdc9457SAndroid Build Coastguard Worker   b->Args({384, 384,  9,  9,  0,  0, 1, 1,    1,   64});
840*4bdc9457SAndroid Build Coastguard Worker   b->Args({376, 376,  3,  3,  0,  0, 1, 1,   64,   32});
841*4bdc9457SAndroid Build Coastguard Worker   b->Args({374, 374,  5,  5,  0,  0, 1, 1,   32,    1});
842*4bdc9457SAndroid Build Coastguard Worker }
843*4bdc9457SAndroid Build Coastguard Worker 
844*4bdc9457SAndroid Build Coastguard Worker // SRCNN (9-5-5)
SRCNN955ConvArguments(benchmark::internal::Benchmark * b)845*4bdc9457SAndroid Build Coastguard Worker static void SRCNN955ConvArguments(benchmark::internal::Benchmark* b) {
846*4bdc9457SAndroid Build Coastguard Worker   b->ArgNames({"H", "W", "KH", "KW", "PH", "PW", "S", "D", "GCin", "GCout"});
847*4bdc9457SAndroid Build Coastguard Worker 
848*4bdc9457SAndroid Build Coastguard Worker   /*        H    W   KH  KW  PH  PW  S  D  GCin  GCout */
849*4bdc9457SAndroid Build Coastguard Worker   b->Args({384, 384,  9,  9,  0,  0, 1, 1,    1,   64});
850*4bdc9457SAndroid Build Coastguard Worker   b->Args({376, 376,  5,  5,  0,  0, 1, 1,   64,   32});
851*4bdc9457SAndroid Build Coastguard Worker   b->Args({372, 372,  5,  5,  0,  0, 1, 1,   32,    1});
852*4bdc9457SAndroid Build Coastguard Worker }
853