aboutsummaryrefslogtreecommitdiff
path: root/bench/qs8-gemm.cc
diff options
context:
space:
mode:
authorMarat Dukhan <maratek@google.com>2020-08-05 15:19:03 -0700
committerXNNPACK Team <xnnpack-github-robot@google.com>2020-08-05 15:19:39 -0700
commit27203da35b21cd591d89835460967df1ba96aaf9 (patch)
tree235e0782b8d8488fdd635adafb67de1c6388f9f8 /bench/qs8-gemm.cc
parentb1cbbba8426bb087cead661844debb22164b9590 (diff)
downloadXNNPACK-27203da35b21cd591d89835460967df1ba96aaf9.tar.gz
WAsm SIMD versions of QS8 GEMM and IGEMM microkernels
PiperOrigin-RevId: 325112592
Diffstat (limited to 'bench/qs8-gemm.cc')
-rw-r--r--bench/qs8-gemm.cc32
1 files changed, 31 insertions, 1 deletions
diff --git a/bench/qs8-gemm.cc b/bench/qs8-gemm.cc
index be8181b9d..514256bb8 100644
--- a/bench/qs8-gemm.cc
+++ b/bench/qs8-gemm.cc
@@ -357,7 +357,37 @@ static void GEMMBenchmark(benchmark::State& state,
BENCHMARK_GEMM(qs8_gemm_3x4c8__sse2_ld128)
BENCHMARK_GEMM(qs8_gemm_xw_2x4c8__sse2)
BENCHMARK_GEMM(qs8_gemm_xw_3x4c8__sse2)
-#endif
+#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
+
+#if XNN_ARCH_WASMSIMD
+ static void qs8_gemm_2x4c8__wasmsimd_ld64(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_2x4c8__wasmsimd_ld64, 2, 4, 8, 1);
+ }
+ static void qs8_gemm_3x4c8__wasmsimd_ld64(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__wasmsimd_ld64, 3, 4, 8, 1);
+ }
+
+ static void qs8_gemm_2x4c8__wasmsimd_ld128(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_2x4c8__wasmsimd_ld128, 2, 4, 8, 1);
+ }
+ static void qs8_gemm_3x4c8__wasmsimd_ld128(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__wasmsimd_ld128, 3, 4, 8, 1);
+ }
+
+ static void qs8_gemm_xw_2x4c8__wasmsimd(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_xw_minmax_ukernel_2x4c8__wasmsimd, 2, 4, 8, 1);
+ }
+ static void qs8_gemm_xw_3x4c8__wasmsimd(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_xw_minmax_ukernel_3x4c8__wasmsimd, 3, 4, 8, 1);
+ }
+
+ BENCHMARK_GEMM(qs8_gemm_2x4c8__wasmsimd_ld64)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__wasmsimd_ld64)
+ BENCHMARK_GEMM(qs8_gemm_2x4c8__wasmsimd_ld128)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__wasmsimd_ld128)
+ BENCHMARK_GEMM(qs8_gemm_xw_2x4c8__wasmsimd)
+ BENCHMARK_GEMM(qs8_gemm_xw_3x4c8__wasmsimd)
+#endif // XNN_ARCH_WASMSIMD
#ifndef XNNPACK_BENCHMARK_NO_MAIN
BENCHMARK_MAIN();