Add FMAGIC/IMAGIC/LRINTF requantization variants in microkernel benchmarks
PiperOrigin-RevId: 419692372
diff --git a/bench/qs8-gemm.cc b/bench/qs8-gemm.cc
index 60d555d..a82b85e 100644
--- a/bench/qs8-gemm.cc
+++ b/bench/qs8-gemm.cc
@@ -1800,7 +1800,6 @@
GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_4x2__scalar_fmagic, 4, 2, 1, 1,
xnn_init_qs8_conv_minmax_fp32_scalar_fmagic_params);
}
-
static void qs8_gemm_2x4__scalar_fmagic(benchmark::State& state, const char* net) {
GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_2x4__scalar_fmagic, 2, 4, 1, 1,
xnn_init_qs8_conv_minmax_fp32_scalar_fmagic_params);
@@ -1814,14 +1813,77 @@
xnn_init_qs8_conv_minmax_fp32_scalar_fmagic_params);
}
+static void qs8_gemm_2x2__scalar_imagic(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_2x2__scalar_imagic, 2, 2, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_imagic_params);
+}
+static void qs8_gemm_3x2__scalar_imagic(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_3x2__scalar_imagic, 3, 2, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_imagic_params);
+}
+static void qs8_gemm_4x2__scalar_imagic(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_4x2__scalar_imagic, 4, 2, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_imagic_params);
+}
+static void qs8_gemm_2x4__scalar_imagic(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_2x4__scalar_imagic, 2, 4, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_imagic_params);
+}
+static void qs8_gemm_3x4__scalar_imagic(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_3x4__scalar_imagic, 3, 4, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_imagic_params);
+}
+static void qs8_gemm_4x4__scalar_imagic(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_4x4__scalar_imagic, 4, 4, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_imagic_params);
+}
+
+static void qs8_gemm_2x2__scalar_lrintf(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_2x2__scalar_lrintf, 2, 2, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_lrintf_params);
+}
+static void qs8_gemm_3x2__scalar_lrintf(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_3x2__scalar_lrintf, 3, 2, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_lrintf_params);
+}
+static void qs8_gemm_4x2__scalar_lrintf(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_4x2__scalar_lrintf, 4, 2, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_lrintf_params);
+}
+static void qs8_gemm_2x4__scalar_lrintf(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_2x4__scalar_lrintf, 2, 4, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_lrintf_params);
+}
+static void qs8_gemm_3x4__scalar_lrintf(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_3x4__scalar_lrintf, 3, 4, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_lrintf_params);
+}
+static void qs8_gemm_4x4__scalar_lrintf(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_fp32_ukernel_4x4__scalar_lrintf, 4, 4, 1, 1,
+ xnn_init_qs8_conv_minmax_fp32_scalar_lrintf_params);
+}
+
BENCHMARK_GEMM(qs8_gemm_2x2__scalar_fmagic)
BENCHMARK_GEMM(qs8_gemm_3x2__scalar_fmagic)
BENCHMARK_GEMM(qs8_gemm_4x2__scalar_fmagic)
-
BENCHMARK_GEMM(qs8_gemm_2x4__scalar_fmagic)
BENCHMARK_GEMM(qs8_gemm_3x4__scalar_fmagic)
BENCHMARK_GEMM(qs8_gemm_4x4__scalar_fmagic)
+BENCHMARK_GEMM(qs8_gemm_2x2__scalar_imagic)
+BENCHMARK_GEMM(qs8_gemm_3x2__scalar_imagic)
+BENCHMARK_GEMM(qs8_gemm_4x2__scalar_imagic)
+BENCHMARK_GEMM(qs8_gemm_2x4__scalar_imagic)
+BENCHMARK_GEMM(qs8_gemm_3x4__scalar_imagic)
+BENCHMARK_GEMM(qs8_gemm_4x4__scalar_imagic)
+
+BENCHMARK_GEMM(qs8_gemm_2x2__scalar_lrintf)
+BENCHMARK_GEMM(qs8_gemm_3x2__scalar_lrintf)
+BENCHMARK_GEMM(qs8_gemm_4x2__scalar_lrintf)
+BENCHMARK_GEMM(qs8_gemm_2x4__scalar_lrintf)
+BENCHMARK_GEMM(qs8_gemm_3x4__scalar_lrintf)
+BENCHMARK_GEMM(qs8_gemm_4x4__scalar_lrintf)
+
#ifdef BENCHMARK_RUY
BENCHMARK_GEMM(ruy_st)