blob: ae79919fa12ed85bc1f4175439e0b59f60b058c1 [file] [log] [blame]
Marat Dukhan6674d692021-05-05 22:27:00 -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 <cmath>
8#include <functional>
9#include <random>
10#include <vector>
11
12#include <benchmark/benchmark.h>
13#include "bench/utils.h"
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070014
Marat Dukhan6674d692021-05-05 22:27:00 -070015#include <xnnpack/AlignedAllocator.h>
16#include <xnnpack/common.h>
17#include <xnnpack/params.h>
Marat Dukhance834ad2022-01-03 00:22:01 -080018#include <xnnpack/params-init.h>
Marat Dukhan6674d692021-05-05 22:27:00 -070019#include <xnnpack/vunary.h>
20
21
22static void f32_vsigmoid(
23 benchmark::State& state,
Marat Dukhance834ad2022-01-03 00:22:01 -080024 xnn_f32_vsigmoid_ukernel_function sigmoid,
25 xnn_init_f32_sigmoid_params_fn init_params,
Marat Dukhan6674d692021-05-05 22:27:00 -070026 benchmark::utils::IsaCheckFunction isa_check = nullptr)
27{
28 if (isa_check && !isa_check(state)) {
29 return;
30 }
31
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070032 const size_t num_elements = state.range(0);
Marat Dukhan6674d692021-05-05 22:27:00 -070033
34 std::random_device random_device;
35 auto rng = std::mt19937(random_device());
36 auto f32rng = std::bind(std::uniform_real_distribution<float>(-10.0f, 10.0f), std::ref(rng));
37
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070038 std::vector<float, AlignedAllocator<float, 64>> x(num_elements);
39 std::vector<float, AlignedAllocator<float, 64>> y(num_elements);
Marat Dukhan6674d692021-05-05 22:27:00 -070040 std::generate(x.begin(), x.end(), std::ref(f32rng));
41 std::fill(y.begin(), y.end(), std::nanf(""));
42
Marat Dukhance834ad2022-01-03 00:22:01 -080043 xnn_f32_sigmoid_params params;
44 init_params(&params);
Marat Dukhan6674d692021-05-05 22:27:00 -070045 for (auto _ : state) {
Marat Dukhance834ad2022-01-03 00:22:01 -080046 sigmoid(num_elements * sizeof(float), x.data(), y.data(), &params);
Marat Dukhan6674d692021-05-05 22:27:00 -070047 }
48
49 const uint64_t cpu_frequency = benchmark::utils::GetCurrentCpuFrequency();
50 if (cpu_frequency != 0) {
51 state.counters["cpufreq"] = cpu_frequency;
52 }
53
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070054 const size_t elements_per_iteration = num_elements;
Marat Dukhan6674d692021-05-05 22:27:00 -070055 state.counters["elements"] =
56 benchmark::Counter(uint64_t(state.iterations()) * elements_per_iteration, benchmark::Counter::kIsRate);
57
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070058 const size_t bytes_per_iteration = 2 * num_elements * sizeof(float);
Marat Dukhan6674d692021-05-05 22:27:00 -070059 state.counters["bytes"] =
60 benchmark::Counter(uint64_t(state.iterations()) * bytes_per_iteration, benchmark::Counter::kIsRate);
61}
62
63#if XNN_ARCH_ARM64
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070064 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_div_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -080065 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_div_x4,
66 xnn_init_f32_sigmoid_neonfma_rr1_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070067 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -070068 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070069 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_div_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -080070 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_div_x8,
71 xnn_init_f32_sigmoid_neonfma_rr1_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070072 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -070073 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070074 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_div_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -080075 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_div_x12,
76 xnn_init_f32_sigmoid_neonfma_rr1_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070077 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -070078 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070079 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -080080 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_div_x16,
81 xnn_init_f32_sigmoid_neonfma_rr1_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070082 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -070083 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070084 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_div_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -080085 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_div_x20,
86 xnn_init_f32_sigmoid_neonfma_rr1_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070087 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -070088 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070089 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_div_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -080090 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_div_x24,
91 xnn_init_f32_sigmoid_neonfma_rr1_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070092 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -070093 ->UseRealTime();
94
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070095 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_div_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -080096 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_div_x4,
97 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -070098 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -070099 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700100 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_div_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800101 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_div_x8,
102 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700103 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700104 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700105 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_div_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800106 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_div_x12,
107 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700108 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700109 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700110 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800111 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_div_x16,
112 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700113 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700114 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700115 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_div_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800116 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_div_x20,
117 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700118 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700119 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700120 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_div_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800121 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_div_x24,
122 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700123 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700124 ->UseRealTime();
125
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700126 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_div_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800127 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_div_x4,
128 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700129 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700130 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700131 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_div_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800132 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_div_x8,
133 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700134 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700135 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700136 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_div_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800137 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_div_x12,
138 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700139 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700140 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700141 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800142 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_div_x16,
143 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700144 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700145 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700146 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_div_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800147 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_div_x20,
148 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700149 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700150 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700151 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_div_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800152 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_div_x24,
153 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700154 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700155 ->UseRealTime();
156#endif // XNN_ARCH_ARM64
157
158#if XNN_ARCH_ARM || XNN_ARCH_ARM64
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700159 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2fma_x4,
160 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2fma_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800161 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700162 benchmark::utils::CheckNEONFMA)
163 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700164 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700165 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2fma_x8,
166 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800167 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700168 benchmark::utils::CheckNEONFMA)
169 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700170 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700171 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2fma_x12,
172 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2fma_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800173 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700174 benchmark::utils::CheckNEONFMA)
175 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700176 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700177 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2fma_x16,
178 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800179 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700180 benchmark::utils::CheckNEONFMA)
181 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700182 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700183 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2fma_x20,
184 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2fma_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800185 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700186 benchmark::utils::CheckNEONFMA)
187 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700188 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700189 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2fma_x24,
190 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800191 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700192 benchmark::utils::CheckNEONFMA)
193 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700194 ->UseRealTime();
195
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700196 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr1recps1fma_x4,
197 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr1recps1fma_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800198 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700199 benchmark::utils::CheckNEONFMA)
200 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700201 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700202 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr1recps1fma_x8,
203 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr1recps1fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800204 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700205 benchmark::utils::CheckNEONFMA)
206 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700207 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700208 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr1recps1fma_x12,
209 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr1recps1fma_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800210 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700211 benchmark::utils::CheckNEONFMA)
212 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700213 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700214 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr1recps1fma_x16,
215 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr1recps1fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800216 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700217 benchmark::utils::CheckNEONFMA)
218 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700219 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700220 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr1recps1fma_x20,
221 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr1recps1fma_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800222 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700223 benchmark::utils::CheckNEONFMA)
224 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700225 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700226 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr1recps1fma_x24,
227 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr1recps1fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800228 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700229 benchmark::utils::CheckNEONFMA)
230 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700231 ->UseRealTime();
232
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700233 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2recps_x4,
234 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2recps_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800235 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700236 benchmark::utils::CheckNEONFMA)
237 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700238 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700239 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2recps_x8,
240 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2recps_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800241 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700242 benchmark::utils::CheckNEONFMA)
243 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700244 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700245 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2recps_x12,
246 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2recps_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800247 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700248 benchmark::utils::CheckNEONFMA)
249 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700250 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700251 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2recps_x16,
252 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2recps_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800253 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700254 benchmark::utils::CheckNEONFMA)
255 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700256 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700257 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2recps_x20,
258 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2recps_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800259 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700260 benchmark::utils::CheckNEONFMA)
261 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700262 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700263 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_p5_nr2recps_x24,
264 xnn_f32_vsigmoid_ukernel__neonfma_rr1_p5_nr2recps_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800265 xnn_init_f32_sigmoid_neonfma_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700266 benchmark::utils::CheckNEONFMA)
267 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700268 ->UseRealTime();
269
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700270 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_p5_nr2recps_x4,
271 xnn_f32_vsigmoid_ukernel__neon_rr2_p5_nr2recps_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800272 xnn_init_f32_sigmoid_scalar_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700273 benchmark::utils::CheckNEON)
274 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700275 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700276 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_p5_nr2recps_x8,
277 xnn_f32_vsigmoid_ukernel__neon_rr2_p5_nr2recps_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800278 xnn_init_f32_sigmoid_scalar_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700279 benchmark::utils::CheckNEON)
280 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700281 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700282 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_p5_nr2recps_x12,
283 xnn_f32_vsigmoid_ukernel__neon_rr2_p5_nr2recps_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800284 xnn_init_f32_sigmoid_scalar_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700285 benchmark::utils::CheckNEON)
286 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700287 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700288 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_p5_nr2recps_x16,
289 xnn_f32_vsigmoid_ukernel__neon_rr2_p5_nr2recps_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800290 xnn_init_f32_sigmoid_scalar_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700291 benchmark::utils::CheckNEON)
292 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700293 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700294 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_p5_nr2recps_x20,
295 xnn_f32_vsigmoid_ukernel__neon_rr2_p5_nr2recps_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800296 xnn_init_f32_sigmoid_scalar_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700297 benchmark::utils::CheckNEON)
298 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700299 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700300 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_p5_nr2recps_x24,
301 xnn_f32_vsigmoid_ukernel__neon_rr2_p5_nr2recps_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800302 xnn_init_f32_sigmoid_scalar_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700303 benchmark::utils::CheckNEON)
304 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700305 ->UseRealTime();
306
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700307 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2fma_x4,
308 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2fma_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800309 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700310 benchmark::utils::CheckNEONFMA)
311 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700312 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700313 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2fma_x8,
314 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800315 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700316 benchmark::utils::CheckNEONFMA)
317 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700318 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700319 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2fma_x12,
320 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2fma_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800321 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700322 benchmark::utils::CheckNEONFMA)
323 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700324 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700325 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2fma_x16,
326 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800327 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700328 benchmark::utils::CheckNEONFMA)
329 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700330 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700331 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2fma_x20,
332 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2fma_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800333 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700334 benchmark::utils::CheckNEONFMA)
335 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700336 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700337 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2fma_x24,
338 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800339 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700340 benchmark::utils::CheckNEONFMA)
341 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700342 ->UseRealTime();
343
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700344 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr1recps1fma_x4,
345 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr1recps1fma_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800346 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700347 benchmark::utils::CheckNEONFMA)
348 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700349 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700350 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr1recps1fma_x8,
351 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr1recps1fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800352 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700353 benchmark::utils::CheckNEONFMA)
354 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700355 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700356 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr1recps1fma_x12,
357 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr1recps1fma_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800358 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700359 benchmark::utils::CheckNEONFMA)
360 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700361 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700362 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr1recps1fma_x16,
363 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr1recps1fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800364 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700365 benchmark::utils::CheckNEONFMA)
366 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700367 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700368 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr1recps1fma_x20,
369 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr1recps1fma_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800370 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700371 benchmark::utils::CheckNEONFMA)
372 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700373 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700374 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr1recps1fma_x24,
375 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr1recps1fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800376 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700377 benchmark::utils::CheckNEONFMA)
378 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700379 ->UseRealTime();
380
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700381 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2recps_x4,
382 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2recps_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800383 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700384 benchmark::utils::CheckNEONFMA)
385 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700386 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700387 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2recps_x8,
388 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2recps_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800389 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700390 benchmark::utils::CheckNEONFMA)
391 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700392 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700393 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2recps_x12,
394 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2recps_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800395 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700396 benchmark::utils::CheckNEONFMA)
397 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700398 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700399 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2recps_x16,
400 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2recps_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800401 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700402 benchmark::utils::CheckNEONFMA)
403 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700404 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700405 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2recps_x20,
406 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2recps_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800407 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700408 benchmark::utils::CheckNEONFMA)
409 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700410 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700411 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut64_p2_nr2recps_x24,
412 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut64_p2_nr2recps_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800413 xnn_init_f32_sigmoid_neonfma_rr1_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700414 benchmark::utils::CheckNEONFMA)
415 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700416 ->UseRealTime();
417
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700418 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut64_p2_nr2recps_x4,
419 xnn_f32_vsigmoid_ukernel__neon_rr2_lut64_p2_nr2recps_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800420 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700421 benchmark::utils::CheckNEON)
422 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700423 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700424 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut64_p2_nr2recps_x8,
425 xnn_f32_vsigmoid_ukernel__neon_rr2_lut64_p2_nr2recps_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800426 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700427 benchmark::utils::CheckNEON)
428 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700429 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700430 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut64_p2_nr2recps_x12,
431 xnn_f32_vsigmoid_ukernel__neon_rr2_lut64_p2_nr2recps_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800432 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700433 benchmark::utils::CheckNEON)
434 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700435 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700436 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut64_p2_nr2recps_x16,
437 xnn_f32_vsigmoid_ukernel__neon_rr2_lut64_p2_nr2recps_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800438 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700439 benchmark::utils::CheckNEON)
440 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700441 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700442 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut64_p2_nr2recps_x20,
443 xnn_f32_vsigmoid_ukernel__neon_rr2_lut64_p2_nr2recps_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800444 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700445 benchmark::utils::CheckNEON)
446 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700447 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700448 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut64_p2_nr2recps_x24,
449 xnn_f32_vsigmoid_ukernel__neon_rr2_lut64_p2_nr2recps_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800450 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700451 benchmark::utils::CheckNEON)
452 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700453 ->UseRealTime();
454
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700455 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2fma_x4,
456 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2fma_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800457 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700458 benchmark::utils::CheckNEONFMA)
459 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700460 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700461 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2fma_x8,
462 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800463 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700464 benchmark::utils::CheckNEONFMA)
465 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700466 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700467 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2fma_x12,
468 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2fma_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800469 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700470 benchmark::utils::CheckNEONFMA)
471 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700472 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700473 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2fma_x16,
474 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800475 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700476 benchmark::utils::CheckNEONFMA)
477 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700478 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700479 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2fma_x20,
480 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2fma_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800481 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700482 benchmark::utils::CheckNEONFMA)
483 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700484 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700485 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2fma_x24,
486 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800487 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700488 benchmark::utils::CheckNEONFMA)
489 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700490 ->UseRealTime();
491
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700492 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr1recps1fma_x4,
493 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr1recps1fma_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800494 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700495 benchmark::utils::CheckNEONFMA)
496 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700497 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700498 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr1recps1fma_x8,
499 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr1recps1fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800500 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700501 benchmark::utils::CheckNEONFMA)
502 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700503 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700504 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr1recps1fma_x12,
505 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr1recps1fma_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800506 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700507 benchmark::utils::CheckNEONFMA)
508 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700509 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700510 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr1recps1fma_x16,
511 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr1recps1fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800512 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700513 benchmark::utils::CheckNEONFMA)
514 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700515 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700516 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr1recps1fma_x20,
517 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr1recps1fma_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800518 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700519 benchmark::utils::CheckNEONFMA)
520 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700521 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700522 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr1recps1fma_x24,
523 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr1recps1fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800524 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700525 benchmark::utils::CheckNEONFMA)
526 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700527 ->UseRealTime();
528
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700529 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2recps_x4,
530 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2recps_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800531 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700532 benchmark::utils::CheckNEONFMA)
533 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700534 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700535 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2recps_x8,
536 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2recps_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800537 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700538 benchmark::utils::CheckNEONFMA)
539 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700540 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700541 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2recps_x12,
542 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2recps_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800543 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700544 benchmark::utils::CheckNEONFMA)
545 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700546 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700547 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2recps_x16,
548 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2recps_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800549 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700550 benchmark::utils::CheckNEONFMA)
551 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700552 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700553 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2recps_x20,
554 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2recps_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800555 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700556 benchmark::utils::CheckNEONFMA)
557 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700558 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700559 BENCHMARK_CAPTURE(f32_vsigmoid, neonfma_rr1_lut2048_p1_nr2recps_x24,
560 xnn_f32_vsigmoid_ukernel__neonfma_rr1_lut2048_p1_nr2recps_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800561 xnn_init_f32_sigmoid_neonfma_rr1_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700562 benchmark::utils::CheckNEONFMA)
563 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700564 ->UseRealTime();
565
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700566 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut2048_p1_nr2recps_x4,
567 xnn_f32_vsigmoid_ukernel__neon_rr2_lut2048_p1_nr2recps_x4,
Marat Dukhance834ad2022-01-03 00:22:01 -0800568 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700569 benchmark::utils::CheckNEON)
570 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700571 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700572 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut2048_p1_nr2recps_x8,
573 xnn_f32_vsigmoid_ukernel__neon_rr2_lut2048_p1_nr2recps_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800574 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700575 benchmark::utils::CheckNEON)
576 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700577 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700578 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut2048_p1_nr2recps_x12,
579 xnn_f32_vsigmoid_ukernel__neon_rr2_lut2048_p1_nr2recps_x12,
Marat Dukhance834ad2022-01-03 00:22:01 -0800580 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700581 benchmark::utils::CheckNEON)
582 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700583 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700584 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut2048_p1_nr2recps_x16,
585 xnn_f32_vsigmoid_ukernel__neon_rr2_lut2048_p1_nr2recps_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800586 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700587 benchmark::utils::CheckNEON)
588 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700589 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700590 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut2048_p1_nr2recps_x20,
591 xnn_f32_vsigmoid_ukernel__neon_rr2_lut2048_p1_nr2recps_x20,
Marat Dukhance834ad2022-01-03 00:22:01 -0800592 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700593 benchmark::utils::CheckNEON)
594 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700595 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700596 BENCHMARK_CAPTURE(f32_vsigmoid, neon_rr2_lut2048_p1_nr2recps_x24,
597 xnn_f32_vsigmoid_ukernel__neon_rr2_lut2048_p1_nr2recps_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800598 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700599 benchmark::utils::CheckNEON)
600 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700601 ->UseRealTime();
602#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
603
604#if XNN_ARCH_X86 || XNN_ARCH_X86_64
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700605 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x16,
606 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800607 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700608 benchmark::utils::CheckAVX512F)
609 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700610 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700611 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x32,
612 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800613 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700614 benchmark::utils::CheckAVX512F)
615 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700616 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700617 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x48,
618 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800619 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700620 benchmark::utils::CheckAVX512F)
621 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700622 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700623 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x64,
624 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -0800625 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700626 benchmark::utils::CheckAVX512F)
627 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700628 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700629 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x80,
630 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -0800631 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700632 benchmark::utils::CheckAVX512F)
633 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700634 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700635 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x96,
636 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x96,
Marat Dukhance834ad2022-01-03 00:22:01 -0800637 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700638 benchmark::utils::CheckAVX512F)
639 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700640 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700641 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x112,
642 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x112,
Marat Dukhance834ad2022-01-03 00:22:01 -0800643 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700644 benchmark::utils::CheckAVX512F)
645 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700646 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700647 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_div_x128,
648 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_div_x128,
Marat Dukhance834ad2022-01-03 00:22:01 -0800649 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700650 benchmark::utils::CheckAVX512F)
651 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700652 ->UseRealTime();
653
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700654 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x16,
655 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800656 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700657 benchmark::utils::CheckAVX512F)
658 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700659 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700660 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x32,
661 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800662 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700663 benchmark::utils::CheckAVX512F)
664 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700665 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700666 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x48,
667 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800668 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700669 benchmark::utils::CheckAVX512F)
670 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700671 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700672 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x64,
673 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -0800674 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700675 benchmark::utils::CheckAVX512F)
676 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700677 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700678 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x80,
679 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -0800680 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700681 benchmark::utils::CheckAVX512F)
682 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700683 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700684 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x96,
685 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x96,
Marat Dukhance834ad2022-01-03 00:22:01 -0800686 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700687 benchmark::utils::CheckAVX512F)
688 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700689 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700690 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x112,
691 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x112,
Marat Dukhance834ad2022-01-03 00:22:01 -0800692 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700693 benchmark::utils::CheckAVX512F)
694 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700695 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700696 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_p5_scalef_nr1fma_x128,
697 xnn_f32_vsigmoid_ukernel__avx512f_rr1_p5_scalef_nr1fma_x128,
Marat Dukhance834ad2022-01-03 00:22:01 -0800698 xnn_init_f32_sigmoid_avx512_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700699 benchmark::utils::CheckAVX512F)
700 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700701 ->UseRealTime();
702
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700703 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x16,
704 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800705 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700706 benchmark::utils::CheckAVX512F)
707 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700708 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700709 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x32,
710 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800711 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700712 benchmark::utils::CheckAVX512F)
713 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700714 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700715 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x48,
716 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800717 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700718 benchmark::utils::CheckAVX512F)
719 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700720 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700721 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x64,
722 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -0800723 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700724 benchmark::utils::CheckAVX512F)
725 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700726 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700727 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x80,
728 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -0800729 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700730 benchmark::utils::CheckAVX512F)
731 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700732 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700733 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x96,
734 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x96,
Marat Dukhance834ad2022-01-03 00:22:01 -0800735 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700736 benchmark::utils::CheckAVX512F)
737 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700738 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700739 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x112,
740 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x112,
Marat Dukhance834ad2022-01-03 00:22:01 -0800741 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700742 benchmark::utils::CheckAVX512F)
743 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700744 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700745 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_div_x128,
746 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_div_x128,
Marat Dukhance834ad2022-01-03 00:22:01 -0800747 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700748 benchmark::utils::CheckAVX512F)
749 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700750 ->UseRealTime();
751
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700752 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x16,
753 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800754 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700755 benchmark::utils::CheckAVX512F)
756 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700757 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700758 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x32,
759 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800760 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700761 benchmark::utils::CheckAVX512F)
762 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700763 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700764 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x48,
765 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800766 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700767 benchmark::utils::CheckAVX512F)
768 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700769 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700770 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x64,
771 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -0800772 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700773 benchmark::utils::CheckAVX512F)
774 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700775 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700776 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x80,
777 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -0800778 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700779 benchmark::utils::CheckAVX512F)
780 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700781 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700782 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x96,
783 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x96,
Marat Dukhance834ad2022-01-03 00:22:01 -0800784 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700785 benchmark::utils::CheckAVX512F)
786 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700787 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700788 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x112,
789 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x112,
Marat Dukhance834ad2022-01-03 00:22:01 -0800790 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700791 benchmark::utils::CheckAVX512F)
792 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700793 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700794 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut16_p3_perm_scalef_nr1fma_x128,
795 xnn_f32_vsigmoid_ukernel__avx512f_rr1_lut16_p3_perm_scalef_nr1fma_x128,
Marat Dukhance834ad2022-01-03 00:22:01 -0800796 xnn_init_f32_sigmoid_avx512_rr1_lut16_p3_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700797 benchmark::utils::CheckAVX512F)
798 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700799 ->UseRealTime();
800
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700801 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x16,
802 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800803 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700804 benchmark::utils::CheckAVX512F)
805 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700806 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700807 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x32,
808 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800809 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700810 benchmark::utils::CheckAVX512F)
811 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700812 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700813 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x48,
814 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800815 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700816 benchmark::utils::CheckAVX512F)
817 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700818 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700819 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x64,
820 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -0800821 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700822 benchmark::utils::CheckAVX512F)
823 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700824 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700825 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x80,
826 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -0800827 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700828 benchmark::utils::CheckAVX512F)
829 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700830 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700831 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x96,
832 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x96,
Marat Dukhance834ad2022-01-03 00:22:01 -0800833 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700834 benchmark::utils::CheckAVX512F)
835 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700836 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700837 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x112,
838 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x112,
Marat Dukhance834ad2022-01-03 00:22:01 -0800839 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700840 benchmark::utils::CheckAVX512F)
841 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700842 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700843 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_div_x128,
844 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_div_x128,
Marat Dukhance834ad2022-01-03 00:22:01 -0800845 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700846 benchmark::utils::CheckAVX512F)
847 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700848 ->UseRealTime();
849
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700850 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x16,
851 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800852 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700853 benchmark::utils::CheckAVX512F)
854 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700855 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700856 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x32,
857 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800858 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700859 benchmark::utils::CheckAVX512F)
860 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700861 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700862 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x48,
863 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800864 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700865 benchmark::utils::CheckAVX512F)
866 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700867 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700868 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x64,
869 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -0800870 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700871 benchmark::utils::CheckAVX512F)
872 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700873 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700874 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x80,
875 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -0800876 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700877 benchmark::utils::CheckAVX512F)
878 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700879 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700880 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x96,
881 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x96,
Marat Dukhance834ad2022-01-03 00:22:01 -0800882 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700883 benchmark::utils::CheckAVX512F)
884 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700885 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700886 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x112,
887 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x112,
Marat Dukhance834ad2022-01-03 00:22:01 -0800888 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700889 benchmark::utils::CheckAVX512F)
890 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700891 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700892 BENCHMARK_CAPTURE(f32_vsigmoid, avx512f_lut32_p2_perm2_scalef_nr1fma_x128,
893 xnn_f32_vsigmoid_ukernel__avx512f_rr2_lut32_p2_perm2_scalef_nr1fma_x128,
Marat Dukhance834ad2022-01-03 00:22:01 -0800894 xnn_init_f32_sigmoid_avx512_rr2_lut32_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700895 benchmark::utils::CheckAVX512F)
896 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700897 ->UseRealTime();
898
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700899 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x8,
900 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800901 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700902 benchmark::utils::CheckAVX2)
903 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700904 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700905 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x16,
906 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800907 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700908 benchmark::utils::CheckAVX2)
909 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700910 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700911 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x24,
912 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800913 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700914 benchmark::utils::CheckAVX2)
915 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700916 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700917 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x32,
918 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800919 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700920 benchmark::utils::CheckAVX2)
921 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700922 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700923 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x40,
924 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x40,
Marat Dukhance834ad2022-01-03 00:22:01 -0800925 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700926 benchmark::utils::CheckAVX2)
927 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700928 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700929 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x48,
930 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800931 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700932 benchmark::utils::CheckAVX2)
933 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700934 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700935 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x56,
936 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x56,
Marat Dukhance834ad2022-01-03 00:22:01 -0800937 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700938 benchmark::utils::CheckAVX2)
939 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700940 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700941 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x64,
942 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -0800943 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700944 benchmark::utils::CheckAVX2)
945 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700946 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700947 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x72,
948 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x72,
Marat Dukhance834ad2022-01-03 00:22:01 -0800949 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700950 benchmark::utils::CheckAVX2)
951 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700952 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700953 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_div_x80,
954 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_div_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -0800955 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700956 benchmark::utils::CheckAVX2)
957 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700958 ->UseRealTime();
959
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700960 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x8,
961 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -0800962 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700963 benchmark::utils::CheckAVX2)
964 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700965 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700966 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x16,
967 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -0800968 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700969 benchmark::utils::CheckAVX2)
970 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700971 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700972 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x24,
973 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -0800974 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700975 benchmark::utils::CheckAVX2)
976 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700977 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700978 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x32,
979 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -0800980 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700981 benchmark::utils::CheckAVX2)
982 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700983 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700984 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x40,
985 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x40,
Marat Dukhance834ad2022-01-03 00:22:01 -0800986 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700987 benchmark::utils::CheckAVX2)
988 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700989 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700990 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x48,
991 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -0800992 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700993 benchmark::utils::CheckAVX2)
994 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -0700995 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700996 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x56,
997 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x56,
Marat Dukhance834ad2022-01-03 00:22:01 -0800998 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -0700999 benchmark::utils::CheckAVX2)
1000 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001001 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001002 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x64,
1003 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -08001004 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001005 benchmark::utils::CheckAVX2)
1006 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001007 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001008 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x72,
1009 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x72,
Marat Dukhance834ad2022-01-03 00:22:01 -08001010 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001011 benchmark::utils::CheckAVX2)
1012 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001013 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001014 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr1fma_x80,
1015 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr1fma_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -08001016 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001017 benchmark::utils::CheckAVX2)
1018 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001019 ->UseRealTime();
1020
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001021 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x8,
1022 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -08001023 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001024 benchmark::utils::CheckAVX2)
1025 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001026 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001027 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x16,
1028 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -08001029 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001030 benchmark::utils::CheckAVX2)
1031 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001032 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001033 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x24,
1034 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -08001035 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001036 benchmark::utils::CheckAVX2)
1037 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001038 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001039 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x32,
1040 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -08001041 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001042 benchmark::utils::CheckAVX2)
1043 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001044 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001045 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x40,
1046 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x40,
Marat Dukhance834ad2022-01-03 00:22:01 -08001047 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001048 benchmark::utils::CheckAVX2)
1049 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001050 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001051 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x48,
1052 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -08001053 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001054 benchmark::utils::CheckAVX2)
1055 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001056 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001057 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x56,
1058 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x56,
Marat Dukhance834ad2022-01-03 00:22:01 -08001059 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001060 benchmark::utils::CheckAVX2)
1061 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001062 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001063 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x64,
1064 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -08001065 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001066 benchmark::utils::CheckAVX2)
1067 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001068 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001069 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x72,
1070 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x72,
Marat Dukhance834ad2022-01-03 00:22:01 -08001071 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001072 benchmark::utils::CheckAVX2)
1073 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001074 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001075 BENCHMARK_CAPTURE(f32_vsigmoid, avx2_p5_nr2fma_x80,
1076 xnn_f32_vsigmoid_ukernel__avx2_rr1_p5_nr2fma_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -08001077 xnn_init_f32_sigmoid_avx2_rr1_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001078 benchmark::utils::CheckAVX2)
1079 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001080 ->UseRealTime();
1081
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001082 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x8,
1083 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -08001084 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001085 benchmark::utils::CheckAVX)
1086 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001087 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001088 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x16,
1089 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -08001090 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001091 benchmark::utils::CheckAVX)
1092 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001093 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001094 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x24,
1095 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -08001096 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001097 benchmark::utils::CheckAVX)
1098 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001099 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001100 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x32,
1101 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -08001102 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001103 benchmark::utils::CheckAVX)
1104 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001105 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001106 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x40,
1107 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x40,
Marat Dukhance834ad2022-01-03 00:22:01 -08001108 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001109 benchmark::utils::CheckAVX)
1110 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001111 ->UseRealTime();
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001112 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x48,
1113 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -08001114 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001115 benchmark::utils::CheckAVX)
1116 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1117 ->UseRealTime();
1118 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x56,
1119 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x56,
Marat Dukhance834ad2022-01-03 00:22:01 -08001120 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001121 benchmark::utils::CheckAVX)
1122 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1123 ->UseRealTime();
1124 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x64,
1125 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -08001126 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001127 benchmark::utils::CheckAVX)
1128 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1129 ->UseRealTime();
1130 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x72,
1131 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x72,
Marat Dukhance834ad2022-01-03 00:22:01 -08001132 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001133 benchmark::utils::CheckAVX)
1134 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1135 ->UseRealTime();
1136 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_div_x80,
1137 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_div_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -08001138 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001139 benchmark::utils::CheckAVX)
1140 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1141 ->UseRealTime();
1142 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x8,
1143 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x8,
Marat Dukhance834ad2022-01-03 00:22:01 -08001144 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001145 benchmark::utils::CheckAVX)
1146 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1147 ->UseRealTime();
1148 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x16,
1149 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x16,
Marat Dukhance834ad2022-01-03 00:22:01 -08001150 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001151 benchmark::utils::CheckAVX)
1152 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1153 ->UseRealTime();
1154 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x24,
1155 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x24,
Marat Dukhance834ad2022-01-03 00:22:01 -08001156 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001157 benchmark::utils::CheckAVX)
1158 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1159 ->UseRealTime();
1160 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x32,
1161 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x32,
Marat Dukhance834ad2022-01-03 00:22:01 -08001162 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001163 benchmark::utils::CheckAVX)
1164 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1165 ->UseRealTime();
1166 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x40,
1167 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x40,
Marat Dukhance834ad2022-01-03 00:22:01 -08001168 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001169 benchmark::utils::CheckAVX)
1170 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1171 ->UseRealTime();
1172 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x48,
1173 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x48,
Marat Dukhance834ad2022-01-03 00:22:01 -08001174 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001175 benchmark::utils::CheckAVX)
1176 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1177 ->UseRealTime();
1178 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x56,
1179 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x56,
Marat Dukhance834ad2022-01-03 00:22:01 -08001180 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001181 benchmark::utils::CheckAVX)
1182 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1183 ->UseRealTime();
1184 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x64,
1185 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x64,
Marat Dukhance834ad2022-01-03 00:22:01 -08001186 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001187 benchmark::utils::CheckAVX)
1188 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1189 ->UseRealTime();
1190 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x72,
1191 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x72,
Marat Dukhance834ad2022-01-03 00:22:01 -08001192 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001193 benchmark::utils::CheckAVX)
1194 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1195 ->UseRealTime();
1196 BENCHMARK_CAPTURE(f32_vsigmoid, avx_p5_nr2_x80,
1197 xnn_f32_vsigmoid_ukernel__avx_rr2_p5_nr2_x80,
Marat Dukhance834ad2022-01-03 00:22:01 -08001198 xnn_init_f32_sigmoid_avx_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001199 benchmark::utils::CheckAVX)
1200 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001201 ->UseRealTime();
1202
Marat Dukhance834ad2022-01-03 00:22:01 -08001203 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_p5_div_x4,
1204 xnn_f32_vsigmoid_ukernel__sse41_rr2_p5_div_x4,
1205 xnn_init_f32_sigmoid_sse2_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001206 benchmark::utils::CheckSSE41)
1207 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001208 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001209 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_p5_div_x8,
1210 xnn_f32_vsigmoid_ukernel__sse41_rr2_p5_div_x8,
1211 xnn_init_f32_sigmoid_sse2_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001212 benchmark::utils::CheckSSE41)
1213 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001214 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001215 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_p5_div_x12,
1216 xnn_f32_vsigmoid_ukernel__sse41_rr2_p5_div_x12,
1217 xnn_init_f32_sigmoid_sse2_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001218 benchmark::utils::CheckSSE41)
1219 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001220 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001221 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_p5_div_x16,
1222 xnn_f32_vsigmoid_ukernel__sse41_rr2_p5_div_x16,
1223 xnn_init_f32_sigmoid_sse2_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001224 benchmark::utils::CheckSSE41)
1225 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001226 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001227 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_p5_div_x20,
1228 xnn_f32_vsigmoid_ukernel__sse41_rr2_p5_div_x20,
1229 xnn_init_f32_sigmoid_sse2_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001230 benchmark::utils::CheckSSE41)
1231 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001232 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001233 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_p5_div_x24,
1234 xnn_f32_vsigmoid_ukernel__sse41_rr2_p5_div_x24,
1235 xnn_init_f32_sigmoid_sse2_rr2_p5_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001236 benchmark::utils::CheckSSE41)
1237 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001238 ->UseRealTime();
1239
Marat Dukhance834ad2022-01-03 00:22:01 -08001240 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_lut64_p2_div_x4,
1241 xnn_f32_vsigmoid_ukernel__sse41_rr2_lut64_p2_div_x4,
1242 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001243 benchmark::utils::CheckSSE41)
1244 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001245 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001246 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_lut64_p2_div_x8,
1247 xnn_f32_vsigmoid_ukernel__sse41_rr2_lut64_p2_div_x8,
1248 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001249 benchmark::utils::CheckSSE41)
1250 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001251 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001252 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_lut64_p2_div_x12,
1253 xnn_f32_vsigmoid_ukernel__sse41_rr2_lut64_p2_div_x12,
1254 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001255 benchmark::utils::CheckSSE41)
1256 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001257 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001258 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_lut64_p2_div_x16,
1259 xnn_f32_vsigmoid_ukernel__sse41_rr2_lut64_p2_div_x16,
1260 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001261 benchmark::utils::CheckSSE41)
1262 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001263 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001264 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_lut64_p2_div_x20,
1265 xnn_f32_vsigmoid_ukernel__sse41_rr2_lut64_p2_div_x20,
1266 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001267 benchmark::utils::CheckSSE41)
1268 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001269 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001270 BENCHMARK_CAPTURE(f32_vsigmoid, sse41_rr2_lut64_p2_div_x24,
1271 xnn_f32_vsigmoid_ukernel__sse41_rr2_lut64_p2_div_x24,
1272 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params,
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001273 benchmark::utils::CheckSSE41)
1274 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001275 ->UseRealTime();
1276
Marat Dukhance834ad2022-01-03 00:22:01 -08001277 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_p5_div_x4,
1278 xnn_f32_vsigmoid_ukernel__sse2_rr2_p5_div_x4,
1279 xnn_init_f32_sigmoid_sse2_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001280 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001281 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001282 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_p5_div_x8,
1283 xnn_f32_vsigmoid_ukernel__sse2_rr2_p5_div_x8,
1284 xnn_init_f32_sigmoid_sse2_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001285 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001286 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001287 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_p5_div_x12,
1288 xnn_f32_vsigmoid_ukernel__sse2_rr2_p5_div_x12,
1289 xnn_init_f32_sigmoid_sse2_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001290 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001291 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001292 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_p5_div_x16,
1293 xnn_f32_vsigmoid_ukernel__sse2_rr2_p5_div_x16,
1294 xnn_init_f32_sigmoid_sse2_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001295 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001296 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001297 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_p5_div_x20,
1298 xnn_f32_vsigmoid_ukernel__sse2_rr2_p5_div_x20,
1299 xnn_init_f32_sigmoid_sse2_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001300 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001301 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001302 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_p5_div_x24,
1303 xnn_f32_vsigmoid_ukernel__sse2_rr2_p5_div_x24,
1304 xnn_init_f32_sigmoid_sse2_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001305 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1306 ->UseRealTime();
1307
Marat Dukhance834ad2022-01-03 00:22:01 -08001308 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_lut64_p2_div_x4,
1309 xnn_f32_vsigmoid_ukernel__sse2_rr2_lut64_p2_div_x4,
1310 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001311 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1312 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001313 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_lut64_p2_div_x8,
1314 xnn_f32_vsigmoid_ukernel__sse2_rr2_lut64_p2_div_x8,
1315 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001316 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1317 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001318 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_lut64_p2_div_x12,
1319 xnn_f32_vsigmoid_ukernel__sse2_rr2_lut64_p2_div_x12,
1320 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001321 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1322 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001323 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_lut64_p2_div_x16,
1324 xnn_f32_vsigmoid_ukernel__sse2_rr2_lut64_p2_div_x16,
1325 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001326 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1327 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001328 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_lut64_p2_div_x20,
1329 xnn_f32_vsigmoid_ukernel__sse2_rr2_lut64_p2_div_x20,
1330 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001331 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
1332 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001333 BENCHMARK_CAPTURE(f32_vsigmoid, sse2_rr2_lut64_p2_div_x24,
1334 xnn_f32_vsigmoid_ukernel__sse2_rr2_lut64_p2_div_x24,
1335 xnn_init_f32_sigmoid_sse2_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001336 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001337 ->UseRealTime();
1338#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1339
Marat Dukhan4c617792021-12-21 15:47:58 -08001340#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhance834ad2022-01-03 00:22:01 -08001341 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_lut64_p2_div_x4,
1342 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_lut64_p2_div_x4,
1343 xnn_init_f32_sigmoid_wasmsimd_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001344 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001345 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001346 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_lut64_p2_div_x8,
1347 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_lut64_p2_div_x8,
1348 xnn_init_f32_sigmoid_wasmsimd_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001349 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001350 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001351 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_lut64_p2_div_x12,
1352 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_lut64_p2_div_x12,
1353 xnn_init_f32_sigmoid_wasmsimd_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001354 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001355 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001356 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_lut64_p2_div_x16,
1357 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_lut64_p2_div_x16,
1358 xnn_init_f32_sigmoid_wasmsimd_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001359 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001360 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001361 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_lut64_p2_div_x20,
1362 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_lut64_p2_div_x20,
1363 xnn_init_f32_sigmoid_wasmsimd_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001364 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001365 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001366 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_lut64_p2_div_x24,
1367 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_lut64_p2_div_x24,
1368 xnn_init_f32_sigmoid_wasmsimd_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001369 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001370 ->UseRealTime();
1371
Marat Dukhance834ad2022-01-03 00:22:01 -08001372 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_p5_div_x4,
1373 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_p5_div_x4,
1374 xnn_init_f32_sigmoid_wasmsimd_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001375 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001376 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001377 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_p5_div_x8,
1378 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_p5_div_x8,
1379 xnn_init_f32_sigmoid_wasmsimd_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001380 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001381 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001382 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_p5_div_x12,
1383 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_p5_div_x12,
1384 xnn_init_f32_sigmoid_wasmsimd_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001385 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001386 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001387 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_p5_div_x16,
1388 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_p5_div_x16,
1389 xnn_init_f32_sigmoid_wasmsimd_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001390 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001391 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001392 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_p5_div_x20,
1393 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_p5_div_x20,
1394 xnn_init_f32_sigmoid_wasmsimd_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001395 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001396 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001397 BENCHMARK_CAPTURE(f32_vsigmoid, wasmsimd_rr2_p5_div_x24,
1398 xnn_f32_vsigmoid_ukernel__wasmsimd_rr2_p5_div_x24,
1399 xnn_init_f32_sigmoid_wasmsimd_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001400 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001401 ->UseRealTime();
Marat Dukhan4c617792021-12-21 15:47:58 -08001402#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan6674d692021-05-05 22:27:00 -07001403
Marat Dukhance834ad2022-01-03 00:22:01 -08001404BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_lut2048_p1_div_x1,
1405 xnn_f32_vsigmoid_ukernel__scalar_rr2_lut2048_p1_div_x1,
1406 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001407 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001408 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001409BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_lut2048_p1_div_x2,
1410 xnn_f32_vsigmoid_ukernel__scalar_rr2_lut2048_p1_div_x2,
1411 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001412 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001413 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001414BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_lut2048_p1_div_x4,
1415 xnn_f32_vsigmoid_ukernel__scalar_rr2_lut2048_p1_div_x4,
1416 xnn_init_f32_sigmoid_scalar_rr2_lut2048_p1_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001417 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001418 ->UseRealTime();
1419
Marat Dukhance834ad2022-01-03 00:22:01 -08001420BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_lut64_p2_div_x1,
1421 xnn_f32_vsigmoid_ukernel__scalar_rr2_lut64_p2_div_x1,
1422 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001423 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001424 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001425BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_lut64_p2_div_x2,
1426 xnn_f32_vsigmoid_ukernel__scalar_rr2_lut64_p2_div_x2,
1427 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001428 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001429 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001430BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_lut64_p2_div_x4,
1431 xnn_f32_vsigmoid_ukernel__scalar_rr2_lut64_p2_div_x4,
1432 xnn_init_f32_sigmoid_scalar_rr2_lut64_p2_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001433 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001434 ->UseRealTime();
1435
Marat Dukhance834ad2022-01-03 00:22:01 -08001436BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_p5_div_x1,
1437 xnn_f32_vsigmoid_ukernel__scalar_rr2_p5_div_x1,
1438 xnn_init_f32_sigmoid_scalar_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001439 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001440 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001441BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_p5_div_x2,
1442 xnn_f32_vsigmoid_ukernel__scalar_rr2_p5_div_x2,
1443 xnn_init_f32_sigmoid_scalar_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001444 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001445 ->UseRealTime();
Marat Dukhance834ad2022-01-03 00:22:01 -08001446BENCHMARK_CAPTURE(f32_vsigmoid, scalar_rr2_p5_div_x4,
1447 xnn_f32_vsigmoid_ukernel__scalar_rr2_p5_div_x4,
1448 xnn_init_f32_sigmoid_scalar_rr2_p5_params)
Marat Dukhan9f8ea9b2021-08-06 22:09:37 -07001449 ->Apply(benchmark::utils::UnaryElementwiseParameters<float, float>)
Marat Dukhan6674d692021-05-05 22:27:00 -07001450 ->UseRealTime();
1451
1452#ifndef XNNPACK_BENCHMARK_NO_MAIN
1453BENCHMARK_MAIN();
1454#endif