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