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 #define BENCHMARK_GEMM(gemm_fn) \
14*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, mobilenet_v1, "MobileNet v1")->Apply(MobileNetV1GemmArguments)->UseRealTime(); \
15*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, mobilenet_v2, "MobileNet v2")->Apply(MobileNetV2GemmArguments)->UseRealTime(); \
16*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, mobilenet_v3_small, "MobileNet v3 Small")->Apply(MobileNetV3SmallGemmArguments)->UseRealTime(); \
17*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, mobilenet_v3_large, "MobileNet v3 Large")->Apply(MobileNetV3LargeGemmArguments)->UseRealTime(); \
18*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v1_g1, "ShuffleNet v1 (1 group)")->Apply(ShuffleNetV1G1GemmArguments)->UseRealTime(); \
19*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v1_g2, "ShuffleNet v1 (2 groups)")->Apply(ShuffleNetV1G2GemmArguments)->UseRealTime(); \
20*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v1_g3, "ShuffleNet v1 (3 groups)")->Apply(ShuffleNetV1G3GemmArguments)->UseRealTime(); \
21*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v1_g4, "ShuffleNet v1 (4 groups)")->Apply(ShuffleNetV1G4GemmArguments)->UseRealTime(); \
22*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v1_g8, "ShuffleNet v1 (8 groups)")->Apply(ShuffleNetV1G8GemmArguments)->UseRealTime(); \
23*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v2_x05, "ShuffleNet v2 0.5X")->Apply(ShuffleNetV2X05GemmArguments)->UseRealTime(); \
24*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v2_x10, "ShuffleNet v2 1.0X")->Apply(ShuffleNetV2X10GemmArguments)->UseRealTime(); \
25*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v2_x15, "ShuffleNet v2 1.5X")->Apply(ShuffleNetV2X15GemmArguments)->UseRealTime(); \
26*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, shufflenet_v2_x20, "ShuffleNet v2 2.0X")->Apply(ShuffleNetV2X20GemmArguments)->UseRealTime(); \
27*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, inception_v3, "Inception v3")->Apply(InceptionV3GemmArguments)->UseRealTime(); \
28*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, resnet18, "ResNet-18")->Apply(ResNet18GemmArguments)->UseRealTime(); \
29*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, resnet50, "ResNet-50")->Apply(ResNet50GemmArguments)->UseRealTime(); \
30*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, squeezenet_v10, "SqueezeNet 1.0")->Apply(SqueezeNetV10GemmArguments)->UseRealTime(); \
31*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, squeezenet_v11, "SqueezeNet 1.1")->Apply(SqueezeNetV11GemmArguments)->UseRealTime(); \
32*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, vgg, "VGG")->Apply(VGGGemmArguments)->UseRealTime(); \
33*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, srcnn915, "SRCNN (9-1-5)")->Apply(SRCNN915GemmArguments)->UseRealTime(); \
34*4bdc9457SAndroid Build Coastguard Worker BENCHMARK_CAPTURE(gemm_fn, srcnn935, "SRCNN (9-3-5)")->Apply(SRCNN935GemmArguments)->UseRealTime();
35*4bdc9457SAndroid Build Coastguard Worker
36*4bdc9457SAndroid Build Coastguard Worker // Removed due to OOM SEGFAULT on 32 bit ARM.
37*4bdc9457SAndroid Build Coastguard Worker // BENCHMARK_CAPTURE(gemm_fn, srcnn955, "SRCNN (9-5-5)")->Apply(SRCNN955GemmArguments)->UseRealTime();
38*4bdc9457SAndroid Build Coastguard Worker
39*4bdc9457SAndroid Build Coastguard Worker
40*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 1 group.
ShuffleNetV1G1GemmArguments(benchmark::internal::Benchmark * b)41*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G1GemmArguments(benchmark::internal::Benchmark* b) {
42*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
43*4bdc9457SAndroid Build Coastguard Worker
44*4bdc9457SAndroid Build Coastguard Worker /* M N K */
45*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
46*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 36, 24 * 1 * 1});
47*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 120, 36 * 1 * 1});
48*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 36, 144 * 1 * 1});
49*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 144, 36 * 1 * 1});
50*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 72, 144 * 1 * 1});
51*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 144, 72 * 1 * 1});
52*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 72, 288 * 1 * 1});
53*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 288, 72 * 1 * 1});
54*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 144, 288 * 1 * 1});
55*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 288, 144 * 1 * 1});
56*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 144, 576 * 1 * 1});
57*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 576, 144 * 1 * 1});
58*4bdc9457SAndroid Build Coastguard Worker }
59*4bdc9457SAndroid Build Coastguard Worker
60*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 2 groups.
ShuffleNetV1G2GemmArguments(benchmark::internal::Benchmark * b)61*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G2GemmArguments(benchmark::internal::Benchmark* b) {
62*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
63*4bdc9457SAndroid Build Coastguard Worker
64*4bdc9457SAndroid Build Coastguard Worker /* M N K */
65*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
66*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 50, 24 * 1 * 1});
67*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 88, 25 * 1 * 1});
68*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 25, 100 * 1 * 1});
69*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 100, 25 * 1 * 1});
70*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 50, 100 * 1 * 1});
71*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 100, 50 * 1 * 1});
72*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 50, 200 * 1 * 1});
73*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 200, 50 * 1 * 1});
74*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 100, 200 * 1 * 1});
75*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 200, 100 * 1 * 1});
76*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 100, 400 * 1 * 1});
77*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 400, 100 * 1 * 1});
78*4bdc9457SAndroid Build Coastguard Worker }
79*4bdc9457SAndroid Build Coastguard Worker
80*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 3 groups.
ShuffleNetV1G3GemmArguments(benchmark::internal::Benchmark * b)81*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G3GemmArguments(benchmark::internal::Benchmark* b) {
82*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
83*4bdc9457SAndroid Build Coastguard Worker
84*4bdc9457SAndroid Build Coastguard Worker /* M N K */
85*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
86*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 60, 24 * 1 * 1});
87*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 72, 20 * 1 * 1});
88*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 20, 80 * 1 * 1});
89*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 80, 20 * 1 * 1});
90*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 40, 80 * 1 * 1});
91*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 80, 40 * 1 * 1});
92*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 40, 160 * 1 * 1});
93*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 160, 40 * 1 * 1});
94*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 80, 160 * 1 * 1});
95*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 160, 80 * 1 * 1});
96*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 80, 320 * 1 * 1});
97*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 320, 80 * 1 * 1});
98*4bdc9457SAndroid Build Coastguard Worker }
99*4bdc9457SAndroid Build Coastguard Worker
100*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 4 groups.
ShuffleNetV1G4GemmArguments(benchmark::internal::Benchmark * b)101*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G4GemmArguments(benchmark::internal::Benchmark* b) {
102*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
103*4bdc9457SAndroid Build Coastguard Worker
104*4bdc9457SAndroid Build Coastguard Worker /* M N K */
105*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
106*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 68, 24 * 1 * 1});
107*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 62, 17 * 1 * 1});
108*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 17, 68 * 1 * 1});
109*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 68, 17 * 1 * 1});
110*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 34, 68 * 1 * 1});
111*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 68, 34 * 1 * 1});
112*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 34, 136 * 1 * 1});
113*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 136, 34 * 1 * 1});
114*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 68, 136 * 1 * 1});
115*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 136, 68 * 1 * 1});
116*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 68, 272 * 1 * 1});
117*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 272, 68 * 1 * 1});
118*4bdc9457SAndroid Build Coastguard Worker }
119*4bdc9457SAndroid Build Coastguard Worker
120*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v1 with 8 groups.
ShuffleNetV1G8GemmArguments(benchmark::internal::Benchmark * b)121*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV1G8GemmArguments(benchmark::internal::Benchmark* b) {
122*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
123*4bdc9457SAndroid Build Coastguard Worker
124*4bdc9457SAndroid Build Coastguard Worker /* M N K */
125*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
126*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 96, 24 * 1 * 1});
127*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 45, 12 * 1 * 1});
128*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 12, 48 * 1 * 1});
129*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 48, 12 * 1 * 1});
130*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 24, 48 * 1 * 1});
131*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 48, 24 * 1 * 1});
132*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 24, 96 * 1 * 1});
133*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 96, 24 * 1 * 1});
134*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 48, 96 * 1 * 1});
135*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 96, 48 * 1 * 1});
136*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 48, 192 * 1 * 1});
137*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 192, 48 * 1 * 1});
138*4bdc9457SAndroid Build Coastguard Worker }
139*4bdc9457SAndroid Build Coastguard Worker
140*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (0.5X scale)
ShuffleNetV2X05GemmArguments(benchmark::internal::Benchmark * b)141*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X05GemmArguments(benchmark::internal::Benchmark* b) {
142*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
143*4bdc9457SAndroid Build Coastguard Worker
144*4bdc9457SAndroid Build Coastguard Worker /* M N K */
145*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
146*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 24, 24 * 1 * 1});
147*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 24, 24 * 1 * 1});
148*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 48, 48 * 1 * 1});
149*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 48, 48 * 1 * 1});
150*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 96, 96 * 1 * 1});
151*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 96, 96 * 1 * 1});
152*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 1024, 192 * 1 * 1});
153*4bdc9457SAndroid Build Coastguard Worker }
154*4bdc9457SAndroid Build Coastguard Worker
155*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (1.0X scale)
ShuffleNetV2X10GemmArguments(benchmark::internal::Benchmark * b)156*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X10GemmArguments(benchmark::internal::Benchmark* b) {
157*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
158*4bdc9457SAndroid Build Coastguard Worker
159*4bdc9457SAndroid Build Coastguard Worker /* M N K */
160*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
161*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 58, 24 * 1 * 1});
162*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 58, 24 * 1 * 1});
163*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 58, 58 * 1 * 1});
164*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 116, 116 * 1 * 1});
165*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 116, 116 * 1 * 1});
166*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 232, 232 * 1 * 1});
167*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 232, 232 * 1 * 1});
168*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 1024, 464 * 1 * 1});
169*4bdc9457SAndroid Build Coastguard Worker }
170*4bdc9457SAndroid Build Coastguard Worker
171*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (1.5X scale)
ShuffleNetV2X15GemmArguments(benchmark::internal::Benchmark * b)172*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X15GemmArguments(benchmark::internal::Benchmark* b) {
173*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
174*4bdc9457SAndroid Build Coastguard Worker
175*4bdc9457SAndroid Build Coastguard Worker /* M N K */
176*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
177*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 88, 24 * 1 * 1});
178*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 88, 24 * 1 * 1});
179*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 88, 88 * 1 * 1});
180*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 176, 176 * 1 * 1});
181*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 176, 176 * 1 * 1});
182*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 352, 352 * 1 * 1});
183*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 352, 352 * 1 * 1});
184*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 1024, 704 * 1 * 1});
185*4bdc9457SAndroid Build Coastguard Worker }
186*4bdc9457SAndroid Build Coastguard Worker
187*4bdc9457SAndroid Build Coastguard Worker // ShuffleNet v2 (2.0X scale)
ShuffleNetV2X20GemmArguments(benchmark::internal::Benchmark * b)188*4bdc9457SAndroid Build Coastguard Worker static void ShuffleNetV2X20GemmArguments(benchmark::internal::Benchmark* b) {
189*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
190*4bdc9457SAndroid Build Coastguard Worker
191*4bdc9457SAndroid Build Coastguard Worker /* M N K */
192*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 24, 3 * 3 * 3});
193*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 122, 24 * 1 * 1});
194*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 122, 24 * 1 * 1});
195*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 122, 122 * 1 * 1});
196*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 244, 244 * 1 * 1});
197*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 244, 244 * 1 * 1});
198*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 488, 488 * 1 * 1});
199*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 488, 488 * 1 * 1});
200*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 2048, 976 * 1 * 1});
201*4bdc9457SAndroid Build Coastguard Worker }
202*4bdc9457SAndroid Build Coastguard Worker
MobileNetV1GemmArguments(benchmark::internal::Benchmark * b)203*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV1GemmArguments(benchmark::internal::Benchmark* b) {
204*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
205*4bdc9457SAndroid Build Coastguard Worker
206*4bdc9457SAndroid Build Coastguard Worker /* M N K */
207*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 32, 3 * 3 * 3});
208*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 64, 32 * 1 * 1});
209*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 128, 64 * 1 * 1});
210*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 128, 128 * 1 * 1});
211*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 256, 128 * 1 * 1});
212*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 256, 256 * 1 * 1});
213*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 512, 256 * 1 * 1});
214*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 512, 512 * 1 * 1});
215*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 1024, 512 * 1 * 1});
216*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 1024, 1024 * 1 * 1});
217*4bdc9457SAndroid Build Coastguard Worker }
218*4bdc9457SAndroid Build Coastguard Worker
MobileNetV2GemmArguments(benchmark::internal::Benchmark * b)219*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV2GemmArguments(benchmark::internal::Benchmark* b) {
220*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
221*4bdc9457SAndroid Build Coastguard Worker
222*4bdc9457SAndroid Build Coastguard Worker /*********** Initial Stage ************/
223*4bdc9457SAndroid Build Coastguard Worker /* M N K */
224*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 32, 3 * 3 * 3});
225*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 1 ************/
226*4bdc9457SAndroid Build Coastguard Worker /* M N K */
227*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 16, 32 * 1 * 1});
228*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 2 ************/
229*4bdc9457SAndroid Build Coastguard Worker /* M N K */
230*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 96, 16 * 1 * 1});
231*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 24, 96 * 1 * 1});
232*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 144, 24 * 1 * 1});
233*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 24, 144 * 1 * 1});
234*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 3 ************/
235*4bdc9457SAndroid Build Coastguard Worker /* M N K */
236*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 32, 144 * 1 * 1});
237*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 192, 32 * 1 * 1});
238*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 32, 192 * 1 * 1});
239*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 4 ************/
240*4bdc9457SAndroid Build Coastguard Worker /* M N K */
241*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 64, 192 * 1 * 1});
242*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 384, 64 * 1 * 1});
243*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 64, 384 * 1 * 1});
244*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 5 ************/
245*4bdc9457SAndroid Build Coastguard Worker /* M N K */
246*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 96, 384 * 1 * 1});
247*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 576, 96 * 1 * 1});
248*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 96, 576 * 1 * 1});
249*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 6 ************/
250*4bdc9457SAndroid Build Coastguard Worker /* M N K */
251*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 160, 576 * 1 * 1});
252*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 960, 160 * 1 * 1});
253*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 160, 960 * 1 * 1});
254*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 7 ************/
255*4bdc9457SAndroid Build Coastguard Worker /* M N K */
256*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 320, 960 * 1 * 1});
257*4bdc9457SAndroid Build Coastguard Worker /********* Pre-pooling Conv2D *********/
258*4bdc9457SAndroid Build Coastguard Worker /* M N K */
259*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 1280, 320 * 1 * 1});
260*4bdc9457SAndroid Build Coastguard Worker /******** Post-pooling Conv2D *********/
261*4bdc9457SAndroid Build Coastguard Worker /* M N K */
262*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 1000, 1280 * 1 * 1});
263*4bdc9457SAndroid Build Coastguard Worker }
264*4bdc9457SAndroid Build Coastguard Worker
MobileNetV3SmallGemmArguments(benchmark::internal::Benchmark * b)265*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV3SmallGemmArguments(benchmark::internal::Benchmark* b) {
266*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
267*4bdc9457SAndroid Build Coastguard Worker
268*4bdc9457SAndroid Build Coastguard Worker /************ Initial Stage ************/
269*4bdc9457SAndroid Build Coastguard Worker /* M N K */
270*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 16, 3 * 3 * 3});
271*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 1 ************/
272*4bdc9457SAndroid Build Coastguard Worker /* M N K */
273*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 8, 16 * 1 * 1});
274*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 16, 8 * 1 * 1});
275*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 16, 16 * 1 * 1});
276*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 2 ************/
277*4bdc9457SAndroid Build Coastguard Worker /* M N K */
278*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 72, 16 * 1 * 1});
279*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 24, 72 * 1 * 1});
280*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 3 ************/
281*4bdc9457SAndroid Build Coastguard Worker /* M N K */
282*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 88, 24 * 1 * 1});
283*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 24, 88 * 1 * 1});
284*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 4 ************/
285*4bdc9457SAndroid Build Coastguard Worker /* M N K */
286*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 96, 24 * 1 * 1});
287*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 24, 96 * 1 * 1});
288*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 96, 24 * 1 * 1});
289*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 40, 96 * 1 * 1});
290*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 5 ************/
291*4bdc9457SAndroid Build Coastguard Worker /* M N K */
292*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 240, 40 * 1 * 1});
293*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 64, 240 * 1 * 1});
294*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 240, 64 * 1 * 1});
295*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 40, 240 * 1 * 1});
296*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 6 ************/
297*4bdc9457SAndroid Build Coastguard Worker /* M N K */
298*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14 * 14, 240, 40 * 1 * 1});
299*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 64, 240 * 1 * 1});
300*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 240, 64 * 1 * 1});
301*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14 * 14, 40, 240 * 1 * 1});
302*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 7 ************/
303*4bdc9457SAndroid Build Coastguard Worker /* M N K */
304*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 120, 40 * 1 * 1});
305*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 32, 120 * 1 * 1});
306*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 120, 32 * 1 * 1});
307*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 48, 120 * 1 * 1});
308*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 8 ************/
309*4bdc9457SAndroid Build Coastguard Worker /* M N K */
310*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 144, 48 * 1 * 1});
311*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 40, 144 * 1 * 1});
312*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 144, 40 * 1 * 1});
313*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 48, 144 * 1 * 1});
314*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 9 ************/
315*4bdc9457SAndroid Build Coastguard Worker /* M N K */
316*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 288, 48 * 1 * 1});
317*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 72, 288 * 1 * 1});
318*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 288, 72 * 1 * 1});
319*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 96, 288 * 1 * 1});
320*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 10 ************/
321*4bdc9457SAndroid Build Coastguard Worker /* M N K */
322*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 576, 96 * 1 * 1});
323*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 144, 576 * 1 * 1});
324*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 576, 144 * 1 * 1});
325*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 96, 576 * 1 * 1});
326*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 11 ************/
327*4bdc9457SAndroid Build Coastguard Worker /* M N K */
328*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 7 * 7, 576, 96 * 1 * 1});
329*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 144, 576 * 1 * 1});
330*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 576, 144 * 1 * 1});
331*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 7 * 7, 96, 576 * 1 * 1});
332*4bdc9457SAndroid Build Coastguard Worker /************* Last Stage *************/
333*4bdc9457SAndroid Build Coastguard Worker /* M N K */
334*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 7 * 7, 576, 96 * 1 * 1});
335*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 1024, 576 * 1 * 1});
336*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 1001, 1024 * 1 * 1});
337*4bdc9457SAndroid Build Coastguard Worker }
338*4bdc9457SAndroid Build Coastguard Worker
MobileNetV3LargeGemmArguments(benchmark::internal::Benchmark * b)339*4bdc9457SAndroid Build Coastguard Worker static void MobileNetV3LargeGemmArguments(benchmark::internal::Benchmark* b) {
340*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
341*4bdc9457SAndroid Build Coastguard Worker
342*4bdc9457SAndroid Build Coastguard Worker /************ Initial Stage ************/
343*4bdc9457SAndroid Build Coastguard Worker /* M N K */
344*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 16, 3 * 3 * 3});
345*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 1 ************/
346*4bdc9457SAndroid Build Coastguard Worker /* M N K */
347*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 16, 16 * 1 * 1});
348*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 2 ************/
349*4bdc9457SAndroid Build Coastguard Worker /* M N K */
350*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 64, 16 * 1 * 1});
351*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 24, 64 * 1 * 1});
352*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 3 ************/
353*4bdc9457SAndroid Build Coastguard Worker /* M N K */
354*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 72, 24 * 1 * 1});
355*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 24, 72 * 1 * 1});
356*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 4 ************/
357*4bdc9457SAndroid Build Coastguard Worker /* M N K */
358*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 56 * 56, 72, 24 * 1 * 1});
359*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 24, 72 * 1 * 1});
360*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 72, 24 * 1 * 1});
361*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 40, 72 * 1 * 1});
362*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 5 ************/
363*4bdc9457SAndroid Build Coastguard Worker /* M N K */
364*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 120, 40 * 1 * 1});
365*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 32, 120 * 1 * 1});
366*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 120, 32 * 1 * 1});
367*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 40, 120 * 1 * 1});
368*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 6 ************/
369*4bdc9457SAndroid Build Coastguard Worker /* M N K */
370*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28 * 28, 120, 40 * 1 * 1});
371*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 32, 120 * 1 * 1});
372*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 120, 32 * 1 * 1});
373*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 28 * 28, 40, 120 * 1 * 1});
374*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 7 ************/
375*4bdc9457SAndroid Build Coastguard Worker /* M N K */
376*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 240, 40 * 1 * 1});
377*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 80, 240 * 1 * 1});
378*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 8 ************/
379*4bdc9457SAndroid Build Coastguard Worker /* M N K */
380*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 200, 80 * 1 * 1});
381*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 80, 200 * 1 * 1});
382*4bdc9457SAndroid Build Coastguard Worker /************* Bottleneck 9 ************/
383*4bdc9457SAndroid Build Coastguard Worker /* M N K */
384*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 184, 80 * 1 * 1});
385*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 80, 184 * 1 * 1});
386*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 10 ************/
387*4bdc9457SAndroid Build Coastguard Worker /* M N K */
388*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 184, 80 * 1 * 1});
389*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 80, 184 * 1 * 1});
390*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 11 ************/
391*4bdc9457SAndroid Build Coastguard Worker /* M N K */
392*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 480, 80 * 1 * 1});
393*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 120, 480 * 1 * 1});
394*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 480, 120 * 1 * 1});
395*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 112, 480 * 1 * 1});
396*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 12 ************/
397*4bdc9457SAndroid Build Coastguard Worker /* M N K */
398*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 672, 112 * 1 * 1});
399*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 168, 672 * 1 * 1});
400*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 672, 168 * 1 * 1});
401*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 112, 672 * 1 * 1});
402*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 13 ************/
403*4bdc9457SAndroid Build Coastguard Worker /* M N K */
404*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 14 * 14, 672, 112 * 1 * 1});
405*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 168, 672 * 1 * 1});
406*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 672, 168 * 1 * 1});
407*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 160, 672 * 1 * 1});
408*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 14 ************/
409*4bdc9457SAndroid Build Coastguard Worker /* M N K */
410*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 960, 160 * 1 * 1});
411*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 240, 960 * 1 * 1});
412*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 960, 240 * 1 * 1});
413*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 160, 960 * 1 * 1});
414*4bdc9457SAndroid Build Coastguard Worker /************ Bottleneck 15 ************/
415*4bdc9457SAndroid Build Coastguard Worker /* M N K */
416*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 7 * 7, 960, 160 * 1 * 1});
417*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 240, 960 * 1 * 1});
418*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 1 * 1, 960, 240 * 1 * 1});
419*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 7 * 7, 160, 960 * 1 * 1});
420*4bdc9457SAndroid Build Coastguard Worker /************* Last Stage *************/
421*4bdc9457SAndroid Build Coastguard Worker /* M N K */
422*4bdc9457SAndroid Build Coastguard Worker //b->Args({ 7 * 7, 960, 160 * 1 * 1});
423*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 1280, 960 * 1 * 1});
424*4bdc9457SAndroid Build Coastguard Worker b->Args({ 1 * 1, 1001, 1280 * 1 * 1});
425*4bdc9457SAndroid Build Coastguard Worker }
426*4bdc9457SAndroid Build Coastguard Worker
427*4bdc9457SAndroid Build Coastguard Worker // SqueezeNet 1.0
SqueezeNetV10GemmArguments(benchmark::internal::Benchmark * b)428*4bdc9457SAndroid Build Coastguard Worker static void SqueezeNetV10GemmArguments(benchmark::internal::Benchmark* b) {
429*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
430*4bdc9457SAndroid Build Coastguard Worker
431*4bdc9457SAndroid Build Coastguard Worker /************** Conv 1 ***************/
432*4bdc9457SAndroid Build Coastguard Worker /* M N K */
433*4bdc9457SAndroid Build Coastguard Worker b->Args({111 * 111, 96, 3 * 7 * 7});
434*4bdc9457SAndroid Build Coastguard Worker /************** Fire 2 ***************/
435*4bdc9457SAndroid Build Coastguard Worker /* M N K */
436*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 16, 96 * 1 * 1});
437*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 64, 16 * 1 * 1});
438*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 64, 16 * 3 * 3});
439*4bdc9457SAndroid Build Coastguard Worker /************** Fire 3 ***************/
440*4bdc9457SAndroid Build Coastguard Worker /* M N K */
441*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 16, 128 * 1 * 1});
442*4bdc9457SAndroid Build Coastguard Worker /************** Fire 4 ***************/
443*4bdc9457SAndroid Build Coastguard Worker /* M N K */
444*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 32, 128 * 1 * 1});
445*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 128, 32 * 1 * 1});
446*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 128, 32 * 3 * 3});
447*4bdc9457SAndroid Build Coastguard Worker /************** Fire 5 ***************/
448*4bdc9457SAndroid Build Coastguard Worker /* M N K */
449*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 32, 256 * 1 * 1});
450*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 128, 32 * 1 * 1});
451*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 128, 32 * 3 * 3});
452*4bdc9457SAndroid Build Coastguard Worker /************** Fire 6 ***************/
453*4bdc9457SAndroid Build Coastguard Worker /* M N K */
454*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 48, 256 * 1 * 1});
455*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 192, 48 * 1 * 1});
456*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 192, 48 * 3 * 3});
457*4bdc9457SAndroid Build Coastguard Worker /************** Fire 7 ***************/
458*4bdc9457SAndroid Build Coastguard Worker /* M N K */
459*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 48, 384 * 1 * 1});
460*4bdc9457SAndroid Build Coastguard Worker /************** Fire 8 ***************/
461*4bdc9457SAndroid Build Coastguard Worker /* M N K */
462*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 64, 384 * 1 * 1});
463*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 256, 64 * 1 * 1});
464*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 256, 64 * 3 * 3});
465*4bdc9457SAndroid Build Coastguard Worker /************** Fire 9 ***************/
466*4bdc9457SAndroid Build Coastguard Worker /* M N K */
467*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 64, 512 * 1 * 1});
468*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 256, 64 * 1 * 1});
469*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 256, 64 * 3 * 3});
470*4bdc9457SAndroid Build Coastguard Worker /************** Conv 10 **************/
471*4bdc9457SAndroid Build Coastguard Worker /* M N K */
472*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 1000, 512 * 1 * 1});
473*4bdc9457SAndroid Build Coastguard Worker }
474*4bdc9457SAndroid Build Coastguard Worker
475*4bdc9457SAndroid Build Coastguard Worker // SqueezeNet 1.1
SqueezeNetV11GemmArguments(benchmark::internal::Benchmark * b)476*4bdc9457SAndroid Build Coastguard Worker static void SqueezeNetV11GemmArguments(benchmark::internal::Benchmark* b) {
477*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
478*4bdc9457SAndroid Build Coastguard Worker
479*4bdc9457SAndroid Build Coastguard Worker /************** Conv 1 ***************/
480*4bdc9457SAndroid Build Coastguard Worker /* M N K */
481*4bdc9457SAndroid Build Coastguard Worker b->Args({111 * 111, 64, 3 * 3 * 3});
482*4bdc9457SAndroid Build Coastguard Worker /************** Fire 2 ***************/
483*4bdc9457SAndroid Build Coastguard Worker /* M N K */
484*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 16, 64 * 1 * 1});
485*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 64, 16 * 1 * 1});
486*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 64, 16 * 3 * 3});
487*4bdc9457SAndroid Build Coastguard Worker /************** Fire 3 ***************/
488*4bdc9457SAndroid Build Coastguard Worker /* M N K */
489*4bdc9457SAndroid Build Coastguard Worker b->Args({ 55 * 55, 16, 128 * 1 * 1});
490*4bdc9457SAndroid Build Coastguard Worker /************** Fire 4 ***************/
491*4bdc9457SAndroid Build Coastguard Worker /* M N K */
492*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 32, 128 * 1 * 1});
493*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 128, 32 * 1 * 1});
494*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 128, 32 * 3 * 3});
495*4bdc9457SAndroid Build Coastguard Worker /************** Fire 5 ***************/
496*4bdc9457SAndroid Build Coastguard Worker /* M N K */
497*4bdc9457SAndroid Build Coastguard Worker b->Args({ 27 * 27, 32, 256 * 1 * 1});
498*4bdc9457SAndroid Build Coastguard Worker /************** Fire 6 ***************/
499*4bdc9457SAndroid Build Coastguard Worker /* M N K */
500*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 48, 256 * 1 * 1});
501*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 192, 48 * 1 * 1});
502*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 192, 48 * 3 * 3});
503*4bdc9457SAndroid Build Coastguard Worker /************** Fire 7 ***************/
504*4bdc9457SAndroid Build Coastguard Worker /* M N K */
505*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 48, 384 * 1 * 1});
506*4bdc9457SAndroid Build Coastguard Worker /************** Fire 8 ***************/
507*4bdc9457SAndroid Build Coastguard Worker /* M N K */
508*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 64, 384 * 1 * 1});
509*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 256, 64 * 1 * 1});
510*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 256, 64 * 3 * 3});
511*4bdc9457SAndroid Build Coastguard Worker /************** Fire 9 ***************/
512*4bdc9457SAndroid Build Coastguard Worker /* M N K */
513*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 64, 512 * 1 * 1});
514*4bdc9457SAndroid Build Coastguard Worker /************** Conv 10 **************/
515*4bdc9457SAndroid Build Coastguard Worker /* M N K */
516*4bdc9457SAndroid Build Coastguard Worker b->Args({ 13 * 13, 1000, 512 * 1 * 1});
517*4bdc9457SAndroid Build Coastguard Worker }
518*4bdc9457SAndroid Build Coastguard Worker
InceptionV3GemmArguments(benchmark::internal::Benchmark * b)519*4bdc9457SAndroid Build Coastguard Worker static void InceptionV3GemmArguments(benchmark::internal::Benchmark* b) {
520*4bdc9457SAndroid Build Coastguard Worker /* M N K */
521*4bdc9457SAndroid Build Coastguard Worker b->Args({150 * 150, 32, 3 * 3 * 3});
522*4bdc9457SAndroid Build Coastguard Worker b->Args({149 * 149, 32, 32 * 3 * 3});
523*4bdc9457SAndroid Build Coastguard Worker b->Args({149 * 149, 64, 32 * 3 * 3});
524*4bdc9457SAndroid Build Coastguard Worker b->Args({ 75 * 75, 80, 64 * 1 * 1});
525*4bdc9457SAndroid Build Coastguard Worker b->Args({ 73 * 73, 192, 80 * 3 * 3});
526*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 64, 192 * 1 * 1});
527*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 48, 192 * 1 * 1});
528*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 64, 48 * 5 * 5});
529*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 96, 64 * 3 * 3});
530*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 96, 96 * 3 * 3});
531*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 32, 192 * 1 * 1});
532*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 64, 256 * 1 * 1});
533*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 48, 256 * 1 * 1});
534*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 64, 288 * 1 * 1});
535*4bdc9457SAndroid Build Coastguard Worker b->Args({ 37 * 37, 48, 288 * 1 * 1});
536*4bdc9457SAndroid Build Coastguard Worker b->Args({ 18 * 18, 384, 288 * 3 * 3});
537*4bdc9457SAndroid Build Coastguard Worker b->Args({ 18 * 18, 96, 96 * 3 * 3});
538*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 192, 768 * 1 * 1});
539*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 128, 768 * 1 * 1});
540*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 128, 128 * 1 * 7});
541*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 192, 128 * 7 * 1});
542*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 128, 128 * 7 * 1});
543*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 192, 128 * 1 * 7});
544*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 160, 768 * 1 * 1});
545*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 160, 160 * 1 * 7});
546*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 192, 160 * 7 * 1});
547*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 160, 160 * 7 * 1});
548*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 192, 160 * 1 * 7});
549*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 192, 192 * 1 * 7});
550*4bdc9457SAndroid Build Coastguard Worker b->Args({ 19 * 19, 192, 192 * 7 * 1});
551*4bdc9457SAndroid Build Coastguard Worker b->Args({ 9 * 9, 320, 192 * 3 * 3});
552*4bdc9457SAndroid Build Coastguard Worker b->Args({ 9 * 9, 192, 192 * 3 * 3});
553*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 320, 1280 * 1 * 1});
554*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 384, 1280 * 1 * 1});
555*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 384, 384 * 1 * 3});
556*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 384, 384 * 3 * 1});
557*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 448, 1280 * 1 * 1});
558*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 384, 448 * 3 * 3});
559*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 192, 1280 * 1 * 1});
560*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 320, 2048 * 1 * 1});
561*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 384, 2048 * 1 * 1});
562*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 448, 2048 * 1 * 1});
563*4bdc9457SAndroid Build Coastguard Worker b->Args({ 10 * 10, 192, 2048 * 1 * 1});
564*4bdc9457SAndroid Build Coastguard Worker b->Args({ 3 * 3, 1001, 2048 * 1 * 1});
565*4bdc9457SAndroid Build Coastguard Worker }
566*4bdc9457SAndroid Build Coastguard Worker
ResNet18GemmArguments(benchmark::internal::Benchmark * b)567*4bdc9457SAndroid Build Coastguard Worker static void ResNet18GemmArguments(benchmark::internal::Benchmark* b) {
568*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
569*4bdc9457SAndroid Build Coastguard Worker
570*4bdc9457SAndroid Build Coastguard Worker /* M N K */
571*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 64, 3 * 7 * 7});
572*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 64, 64 * 3 * 3});
573*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 128, 64 * 3 * 3});
574*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 128, 128 * 3 * 3});
575*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 128, 64 * 1 * 1});
576*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 256, 128 * 3 * 3});
577*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 256, 256 * 3 * 3});
578*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 256, 128 * 1 * 1});
579*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 512, 256 * 3 * 3});
580*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 512, 512 * 3 * 3});
581*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 512, 256 * 1 * 1});
582*4bdc9457SAndroid Build Coastguard Worker }
583*4bdc9457SAndroid Build Coastguard Worker
ResNet50GemmArguments(benchmark::internal::Benchmark * b)584*4bdc9457SAndroid Build Coastguard Worker static void ResNet50GemmArguments(benchmark::internal::Benchmark* b) {
585*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
586*4bdc9457SAndroid Build Coastguard Worker
587*4bdc9457SAndroid Build Coastguard Worker /*************** Conv 1 ***************/
588*4bdc9457SAndroid Build Coastguard Worker /* M N K */
589*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 64, 3 * 7 * 7});
590*4bdc9457SAndroid Build Coastguard Worker /************** Conv 2.X **************/
591*4bdc9457SAndroid Build Coastguard Worker /* M N K */
592*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 64, 64 * 1 * 1});
593*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 64, 64 * 3 * 3});
594*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 256, 64 * 1 * 1});
595*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 64, 256 * 1 * 1});
596*4bdc9457SAndroid Build Coastguard Worker /************** Conv 3.X **************/
597*4bdc9457SAndroid Build Coastguard Worker /* M N K */
598*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 128, 256 * 1 * 1});
599*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 128, 128 * 3 * 3});
600*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 512, 128 * 1 * 1});
601*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 512, 256 * 1 * 1});
602*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 128, 512 * 1 * 1});
603*4bdc9457SAndroid Build Coastguard Worker /************** Conv 4.X **************/
604*4bdc9457SAndroid Build Coastguard Worker /* M N K */
605*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 256, 512 * 1 * 1});
606*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 256, 256 * 3 * 3});
607*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 1024, 256 * 1 * 1});
608*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 1024, 512 * 1 * 1});
609*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 256, 1024 * 1 * 1});
610*4bdc9457SAndroid Build Coastguard Worker /************** Conv 5.X **************/
611*4bdc9457SAndroid Build Coastguard Worker /* M N K */
612*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 512, 1024 * 1 * 1});
613*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 512, 512 * 3 * 3});
614*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 2048, 512 * 1 * 1});
615*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 2048, 1024 * 1 * 1});
616*4bdc9457SAndroid Build Coastguard Worker b->Args({ 7 * 7, 512, 2048 * 1 * 1});
617*4bdc9457SAndroid Build Coastguard Worker }
618*4bdc9457SAndroid Build Coastguard Worker
VGGGemmArguments(benchmark::internal::Benchmark * b)619*4bdc9457SAndroid Build Coastguard Worker static void VGGGemmArguments(benchmark::internal::Benchmark* b) {
620*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
621*4bdc9457SAndroid Build Coastguard Worker
622*4bdc9457SAndroid Build Coastguard Worker /************** Conv 1.1 *************/
623*4bdc9457SAndroid Build Coastguard Worker /* M N K */
624*4bdc9457SAndroid Build Coastguard Worker b->Args({224 * 224, 64, 3 * 3 * 3});
625*4bdc9457SAndroid Build Coastguard Worker /************** Conv 1.2 *************/
626*4bdc9457SAndroid Build Coastguard Worker /* M N K */
627*4bdc9457SAndroid Build Coastguard Worker b->Args({224 * 224, 64, 64 * 3 * 3});
628*4bdc9457SAndroid Build Coastguard Worker /************** Conv 2.1 *************/
629*4bdc9457SAndroid Build Coastguard Worker /* M N K */
630*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 128, 64 * 3 * 3});
631*4bdc9457SAndroid Build Coastguard Worker /************** Conv 2.2 *************/
632*4bdc9457SAndroid Build Coastguard Worker /* M N K */
633*4bdc9457SAndroid Build Coastguard Worker b->Args({112 * 112, 128, 128 * 3 * 3});
634*4bdc9457SAndroid Build Coastguard Worker /************** Conv 3.1 *************/
635*4bdc9457SAndroid Build Coastguard Worker /* M N K */
636*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 256, 128 * 3 * 3});
637*4bdc9457SAndroid Build Coastguard Worker /************** Conv 3.3 *************/
638*4bdc9457SAndroid Build Coastguard Worker /* M N K */
639*4bdc9457SAndroid Build Coastguard Worker b->Args({ 56 * 56, 256, 256 * 1 * 1});
640*4bdc9457SAndroid Build Coastguard Worker /************** Conv 4.1 *************/
641*4bdc9457SAndroid Build Coastguard Worker /* M N K */
642*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 512, 256 * 3 * 3});
643*4bdc9457SAndroid Build Coastguard Worker /************** Conv 4.2 *************/
644*4bdc9457SAndroid Build Coastguard Worker /* M N K */
645*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 512, 512 * 3 * 3});
646*4bdc9457SAndroid Build Coastguard Worker /************** Conv 4.3 *************/
647*4bdc9457SAndroid Build Coastguard Worker /* M N K */
648*4bdc9457SAndroid Build Coastguard Worker b->Args({ 28 * 28, 512, 512 * 1 * 1});
649*4bdc9457SAndroid Build Coastguard Worker /************** Conv 5.X *************/
650*4bdc9457SAndroid Build Coastguard Worker /* M N K */
651*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 512, 512 * 3 * 3});
652*4bdc9457SAndroid Build Coastguard Worker /************** Conv 5.3 *************/
653*4bdc9457SAndroid Build Coastguard Worker /* M N K */
654*4bdc9457SAndroid Build Coastguard Worker b->Args({ 14 * 14, 512, 512 * 1 * 1});
655*4bdc9457SAndroid Build Coastguard Worker }
656*4bdc9457SAndroid Build Coastguard Worker
657*4bdc9457SAndroid Build Coastguard Worker // SRCNN (9-1-5)
SRCNN915GemmArguments(benchmark::internal::Benchmark * b)658*4bdc9457SAndroid Build Coastguard Worker static void SRCNN915GemmArguments(benchmark::internal::Benchmark* b) {
659*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
660*4bdc9457SAndroid Build Coastguard Worker
661*4bdc9457SAndroid Build Coastguard Worker /* M N K */
662*4bdc9457SAndroid Build Coastguard Worker b->Args({376 * 376, 64, 1 * 9 * 9});
663*4bdc9457SAndroid Build Coastguard Worker b->Args({376 * 376, 32, 64 * 1 * 1});
664*4bdc9457SAndroid Build Coastguard Worker b->Args({372 * 372, 1, 32 * 5 * 5});
665*4bdc9457SAndroid Build Coastguard Worker }
666*4bdc9457SAndroid Build Coastguard Worker
667*4bdc9457SAndroid Build Coastguard Worker // SRCNN (9-3-5)
SRCNN935GemmArguments(benchmark::internal::Benchmark * b)668*4bdc9457SAndroid Build Coastguard Worker static void SRCNN935GemmArguments(benchmark::internal::Benchmark* b) {
669*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
670*4bdc9457SAndroid Build Coastguard Worker
671*4bdc9457SAndroid Build Coastguard Worker /* M N K */
672*4bdc9457SAndroid Build Coastguard Worker b->Args({376 * 376, 64, 1 * 9 * 9});
673*4bdc9457SAndroid Build Coastguard Worker b->Args({374 * 374, 32, 64 * 3 * 3});
674*4bdc9457SAndroid Build Coastguard Worker b->Args({370 * 370, 1, 32 * 5 * 5});
675*4bdc9457SAndroid Build Coastguard Worker }
676*4bdc9457SAndroid Build Coastguard Worker
677*4bdc9457SAndroid Build Coastguard Worker // SRCNN (9-5-5)
SRCNN955GemmArguments(benchmark::internal::Benchmark * b)678*4bdc9457SAndroid Build Coastguard Worker static void SRCNN955GemmArguments(benchmark::internal::Benchmark* b) {
679*4bdc9457SAndroid Build Coastguard Worker b->ArgNames({"M", "N", "K"});
680*4bdc9457SAndroid Build Coastguard Worker
681*4bdc9457SAndroid Build Coastguard Worker /* M N K */
682*4bdc9457SAndroid Build Coastguard Worker b->Args({376 * 376, 64, 1 * 9 * 9});
683*4bdc9457SAndroid Build Coastguard Worker b->Args({372 * 372, 32, 64 * 5 * 5});
684*4bdc9457SAndroid Build Coastguard Worker b->Args({368 * 368, 1, 32 * 5 * 5});
685*4bdc9457SAndroid Build Coastguard Worker }
686