blob: 2777b9eb96015ef44098898fee7ec7d33c0cd479 [file] [log] [blame]
XNNPACK Teamb455b122019-09-27 18:10:33 -07001// Copyright 2019 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5
6#include <algorithm>
7#include <cfloat>
8#include <cmath>
9#include <functional>
10#include <random>
11#include <vector>
12
XNNPACK Teamb455b122019-09-27 18:10:33 -070013#include <benchmark/benchmark.h>
14#include "bench/dwconv.h"
15#include "bench/utils.h"
16#include <xnnpack/AlignedAllocator.h>
Marat Dukhan1dadbf72019-10-01 10:46:20 -070017#include <xnnpack/common.h>
XNNPACK Teamb455b122019-09-27 18:10:33 -070018#include <xnnpack/dwconv.h>
19#include <xnnpack/indirection.h>
20#include <xnnpack/operator.h>
21#include <xnnpack/pack.h>
Marat Dukhaneeaa7bd2019-10-25 17:31:25 -070022#include <xnnpack/params-init.h>
23#include <xnnpack/params.h>
XNNPACK Teamb455b122019-09-27 18:10:33 -070024
25
Marat Dukhanbf715f92020-10-23 20:17:00 -070026static void DWConv2DBenchmark(benchmark::State& state,
27 xnn_f32_dwconv2d_chw_ukernel_function dwconv,
Marat Dukhan98f2eeb2020-10-23 23:13:41 -070028 uint32_t kh, uint32_t kw, uint32_t pw, uint32_t s,
29 benchmark::utils::IsaCheckFunction isa_check = nullptr)
XNNPACK Teamb455b122019-09-27 18:10:33 -070030{
Marat Dukhan98f2eeb2020-10-23 23:13:41 -070031 if (isa_check && !isa_check(state)) {
32 return;
33 }
XNNPACK Teamb455b122019-09-27 18:10:33 -070034
35 const size_t input_height = state.range(0);
36 const size_t input_width = state.range(1);
37 const size_t kernel_height = state.range(2);
38 const size_t kernel_width = state.range(3);
39 const size_t padding_height = state.range(4);
40 const size_t padding_width = state.range(5);
41 const size_t subsampling = state.range(6);
42 const size_t dilation = state.range(7);
43 const size_t channels = state.range(8);
44
45 if (kernel_height != kh) {
46 state.SkipWithError("kernel height mismatch");
47 return;
48 }
49
50 if (kernel_width != kw) {
51 state.SkipWithError("kernel width mismatch");
52 return;
53 }
54
55 if (subsampling != s) {
56 state.SkipWithError("subsampling mismatch");
57 return;
58 }
59
60 if (padding_width % 2 != 0 || padding_width / 2 != pw) {
61 state.SkipWithError("padding width mismatch");
62 return;
63 }
64
65 if (dilation != 1) {
66 state.SkipWithError("unsupported dilation");
67 return;
68 }
69
70 std::random_device random_device;
71 auto rng = std::mt19937(random_device());
Marat Dukhan44f0ca72020-08-02 21:46:58 -070072 auto f32rng = std::bind(std::uniform_real_distribution<float>(0.0f, 1.0f), std::ref(rng));
XNNPACK Teamb455b122019-09-27 18:10:33 -070073
74 const size_t effective_kernel_height = (kernel_height - 1) * dilation + 1;
75 const size_t effective_kernel_width = (kernel_width - 1) * dilation + 1;
76 const size_t output_height = (input_height + padding_height - effective_kernel_height) / subsampling + 1;
77 const size_t output_width = (input_width + padding_width - effective_kernel_width) / subsampling + 1;
78
79 const size_t inputSize = (input_height + padding_height) * input_width;
80 const size_t kernel_size = kernel_height * kernel_width;
81 const size_t output_size = output_height * output_width;
82
Marat Dukhanae7e8b22020-10-20 17:51:51 -070083 std::vector<float> input(inputSize * channels + 2 * XNN_EXTRA_BYTES);
XNNPACK Teamb455b122019-09-27 18:10:33 -070084 std::generate(input.begin(), input.end(), std::ref(f32rng));
85 std::vector<float> bias(channels);
86 std::generate(bias.begin(), bias.end(), std::ref(f32rng));
87 std::vector<float> kernel(channels * kernel_size);
88 std::generate(kernel.begin(), kernel.end(), std::ref(f32rng));
Erich Elsen4e5db3d2020-05-07 08:57:47 -070089 std::vector<float> zero(input_width + padding_width);
XNNPACK Teamb455b122019-09-27 18:10:33 -070090
91 const size_t w_elements = (kernel_size + 1) * channels;
92 const size_t o_elements = output_size * channels;
93 const size_t num_buffers = 1 +
Marat Dukhan42323232019-10-23 02:09:02 -070094 benchmark::utils::DivideRoundUp<size_t>(benchmark::utils::GetMaxCacheSize(),
XNNPACK Teamb455b122019-09-27 18:10:33 -070095 sizeof(float) * (w_elements + o_elements));
96
Marat Dukhane13e6392021-07-26 22:22:35 -070097 std::vector<float, AlignedAllocator<float, 64>> packed_weights(w_elements * num_buffers);
XNNPACK Teamb455b122019-09-27 18:10:33 -070098 std::fill(packed_weights.begin(), packed_weights.end(), 0.0f);
99 for (size_t c = 0; c < channels; c++) {
100 packed_weights[c * kernel_size + c] = bias[c];
101 for (size_t i = 0; i < kernel_size; i++) {
102 packed_weights[c * kernel_size + c + 1 + i] = kernel[c * kernel_size + i];
103 }
104 }
105 for (size_t n = 1; n < num_buffers; n++) {
106 std::copy(packed_weights.cbegin(), packed_weights.cbegin() + w_elements, packed_weights.begin() + n * w_elements);
107 }
108
109 std::vector<float> output(o_elements * num_buffers);
110 std::fill(output.begin(), output.end(), std::nanf(""));
111
Marat Dukhanf56f4c42021-05-17 01:47:20 -0700112 xnn_f32_chw_params chw_params;
113 xnn_init_f32_chw_params(
114 &chw_params, input_width, -std::numeric_limits<float>::infinity(), +std::numeric_limits<float>::infinity());
XNNPACK Teamb455b122019-09-27 18:10:33 -0700115
116 size_t buffer_index = 0;
117 for (auto _ : state) {
118 state.PauseTiming();
Marat Dukhan42323232019-10-23 02:09:02 -0700119 benchmark::utils::PrefetchToL1(input.data(), input.size() * sizeof(float));
XNNPACK Teamb455b122019-09-27 18:10:33 -0700120 buffer_index = (buffer_index + 1) % num_buffers;
121 state.ResumeTiming();
122
123 for (uint32_t channel = 0; channel < channels; channel++) {
124 dwconv(
Marat Dukhan75157772020-10-21 01:46:28 -0700125 input_height, input_width * sizeof(float),
XNNPACK Teamb455b122019-09-27 18:10:33 -0700126 input.data() + channel * inputSize,
127 packed_weights.data() + channel * (kernel_size + 1) + buffer_index * w_elements,
Erich Elsen4e5db3d2020-05-07 08:57:47 -0700128 zero.data(),
XNNPACK Teamb455b122019-09-27 18:10:33 -0700129 output.data() + channel * output_size + buffer_index * o_elements,
Erich Elsen4e5db3d2020-05-07 08:57:47 -0700130 padding_height / 2, // padding_top
Marat Dukhan1f29b802020-05-15 23:46:39 -0700131 &chw_params);
XNNPACK Teamb455b122019-09-27 18:10:33 -0700132 }
133 }
134
Marat Dukhand713e8a2020-12-04 14:23:12 -0800135 const uint64_t cpu_frequency = benchmark::utils::GetCurrentCpuFrequency();
136 if (cpu_frequency != 0) {
137 state.counters["cpufreq"] = cpu_frequency;
138 }
139
XNNPACK Teamb455b122019-09-27 18:10:33 -0700140 state.counters["FLOPS"] = benchmark::Counter(
141 uint64_t(state.iterations()) * 2 * output_size * channels * kernel_size,
142 benchmark::Counter::kIsRate);
143
Marat Dukhand713e8a2020-12-04 14:23:12 -0800144 state.counters["bytes"] = benchmark::Counter(
XNNPACK Teamb455b122019-09-27 18:10:33 -0700145 uint64_t(state.iterations()) * (output_size + inputSize + kernel_size + 1 /* bias */) * channels * sizeof(float),
146 benchmark::Counter::kIsRate);
147}
148
Marat Dukhanc581e482020-10-24 01:28:11 -0700149#if XNN_ARCH_ARM
150 static void dwconv2d_chw_3x3p1__neon_1x4(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800151 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700152 }
153 static void dwconv2d_chw_3x3p1__neon_2x4(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800154 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_2x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700155 }
156 static void dwconv2d_chw_3x3p1__neon_3x4(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800157 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_3x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700158 }
159 static void dwconv2d_chw_3x3p1__neon_4x4(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800160 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_4x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700161 }
162 static void dwconv2d_chw_3x3p1__neon_5x4(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800163 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_5x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700164 }
165 static void dwconv2d_chw_3x3p1__neon_6x4(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800166 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_6x4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700167 }
168 static void dwconv2d_chw_3x3p1__neon_1x4_acc2(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800169 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700170 }
171 static void dwconv2d_chw_3x3p1__neon_1x4_acc3(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800172 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4_acc3, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700173 }
174 static void dwconv2d_chw_3x3p1__neon_1x4_acc4(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800175 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_1x4_acc4, 3, 3, 1, 1, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700176 }
177 static void dwconv2d_chw_3x3p1__neon_2x4_acc2(benchmark::State& state, const char* net) {
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800178 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neon_2x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckNEON);
179 }
180
181 static void dwconv2d_chw_3x3s2p1__neon_1x4(benchmark::State& state, const char* net) {
182 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
183 }
184 static void dwconv2d_chw_3x3s2p1__neon_2x4(benchmark::State& state, const char* net) {
185 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_2x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
186 }
187 static void dwconv2d_chw_3x3s2p1__neon_3x4(benchmark::State& state, const char* net) {
188 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_3x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
189 }
190 static void dwconv2d_chw_3x3s2p1__neon_4x4(benchmark::State& state, const char* net) {
191 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_4x4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
192 }
193 static void dwconv2d_chw_3x3s2p1__neon_1x4_acc2(benchmark::State& state, const char* net) {
194 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4_acc2, 3, 3, 1, 2, benchmark::utils::CheckNEON);
195 }
196 static void dwconv2d_chw_3x3s2p1__neon_1x4_acc3(benchmark::State& state, const char* net) {
197 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4_acc3, 3, 3, 1, 2, benchmark::utils::CheckNEON);
198 }
199 static void dwconv2d_chw_3x3s2p1__neon_1x4_acc4(benchmark::State& state, const char* net) {
200 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_1x4_acc4, 3, 3, 1, 2, benchmark::utils::CheckNEON);
201 }
202 static void dwconv2d_chw_3x3s2p1__neon_2x4_acc2(benchmark::State& state, const char* net) {
203 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neon_2x4_acc2, 3, 3, 1, 2, benchmark::utils::CheckNEON);
204 }
205
206 static void dwconv2d_chw_5x5p2__neon_1x4(benchmark::State& state, const char* net) {
207 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
208 }
209 static void dwconv2d_chw_5x5p2__neon_2x4(benchmark::State& state, const char* net) {
210 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_2x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
211 }
212 static void dwconv2d_chw_5x5p2__neon_3x4(benchmark::State& state, const char* net) {
213 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_3x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
214 }
215 static void dwconv2d_chw_5x5p2__neon_4x4(benchmark::State& state, const char* net) {
216 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_4x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
217 }
218 static void dwconv2d_chw_5x5p2__neon_5x4(benchmark::State& state, const char* net) {
219 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_5x4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
220 }
221 static void dwconv2d_chw_5x5p2__neon_1x4_acc2(benchmark::State& state, const char* net) {
222 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
223 }
224 static void dwconv2d_chw_5x5p2__neon_1x4_acc3(benchmark::State& state, const char* net) {
225 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc3, 5, 5, 2, 1, benchmark::utils::CheckNEON);
226 }
227 static void dwconv2d_chw_5x5p2__neon_1x4_acc4(benchmark::State& state, const char* net) {
228 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc4, 5, 5, 2, 1, benchmark::utils::CheckNEON);
229 }
230 static void dwconv2d_chw_5x5p2__neon_1x4_acc5(benchmark::State& state, const char* net) {
231 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_1x4_acc5, 5, 5, 2, 1, benchmark::utils::CheckNEON);
232 }
233 static void dwconv2d_chw_5x5p2__neon_2x4_acc2(benchmark::State& state, const char* net) {
234 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_2x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
235 }
236 static void dwconv2d_chw_5x5p2__neon_2x4_acc3(benchmark::State& state, const char* net) {
237 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_2x4_acc3, 5, 5, 2, 1, benchmark::utils::CheckNEON);
238 }
239 static void dwconv2d_chw_5x5p2__neon_3x4_acc2(benchmark::State& state, const char* net) {
240 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_3x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
241 }
242 static void dwconv2d_chw_5x5p2__neon_4x4_acc2(benchmark::State& state, const char* net) {
243 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neon_4x4_acc2, 5, 5, 2, 1, benchmark::utils::CheckNEON);
244 }
245
246 static void dwconv2d_chw_5x5s2p2__neon_1x4(benchmark::State& state, const char* net) {
247 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
248 }
249 static void dwconv2d_chw_5x5s2p2__neon_2x4(benchmark::State& state, const char* net) {
250 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_2x4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
251 }
252 static void dwconv2d_chw_5x5s2p2__neon_3x4(benchmark::State& state, const char* net) {
253 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_3x4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
254 }
255 static void dwconv2d_chw_5x5s2p2__neon_1x4_acc2(benchmark::State& state, const char* net) {
256 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc2, 5, 5, 2, 2, benchmark::utils::CheckNEON);
257 }
258 static void dwconv2d_chw_5x5s2p2__neon_1x4_acc3(benchmark::State& state, const char* net) {
259 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc3, 5, 5, 2, 2, benchmark::utils::CheckNEON);
260 }
261 static void dwconv2d_chw_5x5s2p2__neon_1x4_acc4(benchmark::State& state, const char* net) {
262 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc4, 5, 5, 2, 2, benchmark::utils::CheckNEON);
263 }
264 static void dwconv2d_chw_5x5s2p2__neon_1x4_acc5(benchmark::State& state, const char* net) {
265 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_1x4_acc5, 5, 5, 2, 2, benchmark::utils::CheckNEON);
266 }
267 static void dwconv2d_chw_5x5s2p2__neon_2x4_acc2(benchmark::State& state, const char* net) {
268 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_2x4_acc2, 5, 5, 2, 2, benchmark::utils::CheckNEON);
269 }
270 static void dwconv2d_chw_5x5s2p2__neon_2x4_acc3(benchmark::State& state, const char* net) {
271 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_2x4_acc3, 5, 5, 2, 2, benchmark::utils::CheckNEON);
272 }
273 static void dwconv2d_chw_5x5s2p2__neon_3x4_acc2(benchmark::State& state, const char* net) {
274 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neon_3x4_acc2, 5, 5, 2, 2, benchmark::utils::CheckNEON);
Marat Dukhanc581e482020-10-24 01:28:11 -0700275 }
276
277 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4)
278 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_2x4)
279 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_3x4)
280 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_4x4)
281 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_5x4)
282 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_6x4)
283 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4_acc2)
284 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4_acc3)
285 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_1x4_acc4)
286 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neon_2x4_acc2)
Marat Dukhanc8bbe702020-12-07 13:01:29 -0800287
288 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4)
289 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_2x4)
290 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_3x4)
291 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_4x4)
292 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4_acc2)
293 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4_acc3)
294 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_1x4_acc4)
295 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neon_2x4_acc2)
296
297 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4)
298 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_2x4)
299 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_3x4)
300 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_4x4)
301 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_5x4)
302 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc2)
303 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc3)
304 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc4)
305 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_1x4_acc5)
306 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_2x4_acc2)
307 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_2x4_acc3)
308 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_3x4_acc2)
309 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neon_4x4_acc2)
310
311 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4)
312 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_2x4)
313 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_3x4)
314 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc2)
315 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc3)
316 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc4)
317 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_1x4_acc5)
318 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_2x4_acc2)
319 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_2x4_acc3)
320 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neon_3x4_acc2)
Marat Dukhanc581e482020-10-24 01:28:11 -0700321#endif // XNN_ARCH_ARM
322
Marat Dukhan1dadbf72019-10-01 10:46:20 -0700323#if XNN_ARCH_ARM64
Marat Dukhan1268a242020-10-24 00:36:32 -0700324 static void dwconv2d_chw_3x3p1__neonfma_1x4(benchmark::State& state, const char* net) {
325 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4, 3, 3, 1, 1);
326 }
327 static void dwconv2d_chw_3x3p1__neonfma_2x4(benchmark::State& state, const char* net) {
328 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_2x4, 3, 3, 1, 1);
329 }
Marat Dukhanbf715f92020-10-23 20:17:00 -0700330 static void dwconv2d_chw_3x3p1__neonfma_3x4(benchmark::State& state, const char* net) {
331 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_3x4, 3, 3, 1, 1);
XNNPACK Teamb455b122019-09-27 18:10:33 -0700332 }
Marat Dukhan1268a242020-10-24 00:36:32 -0700333 static void dwconv2d_chw_3x3p1__neonfma_4x4(benchmark::State& state, const char* net) {
334 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_4x4, 3, 3, 1, 1);
335 }
336 static void dwconv2d_chw_3x3p1__neonfma_5x4(benchmark::State& state, const char* net) {
337 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_5x4, 3, 3, 1, 1);
338 }
339 static void dwconv2d_chw_3x3p1__neonfma_6x4(benchmark::State& state, const char* net) {
340 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_6x4, 3, 3, 1, 1);
341 }
342 static void dwconv2d_chw_3x3p1__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
343 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4_acc2, 3, 3, 1, 1);
344 }
345 static void dwconv2d_chw_3x3p1__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
346 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4_acc3, 3, 3, 1, 1);
347 }
348 static void dwconv2d_chw_3x3p1__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
349 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_1x4_acc4, 3, 3, 1, 1);
350 }
351 static void dwconv2d_chw_3x3p1__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
352 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__neonfma_2x4_acc2, 3, 3, 1, 1);
353 }
XNNPACK Teamb455b122019-09-27 18:10:33 -0700354
Marat Dukhan82f0c322020-10-25 19:17:35 -0700355 static void dwconv2d_chw_3x3s2p1__neonfma_1x4(benchmark::State& state, const char* net) {
356 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4, 3, 3, 1, 2);
357 }
358 static void dwconv2d_chw_3x3s2p1__neonfma_2x4(benchmark::State& state, const char* net) {
359 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_2x4, 3, 3, 1, 2);
360 }
361 static void dwconv2d_chw_3x3s2p1__neonfma_3x4(benchmark::State& state, const char* net) {
362 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_3x4, 3, 3, 1, 2);
363 }
364 static void dwconv2d_chw_3x3s2p1__neonfma_4x4(benchmark::State& state, const char* net) {
365 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_4x4, 3, 3, 1, 2);
366 }
367 static void dwconv2d_chw_3x3s2p1__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
368 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4_acc2, 3, 3, 1, 2);
369 }
Marat Dukhanbf715f92020-10-23 20:17:00 -0700370 static void dwconv2d_chw_3x3s2p1__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
371 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4_acc3, 3, 3, 1, 2);
XNNPACK Teamb455b122019-09-27 18:10:33 -0700372 }
Marat Dukhan82f0c322020-10-25 19:17:35 -0700373 static void dwconv2d_chw_3x3s2p1__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
374 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_1x4_acc4, 3, 3, 1, 2);
375 }
376 static void dwconv2d_chw_3x3s2p1__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
377 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__neonfma_2x4_acc2, 3, 3, 1, 2);
378 }
XNNPACK Teamb455b122019-09-27 18:10:33 -0700379
Marat Dukhan149f0ea2020-10-26 12:50:33 -0700380 static void dwconv2d_chw_5x5p2__neonfma_1x4(benchmark::State& state, const char* net) {
381 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4, 5, 5, 2, 1);
382 }
383 static void dwconv2d_chw_5x5p2__neonfma_2x4(benchmark::State& state, const char* net) {
384 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_2x4, 5, 5, 2, 1);
385 }
Marat Dukhanbf715f92020-10-23 20:17:00 -0700386 static void dwconv2d_chw_5x5p2__neonfma_3x4(benchmark::State& state, const char* net) {
387 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_3x4, 5, 5, 2, 1);
XNNPACK Teamb455b122019-09-27 18:10:33 -0700388 }
Marat Dukhan149f0ea2020-10-26 12:50:33 -0700389 static void dwconv2d_chw_5x5p2__neonfma_4x4(benchmark::State& state, const char* net) {
390 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_4x4, 5, 5, 2, 1);
391 }
392 static void dwconv2d_chw_5x5p2__neonfma_5x4(benchmark::State& state, const char* net) {
393 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_5x4, 5, 5, 2, 1);
394 }
395 static void dwconv2d_chw_5x5p2__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
396 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc2, 5, 5, 2, 1);
397 }
398 static void dwconv2d_chw_5x5p2__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
399 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc3, 5, 5, 2, 1);
400 }
401 static void dwconv2d_chw_5x5p2__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
402 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc4, 5, 5, 2, 1);
403 }
404 static void dwconv2d_chw_5x5p2__neonfma_1x4_acc5(benchmark::State& state, const char* net) {
405 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_1x4_acc5, 5, 5, 2, 1);
406 }
407 static void dwconv2d_chw_5x5p2__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
408 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_2x4_acc2, 5, 5, 2, 1);
409 }
410 static void dwconv2d_chw_5x5p2__neonfma_2x4_acc3(benchmark::State& state, const char* net) {
411 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_2x4_acc3, 5, 5, 2, 1);
412 }
413 static void dwconv2d_chw_5x5p2__neonfma_3x4_acc2(benchmark::State& state, const char* net) {
414 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_3x4_acc2, 5, 5, 2, 1);
415 }
416 static void dwconv2d_chw_5x5p2__neonfma_4x4_acc2(benchmark::State& state, const char* net) {
417 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__neonfma_4x4_acc2, 5, 5, 2, 1);
418 }
XNNPACK Teamb455b122019-09-27 18:10:33 -0700419
Marat Dukhan30d4b252020-10-29 16:33:22 -0700420 static void dwconv2d_chw_5x5s2p2__neonfma_1x4(benchmark::State& state, const char* net) {
421 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4, 5, 5, 2, 2);
422 }
423 static void dwconv2d_chw_5x5s2p2__neonfma_2x4(benchmark::State& state, const char* net) {
424 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_2x4, 5, 5, 2, 2);
425 }
426 static void dwconv2d_chw_5x5s2p2__neonfma_3x4(benchmark::State& state, const char* net) {
427 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_3x4, 5, 5, 2, 2);
428 }
Marat Dukhanbf715f92020-10-23 20:17:00 -0700429 static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc2(benchmark::State& state, const char* net) {
430 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc2, 5, 5, 2, 2);
XNNPACK Teamb455b122019-09-27 18:10:33 -0700431 }
Marat Dukhan30d4b252020-10-29 16:33:22 -0700432 static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc3(benchmark::State& state, const char* net) {
433 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc3, 5, 5, 2, 2);
434 }
435 static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc4(benchmark::State& state, const char* net) {
436 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc4, 5, 5, 2, 2);
437 }
438 static void dwconv2d_chw_5x5s2p2__neonfma_1x4_acc5(benchmark::State& state, const char* net) {
439 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_1x4_acc5, 5, 5, 2, 2);
440 }
441 static void dwconv2d_chw_5x5s2p2__neonfma_2x4_acc2(benchmark::State& state, const char* net) {
442 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_2x4_acc2, 5, 5, 2, 2);
443 }
444 static void dwconv2d_chw_5x5s2p2__neonfma_2x4_acc3(benchmark::State& state, const char* net) {
445 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_2x4_acc3, 5, 5, 2, 2);
446 }
447 static void dwconv2d_chw_5x5s2p2__neonfma_3x4_acc2(benchmark::State& state, const char* net) {
448 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__neonfma_3x4_acc2, 5, 5, 2, 2);
449 }
XNNPACK Teamb455b122019-09-27 18:10:33 -0700450
Marat Dukhan1268a242020-10-24 00:36:32 -0700451 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4)
452 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_2x4)
Marat Dukhanbf715f92020-10-23 20:17:00 -0700453 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_3x4)
Marat Dukhan1268a242020-10-24 00:36:32 -0700454 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_4x4)
455 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_5x4)
456 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_6x4)
457 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4_acc2)
458 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4_acc3)
459 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_1x4_acc4)
460 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__neonfma_2x4_acc2)
461
Marat Dukhan82f0c322020-10-25 19:17:35 -0700462 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4)
463 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_2x4)
464 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_3x4)
465 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_4x4)
466 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4_acc2)
Marat Dukhanbf715f92020-10-23 20:17:00 -0700467 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4_acc3)
Marat Dukhan82f0c322020-10-25 19:17:35 -0700468 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_1x4_acc4)
469 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__neonfma_2x4_acc2)
Marat Dukhan1268a242020-10-24 00:36:32 -0700470
Marat Dukhan149f0ea2020-10-26 12:50:33 -0700471 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4)
472 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_2x4)
Marat Dukhanbf715f92020-10-23 20:17:00 -0700473 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_3x4)
Marat Dukhan149f0ea2020-10-26 12:50:33 -0700474 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_4x4)
475 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_5x4)
476 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc2)
477 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc3)
478 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc4)
479 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_1x4_acc5)
480 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_2x4_acc2)
481 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_2x4_acc3)
482 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_3x4_acc2)
483 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__neonfma_4x4_acc2)
Marat Dukhan1268a242020-10-24 00:36:32 -0700484
Marat Dukhan30d4b252020-10-29 16:33:22 -0700485 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4)
486 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_2x4)
487 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_3x4)
Marat Dukhanbf715f92020-10-23 20:17:00 -0700488 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc2)
Marat Dukhan30d4b252020-10-29 16:33:22 -0700489 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc3)
490 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc4)
491 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_1x4_acc5)
492 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_2x4_acc2)
493 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_2x4_acc3)
494 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__neonfma_3x4_acc2)
Marat Dukhan1dadbf72019-10-01 10:46:20 -0700495#endif // XNN_ARCH_ARM64
XNNPACK Teamb455b122019-09-27 18:10:33 -0700496
Marat Dukhan1dadbf72019-10-01 10:46:20 -0700497#if XNN_ARCH_X86 || XNN_ARCH_X86_64
Marat Dukhan470078a2020-10-23 22:36:52 -0700498 static void dwconv2d_chw_3x3p1__sse_1x4(benchmark::State& state, const char* net) {
499 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4, 3, 3, 1, 1);
500 }
501 static void dwconv2d_chw_3x3p1__sse_2x4(benchmark::State& state, const char* net) {
502 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_2x4, 3, 3, 1, 1);
503 }
504 static void dwconv2d_chw_3x3p1__sse_3x4(benchmark::State& state, const char* net) {
505 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_3x4, 3, 3, 1, 1);
506 }
507 static void dwconv2d_chw_3x3p1__sse_4x4(benchmark::State& state, const char* net) {
508 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_4x4, 3, 3, 1, 1);
509 }
510 static void dwconv2d_chw_3x3p1__sse_5x4(benchmark::State& state, const char* net) {
511 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_5x4, 3, 3, 1, 1);
512 }
513 static void dwconv2d_chw_3x3p1__sse_6x4(benchmark::State& state, const char* net) {
514 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_6x4, 3, 3, 1, 1);
515 }
516 static void dwconv2d_chw_3x3p1__sse_1x4_acc2(benchmark::State& state, const char* net) {
517 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4_acc2, 3, 3, 1, 1);
518 }
Marat Dukhanbf715f92020-10-23 20:17:00 -0700519 static void dwconv2d_chw_3x3p1__sse_1x4_acc3(benchmark::State& state, const char* net) {
520 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4_acc3, 3, 3, 1, 1);
XNNPACK Teamb455b122019-09-27 18:10:33 -0700521 }
Marat Dukhan470078a2020-10-23 22:36:52 -0700522 static void dwconv2d_chw_3x3p1__sse_1x4_acc4(benchmark::State& state, const char* net) {
523 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_1x4_acc4, 3, 3, 1, 1);
524 }
525 static void dwconv2d_chw_3x3p1__sse_2x4_acc2(benchmark::State& state, const char* net) {
526 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__sse_2x4_acc2, 3, 3, 1, 1);
527 }
XNNPACK Teamb455b122019-09-27 18:10:33 -0700528
Marat Dukhan98f2eeb2020-10-23 23:13:41 -0700529 static void dwconv2d_chw_3x3p1__ssse3_1x4(benchmark::State& state, const char* net) {
530 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
531 }
532 static void dwconv2d_chw_3x3p1__ssse3_2x4(benchmark::State& state, const char* net) {
533 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_2x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
534 }
535 static void dwconv2d_chw_3x3p1__ssse3_3x4(benchmark::State& state, const char* net) {
536 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_3x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
537 }
538 static void dwconv2d_chw_3x3p1__ssse3_4x4(benchmark::State& state, const char* net) {
539 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_4x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
540 }
541 static void dwconv2d_chw_3x3p1__ssse3_5x4(benchmark::State& state, const char* net) {
542 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_5x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
543 }
544 static void dwconv2d_chw_3x3p1__ssse3_6x4(benchmark::State& state, const char* net) {
545 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_6x4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
546 }
547 static void dwconv2d_chw_3x3p1__ssse3_1x4_acc2(benchmark::State& state, const char* net) {
548 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
549 }
550 static void dwconv2d_chw_3x3p1__ssse3_1x4_acc3(benchmark::State& state, const char* net) {
551 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4_acc3, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
552 }
553 static void dwconv2d_chw_3x3p1__ssse3_1x4_acc4(benchmark::State& state, const char* net) {
554 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_1x4_acc4, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
555 }
556 static void dwconv2d_chw_3x3p1__ssse3_2x4_acc2(benchmark::State& state, const char* net) {
557 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__ssse3_2x4_acc2, 3, 3, 1, 1, benchmark::utils::CheckSSSE3);
558 }
559
Marat Dukhan0ff97182020-10-25 19:14:03 -0700560 static void dwconv2d_chw_3x3s2p1__sse_1x4(benchmark::State& state, const char* net) {
561 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4, 3, 3, 1, 2);
562 }
563 static void dwconv2d_chw_3x3s2p1__sse_2x4(benchmark::State& state, const char* net) {
564 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_2x4, 3, 3, 1, 2);
565 }
566 static void dwconv2d_chw_3x3s2p1__sse_3x4(benchmark::State& state, const char* net) {
567 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_3x4, 3, 3, 1, 2);
568 }
569 static void dwconv2d_chw_3x3s2p1__sse_4x4(benchmark::State& state, const char* net) {
570 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_4x4, 3, 3, 1, 2);
571 }
572 static void dwconv2d_chw_3x3s2p1__sse_1x4_acc2(benchmark::State& state, const char* net) {
573 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4_acc2, 3, 3, 1, 2);
574 }
Marat Dukhanbf715f92020-10-23 20:17:00 -0700575 static void dwconv2d_chw_3x3s2p1__sse_1x4_acc3(benchmark::State& state, const char* net) {
576 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4_acc3, 3, 3, 1, 2);
XNNPACK Teamb455b122019-09-27 18:10:33 -0700577 }
Marat Dukhan0ff97182020-10-25 19:14:03 -0700578 static void dwconv2d_chw_3x3s2p1__sse_1x4_acc4(benchmark::State& state, const char* net) {
579 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_1x4_acc4, 3, 3, 1, 2);
580 }
581 static void dwconv2d_chw_3x3s2p1__sse_2x4_acc2(benchmark::State& state, const char* net) {
582 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__sse_2x4_acc2, 3, 3, 1, 2);
583 }
XNNPACK Teamb455b122019-09-27 18:10:33 -0700584
Marat Dukhand0503892020-10-30 08:22:04 -0700585 static void dwconv2d_chw_5x5p2__sse_1x4(benchmark::State& state, const char* net) {
586 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4, 5, 5, 2, 1);
587 }
588 static void dwconv2d_chw_5x5p2__sse_2x4(benchmark::State& state, const char* net) {
589 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_2x4, 5, 5, 2, 1);
590 }
591 static void dwconv2d_chw_5x5p2__sse_3x4(benchmark::State& state, const char* net) {
592 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_3x4, 5, 5, 2, 1);
593 }
594 static void dwconv2d_chw_5x5p2__sse_4x4(benchmark::State& state, const char* net) {
595 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_4x4, 5, 5, 2, 1);
596 }
597 static void dwconv2d_chw_5x5p2__sse_5x4(benchmark::State& state, const char* net) {
598 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_5x4, 5, 5, 2, 1);
599 }
600 static void dwconv2d_chw_5x5p2__sse_1x4_acc2(benchmark::State& state, const char* net) {
601 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc2, 5, 5, 2, 1);
602 }
603 static void dwconv2d_chw_5x5p2__sse_1x4_acc3(benchmark::State& state, const char* net) {
604 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc3, 5, 5, 2, 1);
605 }
606 static void dwconv2d_chw_5x5p2__sse_1x4_acc4(benchmark::State& state, const char* net) {
607 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc4, 5, 5, 2, 1);
608 }
609 static void dwconv2d_chw_5x5p2__sse_1x4_acc5(benchmark::State& state, const char* net) {
610 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_1x4_acc5, 5, 5, 2, 1);
611 }
612 static void dwconv2d_chw_5x5p2__sse_2x4_acc2(benchmark::State& state, const char* net) {
613 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_2x4_acc2, 5, 5, 2, 1);
614 }
615 static void dwconv2d_chw_5x5p2__sse_2x4_acc3(benchmark::State& state, const char* net) {
616 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_2x4_acc3, 5, 5, 2, 1);
617 }
618 static void dwconv2d_chw_5x5p2__sse_3x4_acc2(benchmark::State& state, const char* net) {
619 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_3x4_acc2, 5, 5, 2, 1);
620 }
621 static void dwconv2d_chw_5x5p2__sse_4x4_acc2(benchmark::State& state, const char* net) {
622 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__sse_4x4_acc2, 5, 5, 2, 1);
623 }
624
Marat Dukhanccca2142020-10-30 17:32:45 -0700625 static void dwconv2d_chw_5x5s2p2__sse_1x4(benchmark::State& state, const char* net) {
626 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4, 5, 5, 2, 2);
627 }
628 static void dwconv2d_chw_5x5s2p2__sse_2x4(benchmark::State& state, const char* net) {
629 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_2x4, 5, 5, 2, 2);
630 }
631 static void dwconv2d_chw_5x5s2p2__sse_3x4(benchmark::State& state, const char* net) {
632 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_3x4, 5, 5, 2, 2);
633 }
634 static void dwconv2d_chw_5x5s2p2__sse_1x4_acc2(benchmark::State& state, const char* net) {
635 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc2, 5, 5, 2, 2);
636 }
637 static void dwconv2d_chw_5x5s2p2__sse_1x4_acc3(benchmark::State& state, const char* net) {
638 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc3, 5, 5, 2, 2);
639 }
640 static void dwconv2d_chw_5x5s2p2__sse_1x4_acc4(benchmark::State& state, const char* net) {
641 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc4, 5, 5, 2, 2);
642 }
643 static void dwconv2d_chw_5x5s2p2__sse_1x4_acc5(benchmark::State& state, const char* net) {
644 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_1x4_acc5, 5, 5, 2, 2);
645 }
646 static void dwconv2d_chw_5x5s2p2__sse_2x4_acc2(benchmark::State& state, const char* net) {
647 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_2x4_acc2, 5, 5, 2, 2);
648 }
649 static void dwconv2d_chw_5x5s2p2__sse_2x4_acc3(benchmark::State& state, const char* net) {
650 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_2x4_acc3, 5, 5, 2, 2);
651 }
652 static void dwconv2d_chw_5x5s2p2__sse_3x4_acc2(benchmark::State& state, const char* net) {
653 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__sse_3x4_acc2, 5, 5, 2, 2);
654 }
655
Marat Dukhan470078a2020-10-23 22:36:52 -0700656 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4)
657 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_2x4)
658 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_3x4)
659 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_4x4)
660 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_5x4)
661 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_6x4)
662 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4_acc2)
Marat Dukhanbf715f92020-10-23 20:17:00 -0700663 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4_acc3)
Marat Dukhan470078a2020-10-23 22:36:52 -0700664 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_1x4_acc4)
665 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__sse_2x4_acc2)
666
Marat Dukhan98f2eeb2020-10-23 23:13:41 -0700667 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4)
668 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_2x4)
669 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_3x4)
670 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_4x4)
671 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_5x4)
672 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_6x4)
673 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4_acc2)
674 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4_acc3)
675 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_1x4_acc4)
676 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__ssse3_2x4_acc2)
677
Marat Dukhan0ff97182020-10-25 19:14:03 -0700678 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4)
679 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_2x4)
680 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_3x4)
681 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_4x4)
682 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4_acc2)
Marat Dukhanbf715f92020-10-23 20:17:00 -0700683 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4_acc3)
Marat Dukhan0ff97182020-10-25 19:14:03 -0700684 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_1x4_acc4)
685 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__sse_2x4_acc2)
Marat Dukhand0503892020-10-30 08:22:04 -0700686
687 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4)
688 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_2x4)
689 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_3x4)
690 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_4x4)
691 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_5x4)
692 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc2)
693 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc3)
694 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc4)
695 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_1x4_acc5)
696 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_2x4_acc2)
697 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_2x4_acc3)
698 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_3x4_acc2)
699 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__sse_4x4_acc2)
Marat Dukhanccca2142020-10-30 17:32:45 -0700700
701 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4)
702 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_2x4)
703 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_3x4)
704 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc2)
705 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc3)
706 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc4)
707 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_1x4_acc5)
708 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_2x4_acc2)
709 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_2x4_acc3)
710 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__sse_3x4_acc2)
Marat Dukhan1dadbf72019-10-01 10:46:20 -0700711#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
XNNPACK Teamb455b122019-09-27 18:10:33 -0700712
Marat Dukhan4c617792021-12-21 15:47:58 -0800713#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard412e2f42020-12-11 11:40:50 -0800714 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
715 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800716 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800717 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
718 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_2x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800719 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800720 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
721 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_3x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800722 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800723 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_4x4(benchmark::State& state, const char* net) {
724 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_4x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800725 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800726 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_5x4(benchmark::State& state, const char* net) {
727 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_5x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800728 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800729 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_6x4(benchmark::State& state, const char* net) {
730 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_6x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800731 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800732 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
733 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4_acc2, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800734 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800735 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
736 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4_acc3, 3, 3, 1, 1);
Erich Elsene6214af2020-06-10 22:17:22 -0700737 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800738 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
739 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_1x4_acc4, 3, 3, 1, 1);
Erich Elsenfd7a6e32020-06-11 12:04:44 -0700740 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800741 static void dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
742 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_loadsplat_2x4_acc2, 3, 3, 1, 1);
Erich Elsen28928892020-06-12 08:08:19 -0700743 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800744 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
745 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4, 3, 3, 1, 1);
Erich Elsen7465a892020-06-13 14:02:04 -0700746 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800747 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
748 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_2x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800749 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800750 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
751 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_3x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800752 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800753 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_4x4(benchmark::State& state, const char* net) {
754 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_4x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800755 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800756 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_5x4(benchmark::State& state, const char* net) {
757 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_5x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800758 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800759 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_6x4(benchmark::State& state, const char* net) {
760 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_6x4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800761 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800762 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
763 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4_acc2, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800764 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800765 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
766 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4_acc3, 3, 3, 1, 1);
Frank Barcharddb5c32d2020-11-16 23:58:42 -0800767 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800768 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
769 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_1x4_acc4, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800770 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800771 static void dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
772 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_loadsplat_2x4_acc2, 3, 3, 1, 1);
Frank Barchard3b800452020-11-22 12:12:35 -0800773 }
774
Frank Barchard02bb4292020-12-15 18:25:32 -0800775 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4(benchmark::State& state, const char* net) {
776 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4, 3, 3, 1, 1);
777 }
778 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4(benchmark::State& state, const char* net) {
779 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_2x4, 3, 3, 1, 1);
780 }
781 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_3x4(benchmark::State& state, const char* net) {
782 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_3x4, 3, 3, 1, 1);
783 }
784 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_4x4(benchmark::State& state, const char* net) {
785 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_4x4, 3, 3, 1, 1);
786 }
787 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_5x4(benchmark::State& state, const char* net) {
788 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_5x4, 3, 3, 1, 1);
789 }
790 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_6x4(benchmark::State& state, const char* net) {
791 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_6x4, 3, 3, 1, 1);
792 }
793 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc2(benchmark::State& state, const char* net) {
794 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4_acc2, 3, 3, 1, 1);
795 }
796 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc3(benchmark::State& state, const char* net) {
797 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4_acc3, 3, 3, 1, 1);
798 }
799 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc4(benchmark::State& state, const char* net) {
800 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_1x4_acc4, 3, 3, 1, 1);
801 }
802 static void dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4_acc2(benchmark::State& state, const char* net) {
803 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_arm_splat_2x4_acc2, 3, 3, 1, 1);
804 }
805 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4(benchmark::State& state, const char* net) {
806 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4, 3, 3, 1, 1);
807 }
808 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4(benchmark::State& state, const char* net) {
809 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_2x4, 3, 3, 1, 1);
810 }
811 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_3x4(benchmark::State& state, const char* net) {
812 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_3x4, 3, 3, 1, 1);
813 }
814 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_4x4(benchmark::State& state, const char* net) {
815 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_4x4, 3, 3, 1, 1);
816 }
817 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_5x4(benchmark::State& state, const char* net) {
818 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_5x4, 3, 3, 1, 1);
819 }
820 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_6x4(benchmark::State& state, const char* net) {
821 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_6x4, 3, 3, 1, 1);
822 }
823 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc2(benchmark::State& state, const char* net) {
824 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4_acc2, 3, 3, 1, 1);
825 }
826 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc3(benchmark::State& state, const char* net) {
827 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4_acc3, 3, 3, 1, 1);
828 }
829 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc4(benchmark::State& state, const char* net) {
830 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_1x4_acc4, 3, 3, 1, 1);
831 }
832 static void dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4_acc2(benchmark::State& state, const char* net) {
833 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__wasmsimd_x86_splat_2x4_acc2, 3, 3, 1, 1);
834 }
835
Frank Barchardc5704bf2020-12-21 23:09:00 -0800836 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
837 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4, 3, 3, 1, 2);
838 }
839 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
840 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_2x4, 3, 3, 1, 2);
841 }
842 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
843 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_3x4, 3, 3, 1, 2);
844 }
845 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_4x4(benchmark::State& state, const char* net) {
846 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_4x4, 3, 3, 1, 2);
847 }
848 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
849 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc2, 3, 3, 1, 2);
850 }
851 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
852 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc3, 3, 3, 1, 2);
853 }
854 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
855 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc4, 3, 3, 1, 2);
856 }
857 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
858 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_loadsplat_2x4_acc2, 3, 3, 1, 2);
859 }
860
861 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
862 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4, 3, 3, 1, 2);
863 }
864 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
865 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_2x4, 3, 3, 1, 2);
866 }
867 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
868 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_3x4, 3, 3, 1, 2);
869 }
870 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_4x4(benchmark::State& state, const char* net) {
871 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_4x4, 3, 3, 1, 2);
872 }
873 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
874 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc2, 3, 3, 1, 2);
875 }
876 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
877 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc3, 3, 3, 1, 2);
878 }
879 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
880 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc4, 3, 3, 1, 2);
881 }
882 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
883 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_loadsplat_2x4_acc2, 3, 3, 1, 2);
884 }
885
Frank Barchard412e2f42020-12-11 11:40:50 -0800886 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4(benchmark::State& state, const char* net) {
887 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800888 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800889 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4(benchmark::State& state, const char* net) {
890 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_2x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800891 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800892 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_3x4(benchmark::State& state, const char* net) {
893 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_3x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800894 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800895 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_4x4(benchmark::State& state, const char* net) {
896 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_4x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800897 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800898 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc2(benchmark::State& state, const char* net) {
899 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4_acc2, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800900 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800901 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc3(benchmark::State& state, const char* net) {
902 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4_acc3, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800903 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800904 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc4(benchmark::State& state, const char* net) {
905 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_1x4_acc4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800906 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800907 static void dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4_acc2(benchmark::State& state, const char* net) {
908 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_arm_splat_2x4_acc2, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800909 }
910
Frank Barchard412e2f42020-12-11 11:40:50 -0800911 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4(benchmark::State& state, const char* net) {
912 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800913 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800914 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4(benchmark::State& state, const char* net) {
915 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_2x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800916 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800917 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_3x4(benchmark::State& state, const char* net) {
918 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_3x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800919 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800920 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_4x4(benchmark::State& state, const char* net) {
921 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_4x4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800922 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800923 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc2(benchmark::State& state, const char* net) {
924 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4_acc2, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800925 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800926 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc3(benchmark::State& state, const char* net) {
927 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4_acc3, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800928 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800929 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc4(benchmark::State& state, const char* net) {
930 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_1x4_acc4, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800931 }
Frank Barchard412e2f42020-12-11 11:40:50 -0800932 static void dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4_acc2(benchmark::State& state, const char* net) {
933 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__wasmsimd_x86_splat_2x4_acc2, 3, 3, 1, 2);
Frank Barchardff0624e2020-12-04 11:55:48 -0800934 }
935
Frank Barchardb20dcd62020-12-15 16:46:14 -0800936 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
937 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4, 5, 5, 2, 1);
938 }
939 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
940 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_2x4, 5, 5, 2, 1);
941 }
942 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
943 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_3x4, 5, 5, 2, 1);
944 }
945 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4(benchmark::State& state, const char* net) {
946 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_4x4, 5, 5, 2, 1);
947 }
948 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_5x4(benchmark::State& state, const char* net) {
949 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_5x4, 5, 5, 2, 1);
950 }
951 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
952 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc2, 5, 5, 2, 1);
953 }
954 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
955 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc3, 5, 5, 2, 1);
956 }
957 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
958 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc4, 5, 5, 2, 1);
959 }
960 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc5(benchmark::State& state, const char* net) {
961 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_1x4_acc5, 5, 5, 2, 1);
962 }
963 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
964 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_2x4_acc2, 5, 5, 2, 1);
965 }
966 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc3(benchmark::State& state, const char* net) {
967 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_2x4_acc3, 5, 5, 2, 1);
968 }
969 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4_acc2(benchmark::State& state, const char* net) {
970 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_3x4_acc2, 5, 5, 2, 1);
971 }
972 static void dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4_acc2(benchmark::State& state, const char* net) {
973 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_loadsplat_4x4_acc2, 5, 5, 2, 1);
974 }
975
976 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
977 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4, 5, 5, 2, 1);
978 }
979 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
980 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_2x4, 5, 5, 2, 1);
981 }
982 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
983 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_3x4, 5, 5, 2, 1);
984 }
985 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4(benchmark::State& state, const char* net) {
986 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_4x4, 5, 5, 2, 1);
987 }
988 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_5x4(benchmark::State& state, const char* net) {
989 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_5x4, 5, 5, 2, 1);
990 }
991 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
992 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc2, 5, 5, 2, 1);
993 }
994 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
995 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc3, 5, 5, 2, 1);
996 }
997 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
998 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc4, 5, 5, 2, 1);
999 }
1000 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc5(benchmark::State& state, const char* net) {
1001 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_1x4_acc5, 5, 5, 2, 1);
1002 }
1003 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
1004 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_2x4_acc2, 5, 5, 2, 1);
1005 }
1006 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc3(benchmark::State& state, const char* net) {
1007 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_2x4_acc3, 5, 5, 2, 1);
1008 }
1009 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4_acc2(benchmark::State& state, const char* net) {
1010 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_3x4_acc2, 5, 5, 2, 1);
1011 }
1012 static void dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4_acc2(benchmark::State& state, const char* net) {
1013 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_loadsplat_4x4_acc2, 5, 5, 2, 1);
1014 }
1015
Frank Barchard412e2f42020-12-11 11:40:50 -08001016 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4(benchmark::State& state, const char* net) {
1017 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001018 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001019 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4(benchmark::State& state, const char* net) {
1020 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_2x4, 5, 5, 2, 1);
Frank Barchard3b800452020-11-22 12:12:35 -08001021 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001022 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4(benchmark::State& state, const char* net) {
1023 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_3x4, 5, 5, 2, 1);
Frank Barchard3b800452020-11-22 12:12:35 -08001024 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001025 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4(benchmark::State& state, const char* net) {
1026 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_4x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001027 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001028 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_5x4(benchmark::State& state, const char* net) {
1029 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_5x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001030 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001031 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc2(benchmark::State& state, const char* net) {
1032 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001033 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001034 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc3(benchmark::State& state, const char* net) {
1035 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc3, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001036 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001037 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc4(benchmark::State& state, const char* net) {
1038 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001039 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001040 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc5(benchmark::State& state, const char* net) {
1041 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_1x4_acc5, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001042 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001043 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc2(benchmark::State& state, const char* net) {
1044 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_2x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001045 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001046 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc3(benchmark::State& state, const char* net) {
1047 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_2x4_acc3, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001048 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001049 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4_acc2(benchmark::State& state, const char* net) {
1050 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_3x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001051 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001052 static void dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4_acc2(benchmark::State& state, const char* net) {
1053 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_arm_splat_4x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001054 }
1055
Frank Barchard412e2f42020-12-11 11:40:50 -08001056 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4(benchmark::State& state, const char* net) {
1057 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001058 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001059 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4(benchmark::State& state, const char* net) {
1060 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_2x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001061 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001062 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4(benchmark::State& state, const char* net) {
1063 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_3x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001064 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001065 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4(benchmark::State& state, const char* net) {
1066 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_4x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001067 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001068 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_5x4(benchmark::State& state, const char* net) {
1069 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_5x4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001070 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001071 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc2(benchmark::State& state, const char* net) {
1072 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001073 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001074 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc3(benchmark::State& state, const char* net) {
1075 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc3, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001076 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001077 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc4(benchmark::State& state, const char* net) {
1078 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc4, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001079 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001080 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc5(benchmark::State& state, const char* net) {
1081 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_1x4_acc5, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001082 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001083 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc2(benchmark::State& state, const char* net) {
1084 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_2x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001085 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001086 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc3(benchmark::State& state, const char* net) {
1087 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_2x4_acc3, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001088 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001089 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4_acc2(benchmark::State& state, const char* net) {
1090 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_3x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001091 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001092 static void dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4_acc2(benchmark::State& state, const char* net) {
1093 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__wasmsimd_x86_splat_4x4_acc2, 5, 5, 2, 1);
Frank Barchard20a07412020-11-30 23:30:00 -08001094 }
1095
Frank Barchardc6889b32020-12-21 11:27:22 -08001096 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4(benchmark::State& state, const char* net) {
1097 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4, 5, 5, 2, 2);
1098 }
1099 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4(benchmark::State& state, const char* net) {
1100 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_2x4, 5, 5, 2, 2);
1101 }
1102 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4(benchmark::State& state, const char* net) {
1103 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_3x4, 5, 5, 2, 2);
1104 }
1105 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
1106 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc2, 5, 5, 2, 2);
1107 }
1108 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
1109 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc3, 5, 5, 2, 2);
1110 }
1111 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
1112 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc4, 5, 5, 2, 2);
1113 }
1114 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc5(benchmark::State& state, const char* net) {
1115 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc5, 5, 5, 2, 2);
1116 }
1117 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
1118 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc2, 5, 5, 2, 2);
1119 }
1120 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc3(benchmark::State& state, const char* net) {
1121 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc3, 5, 5, 2, 2);
1122 }
1123 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4_acc2(benchmark::State& state, const char* net) {
1124 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_loadsplat_3x4_acc2, 5, 5, 2, 2);
1125 }
1126
1127 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4(benchmark::State& state, const char* net) {
1128 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4, 5, 5, 2, 2);
1129 }
1130 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4(benchmark::State& state, const char* net) {
1131 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_2x4, 5, 5, 2, 2);
1132 }
1133 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_3x4(benchmark::State& state, const char* net) {
1134 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_3x4, 5, 5, 2, 2);
1135 }
1136 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc2(benchmark::State& state, const char* net) {
1137 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc2, 5, 5, 2, 2);
1138 }
1139 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc3(benchmark::State& state, const char* net) {
1140 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc3, 5, 5, 2, 2);
1141 }
1142 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc4(benchmark::State& state, const char* net) {
1143 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc4, 5, 5, 2, 2);
1144 }
1145 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc5(benchmark::State& state, const char* net) {
1146 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc5, 5, 5, 2, 2);
1147 }
1148 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4_acc2(benchmark::State& state, const char* net) {
1149 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_2x4_acc2, 5, 5, 2, 2);
1150 }
1151 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4_acc3(benchmark::State& state, const char* net) {
1152 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_2x4_acc3, 5, 5, 2, 2);
1153 }
1154 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_3x4_acc2(benchmark::State& state, const char* net) {
1155 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_loadsplat_3x4_acc2, 5, 5, 2, 2);
1156 }
1157
Frank Barchard412e2f42020-12-11 11:40:50 -08001158 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4(benchmark::State& state, const char* net) {
1159 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_1x4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001160 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001161 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_2x4(benchmark::State& state, const char* net) {
1162 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_2x4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001163 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001164 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_3x4(benchmark::State& state, const char* net) {
1165 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_3x4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001166 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001167 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc2(benchmark::State& state, const char* net) {
1168 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_1x4_acc2, 5, 5, 2, 2);
Frank Barchard3b800452020-11-22 12:12:35 -08001169 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001170 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc3(benchmark::State& state, const char* net) {
1171 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_1x4_acc3, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001172 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001173 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc4(benchmark::State& state, const char* net) {
1174 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_1x4_acc4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001175 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001176 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc5(benchmark::State& state, const char* net) {
1177 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_1x4_acc5, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001178 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001179 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_2x4_acc2(benchmark::State& state, const char* net) {
1180 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_2x4_acc2, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001181 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001182 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_2x4_acc3(benchmark::State& state, const char* net) {
1183 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_2x4_acc3, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001184 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001185 static void dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_3x4_acc2(benchmark::State& state, const char* net) {
1186 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_arm_splat_3x4_acc2, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001187 }
1188
Frank Barchard412e2f42020-12-11 11:40:50 -08001189 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4(benchmark::State& state, const char* net) {
1190 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_1x4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001191 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001192 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_2x4(benchmark::State& state, const char* net) {
1193 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_2x4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001194 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001195 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_3x4(benchmark::State& state, const char* net) {
1196 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_3x4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001197 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001198 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc2(benchmark::State& state, const char* net) {
1199 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_1x4_acc2, 5, 5, 2, 2);
Frank Barcharddb5c32d2020-11-16 23:58:42 -08001200 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001201 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc3(benchmark::State& state, const char* net) {
1202 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_1x4_acc3, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001203 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001204 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc4(benchmark::State& state, const char* net) {
1205 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_1x4_acc4, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001206 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001207 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc5(benchmark::State& state, const char* net) {
1208 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_1x4_acc5, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001209 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001210 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_2x4_acc2(benchmark::State& state, const char* net) {
1211 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_2x4_acc2, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001212 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001213 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_2x4_acc3(benchmark::State& state, const char* net) {
1214 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_2x4_acc3, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001215 }
Frank Barchard412e2f42020-12-11 11:40:50 -08001216 static void dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_3x4_acc2(benchmark::State& state, const char* net) {
1217 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__wasmsimd_x86_splat_3x4_acc2, 5, 5, 2, 2);
Frank Barcharde7223ee2020-12-04 19:04:01 -08001218 }
Erich Elsen7465a892020-06-13 14:02:04 -07001219
Frank Barchard412e2f42020-12-11 11:40:50 -08001220 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4)
1221 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4)
1222 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_3x4)
1223 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_4x4)
1224 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_5x4)
1225 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_6x4)
1226 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc2)
1227 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc3)
1228 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_1x4_acc4)
1229 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_loadsplat_2x4_acc2)
Frank Barchard3b800452020-11-22 12:12:35 -08001230
Frank Barchard412e2f42020-12-11 11:40:50 -08001231 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4)
1232 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4)
1233 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_3x4)
1234 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_4x4)
1235 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_5x4)
1236 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_6x4)
1237 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc2)
1238 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc3)
1239 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_1x4_acc4)
1240 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_loadsplat_2x4_acc2)
Frank Barchard3b800452020-11-22 12:12:35 -08001241
Frank Barchard02bb4292020-12-15 18:25:32 -08001242 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4)
1243 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4)
1244 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_3x4)
1245 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_4x4)
1246 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_5x4)
1247 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_6x4)
1248 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc2)
1249 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc3)
1250 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_1x4_acc4)
1251 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_arm_splat_2x4_acc2)
1252
1253 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4)
1254 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4)
1255 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_3x4)
1256 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_4x4)
1257 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_5x4)
1258 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_6x4)
1259 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc2)
1260 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc3)
1261 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_1x4_acc4)
1262 BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__wasmsimd_x86_splat_2x4_acc2)
1263
Frank Barchardc5704bf2020-12-21 23:09:00 -08001264 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4)
1265 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4)
1266 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_3x4)
1267 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_4x4)
1268 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc2)
1269 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc3)
1270 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_1x4_acc4)
1271 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_loadsplat_2x4_acc2)
1272
1273 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4)
1274 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4)
1275 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_3x4)
1276 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_4x4)
1277 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc2)
1278 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc3)
1279 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_1x4_acc4)
1280 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_loadsplat_2x4_acc2)
1281
Frank Barchard412e2f42020-12-11 11:40:50 -08001282 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4)
1283 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4)
1284 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_3x4)
1285 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_4x4)
1286 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc2)
1287 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc3)
1288 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_1x4_acc4)
1289 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_arm_splat_2x4_acc2)
Frank Barchardff0624e2020-12-04 11:55:48 -08001290
Frank Barchard412e2f42020-12-11 11:40:50 -08001291 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4)
1292 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4)
1293 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_3x4)
1294 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_4x4)
1295 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc2)
1296 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc3)
1297 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_1x4_acc4)
1298 BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__wasmsimd_x86_splat_2x4_acc2)
Frank Barchardff0624e2020-12-04 11:55:48 -08001299
Frank Barchardb20dcd62020-12-15 16:46:14 -08001300 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4)
1301 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4)
1302 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4)
1303 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4)
1304 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_5x4)
1305 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc2)
1306 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc3)
1307 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc4)
1308 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_1x4_acc5)
1309 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc2)
1310 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_2x4_acc3)
1311 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_3x4_acc2)
1312 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_loadsplat_4x4_acc2)
1313
1314 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4)
1315 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4)
1316 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4)
1317 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4)
1318 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_5x4)
1319 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc2)
1320 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc3)
1321 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc4)
1322 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_1x4_acc5)
1323 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc2)
1324 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_2x4_acc3)
1325 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_3x4_acc2)
1326 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_loadsplat_4x4_acc2)
1327
Frank Barchard412e2f42020-12-11 11:40:50 -08001328 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4)
1329 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4)
1330 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4)
1331 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4)
1332 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_5x4)
1333 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc2)
1334 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc3)
1335 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc4)
1336 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_1x4_acc5)
1337 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc2)
1338 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_2x4_acc3)
1339 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_3x4_acc2)
1340 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_arm_splat_4x4_acc2)
Frank Barchard20a07412020-11-30 23:30:00 -08001341
Frank Barchard412e2f42020-12-11 11:40:50 -08001342 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4)
1343 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4)
1344 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4)
1345 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4)
1346 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_5x4)
1347 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc2)
1348 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc3)
1349 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc4)
1350 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_1x4_acc5)
1351 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc2)
1352 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_2x4_acc3)
1353 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_3x4_acc2)
1354 BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__wasmsimd_x86_splat_4x4_acc2)
Frank Barchard20a07412020-11-30 23:30:00 -08001355
Frank Barchardc6889b32020-12-21 11:27:22 -08001356 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4)
1357 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4)
1358 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4)
1359 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc2)
1360 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc3)
1361 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc4)
1362 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_1x4_acc5)
1363 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc2)
1364 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_2x4_acc3)
1365 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_loadsplat_3x4_acc2)
1366
1367 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4)
1368 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4)
1369 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_3x4)
1370 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc2)
1371 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc3)
1372 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc4)
1373 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_1x4_acc5)
1374 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4_acc2)
1375 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_2x4_acc3)
1376 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_loadsplat_3x4_acc2)
1377
Frank Barchard412e2f42020-12-11 11:40:50 -08001378 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4)
1379 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_2x4)
1380 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_3x4)
1381 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc2)
1382 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc3)
1383 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc4)
1384 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_1x4_acc5)
1385 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_2x4_acc2)
1386 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_2x4_acc3)
1387 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_arm_splat_3x4_acc2)
Frank Barcharde7223ee2020-12-04 19:04:01 -08001388
Frank Barchard412e2f42020-12-11 11:40:50 -08001389 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4)
1390 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_2x4)
1391 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_3x4)
1392 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc2)
1393 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc3)
1394 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc4)
1395 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_1x4_acc5)
1396 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_2x4_acc2)
1397 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_2x4_acc3)
1398 BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_3x4_acc2)
Marat Dukhan4c617792021-12-21 15:47:58 -08001399#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Erich Elsene6214af2020-06-10 22:17:22 -07001400
Marat Dukhan91249d22020-10-24 12:02:51 -07001401static void dwconv2d_chw_3x3p1__scalar_1x1(benchmark::State& state, const char* net) {
1402 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_1x1, 3, 3, 1, 1);
1403}
1404static void dwconv2d_chw_3x3p1__scalar_2x1(benchmark::State& state, const char* net) {
1405 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_2x1, 3, 3, 1, 1);
1406}
1407static void dwconv2d_chw_3x3p1__scalar_3x1(benchmark::State& state, const char* net) {
1408 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_3x1, 3, 3, 1, 1);
1409}
1410static void dwconv2d_chw_3x3p1__scalar_4x1(benchmark::State& state, const char* net) {
1411 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_4x1, 3, 3, 1, 1);
1412}
1413static void dwconv2d_chw_3x3p1__scalar_5x1(benchmark::State& state, const char* net) {
1414 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_5x1, 3, 3, 1, 1);
1415}
1416static void dwconv2d_chw_3x3p1__scalar_6x1(benchmark::State& state, const char* net) {
1417 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_6x1, 3, 3, 1, 1);
1418}
1419static void dwconv2d_chw_3x3p1__scalar_1x1_acc2(benchmark::State& state, const char* net) {
1420 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_1x1_acc2, 3, 3, 1, 1);
1421}
Marat Dukhanbf715f92020-10-23 20:17:00 -07001422static void dwconv2d_chw_3x3p1__scalar_1x1_acc3(benchmark::State& state, const char* net) {
1423 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_1x1_acc3, 3, 3, 1, 1);
Marat Dukhanae7e8b22020-10-20 17:51:51 -07001424}
Marat Dukhan91249d22020-10-24 12:02:51 -07001425static void dwconv2d_chw_3x3p1__scalar_1x1_acc4(benchmark::State& state, const char* net) {
1426 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_1x1_acc4, 3, 3, 1, 1);
1427}
1428static void dwconv2d_chw_3x3p1__scalar_2x1_acc2(benchmark::State& state, const char* net) {
1429 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_2x1_acc2, 3, 3, 1, 1);
1430}
Erich Elsen0cc2c532019-10-15 04:44:18 -07001431
Marat Dukhancf5b3c32020-10-25 19:21:10 -07001432static void dwconv2d_chw_3x3s2p1__scalar_1x1(benchmark::State& state, const char* net) {
1433 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_1x1, 3, 3, 1, 2);
1434}
1435static void dwconv2d_chw_3x3s2p1__scalar_2x1(benchmark::State& state, const char* net) {
1436 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_2x1, 3, 3, 1, 2);
1437}
1438static void dwconv2d_chw_3x3s2p1__scalar_3x1(benchmark::State& state, const char* net) {
1439 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_3x1, 3, 3, 1, 2);
1440}
1441static void dwconv2d_chw_3x3s2p1__scalar_4x1(benchmark::State& state, const char* net) {
1442 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_4x1, 3, 3, 1, 2);
1443}
1444static void dwconv2d_chw_3x3s2p1__scalar_1x1_acc2(benchmark::State& state, const char* net) {
1445 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_1x1_acc2, 3, 3, 1, 2);
1446}
Marat Dukhanbf715f92020-10-23 20:17:00 -07001447static void dwconv2d_chw_3x3s2p1__scalar_1x1_acc3(benchmark::State& state, const char* net) {
1448 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_1x1_acc3, 3, 3, 1, 2);
Marat Dukhanae7e8b22020-10-20 17:51:51 -07001449}
Marat Dukhancf5b3c32020-10-25 19:21:10 -07001450static void dwconv2d_chw_3x3s2p1__scalar_1x1_acc4(benchmark::State& state, const char* net) {
1451 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_1x1_acc4, 3, 3, 1, 2);
1452}
1453static void dwconv2d_chw_3x3s2p1__scalar_2x1_acc2(benchmark::State& state, const char* net) {
1454 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__scalar_2x1_acc2, 3, 3, 1, 2);
1455}
Erich Elsen38709a62019-11-08 11:58:45 -08001456
Marat Dukhanc4efb002020-10-25 23:14:47 -07001457static void dwconv2d_chw_5x5p2__scalar_1x1(benchmark::State& state, const char* net) {
1458 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_1x1, 5, 5, 2, 1);
1459}
1460static void dwconv2d_chw_5x5p2__scalar_2x1(benchmark::State& state, const char* net) {
1461 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_2x1, 5, 5, 2, 1);
1462}
1463static void dwconv2d_chw_5x5p2__scalar_3x1(benchmark::State& state, const char* net) {
1464 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_3x1, 5, 5, 2, 1);
1465}
1466static void dwconv2d_chw_5x5p2__scalar_1x1_acc2(benchmark::State& state, const char* net) {
1467 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_1x1_acc2, 5, 5, 2, 1);
1468}
1469static void dwconv2d_chw_5x5p2__scalar_1x1_acc3(benchmark::State& state, const char* net) {
1470 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_1x1_acc3, 5, 5, 2, 1);
1471}
1472static void dwconv2d_chw_5x5p2__scalar_1x1_acc4(benchmark::State& state, const char* net) {
1473 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_1x1_acc4, 5, 5, 2, 1);
1474}
Marat Dukhanbf715f92020-10-23 20:17:00 -07001475static void dwconv2d_chw_5x5p2__scalar_1x1_acc5(benchmark::State& state, const char* net) {
1476 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_1x1_acc5, 5, 5, 2, 1);
Marat Dukhanae7e8b22020-10-20 17:51:51 -07001477}
Marat Dukhanc4efb002020-10-25 23:14:47 -07001478static void dwconv2d_chw_5x5p2__scalar_2x1_acc2(benchmark::State& state, const char* net) {
1479 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_2x1_acc2, 5, 5, 2, 1);
1480}
1481static void dwconv2d_chw_5x5p2__scalar_2x1_acc3(benchmark::State& state, const char* net) {
1482 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_2x1_acc3, 5, 5, 2, 1);
1483}
1484static void dwconv2d_chw_5x5p2__scalar_3x1_acc2(benchmark::State& state, const char* net) {
1485 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5p2__scalar_3x1_acc2, 5, 5, 2, 1);
1486}
Erich Elsenac4de802019-10-16 04:35:30 -07001487
Marat Dukhan29c0c332020-10-28 22:11:00 -07001488static void dwconv2d_chw_5x5s2p2__scalar_1x1(benchmark::State& state, const char* net) {
1489 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_1x1, 5, 5, 2, 2);
1490}
1491static void dwconv2d_chw_5x5s2p2__scalar_2x1(benchmark::State& state, const char* net) {
1492 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_2x1, 5, 5, 2, 2);
1493}
1494static void dwconv2d_chw_5x5s2p2__scalar_3x1(benchmark::State& state, const char* net) {
1495 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_3x1, 5, 5, 2, 2);
1496}
1497static void dwconv2d_chw_5x5s2p2__scalar_1x1_acc2(benchmark::State& state, const char* net) {
1498 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_1x1_acc2, 5, 5, 2, 2);
1499}
1500static void dwconv2d_chw_5x5s2p2__scalar_1x1_acc3(benchmark::State& state, const char* net) {
1501 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_1x1_acc3, 5, 5, 2, 2);
1502}
1503static void dwconv2d_chw_5x5s2p2__scalar_1x1_acc4(benchmark::State& state, const char* net) {
1504 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_1x1_acc4, 5, 5, 2, 2);
1505}
Marat Dukhanbf715f92020-10-23 20:17:00 -07001506static void dwconv2d_chw_5x5s2p2__scalar_1x1_acc5(benchmark::State& state, const char* net) {
1507 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_1x1_acc5, 5, 5, 2, 2);
Marat Dukhanae7e8b22020-10-20 17:51:51 -07001508}
Marat Dukhan29c0c332020-10-28 22:11:00 -07001509static void dwconv2d_chw_5x5s2p2__scalar_2x1_acc2(benchmark::State& state, const char* net) {
1510 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_2x1_acc2, 5, 5, 2, 2);
1511}
1512static void dwconv2d_chw_5x5s2p2__scalar_2x1_acc3(benchmark::State& state, const char* net) {
1513 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_2x1_acc3, 5, 5, 2, 2);
1514}
1515static void dwconv2d_chw_5x5s2p2__scalar_3x1_acc2(benchmark::State& state, const char* net) {
1516 DWConv2DBenchmark(state, xnn_f32_dwconv2d_chw_ukernel_5x5s2p2__scalar_3x1_acc2, 5, 5, 2, 2);
1517}
Erich Elsen38709a62019-11-08 11:58:45 -08001518
Marat Dukhan91249d22020-10-24 12:02:51 -07001519BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_1x1)
1520BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_2x1)
1521BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_3x1)
1522BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_4x1)
1523BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_5x1)
1524BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_6x1)
1525BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_1x1_acc2)
Marat Dukhanbf715f92020-10-23 20:17:00 -07001526BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_1x1_acc3)
Marat Dukhan91249d22020-10-24 12:02:51 -07001527BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_1x1_acc4)
1528BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__scalar_2x1_acc2)
Marat Dukhancf5b3c32020-10-25 19:21:10 -07001529
1530BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_1x1)
1531BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_2x1)
1532BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_3x1)
1533BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_4x1)
1534BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_1x1_acc2)
Marat Dukhanbf715f92020-10-23 20:17:00 -07001535BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_1x1_acc3)
Marat Dukhancf5b3c32020-10-25 19:21:10 -07001536BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_1x1_acc4)
1537BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__scalar_2x1_acc2)
1538
Marat Dukhanc4efb002020-10-25 23:14:47 -07001539BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_1x1)
1540BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_2x1)
1541BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_3x1)
1542BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_1x1_acc2)
1543BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_1x1_acc3)
1544BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_1x1_acc4)
Marat Dukhanbf715f92020-10-23 20:17:00 -07001545BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_1x1_acc5)
Marat Dukhanc4efb002020-10-25 23:14:47 -07001546BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_2x1_acc2)
1547BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_2x1_acc3)
1548BENCHMARK_DWCONV(dwconv2d_chw_5x5p2__scalar_3x1_acc2)
Marat Dukhancf5b3c32020-10-25 19:21:10 -07001549
Marat Dukhan29c0c332020-10-28 22:11:00 -07001550BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_1x1)
1551BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_2x1)
1552BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_3x1)
1553BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_1x1_acc2)
1554BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_1x1_acc3)
1555BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_1x1_acc4)
Marat Dukhanbf715f92020-10-23 20:17:00 -07001556BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_1x1_acc5)
Marat Dukhan29c0c332020-10-28 22:11:00 -07001557BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_2x1_acc2)
1558BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_2x1_acc3)
1559BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__scalar_3x1_acc2)
XNNPACK Teamb455b122019-09-27 18:10:33 -07001560
1561#ifndef XNNPACK_BENCHMARK_NO_MAIN
1562BENCHMARK_MAIN();
1563#endif