aboutsummaryrefslogtreecommitdiff
path: root/bench/qs8-gemm.cc
diff options
context:
space:
mode:
authorMarat Dukhan <maratek@google.com>2020-08-03 16:43:57 -0700
committerXNNPACK Team <xnnpack-github-robot@google.com>2020-08-03 16:44:35 -0700
commite7edc80133456f569c49966a39dd54458cdacdd0 (patch)
tree35fba51b713204b37c6fe9563b4537cf15da9034 /bench/qs8-gemm.cc
parent1280952e3a5ba49f7a3b3663b765b76de0a3178e (diff)
downloadXNNPACK-e7edc80133456f569c49966a39dd54458cdacdd0.tar.gz
Add 3x4c8 variants of SSE2/SSSE3/SSE4.1/XOP GEMM/IGEMM microkernels
PiperOrigin-RevId: 324710790
Diffstat (limited to 'bench/qs8-gemm.cc')
-rw-r--r--bench/qs8-gemm.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/bench/qs8-gemm.cc b/bench/qs8-gemm.cc
index 67b5263c3..dec01928a 100644
--- a/bench/qs8-gemm.cc
+++ b/bench/qs8-gemm.cc
@@ -158,6 +158,32 @@ static void GEMMBenchmark(benchmark::State& state,
GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_2x4c8__xop_ld128, 2, 4, 8, 1, benchmark::utils::CheckXOP);
}
+ static void qs8_gemm_3x4c8__sse2_ld64(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__sse2_ld64, 3, 4, 8, 1);
+ }
+ static void qs8_gemm_3x4c8__ssse3_ld64(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__ssse3_ld64, 3, 4, 8, 1, benchmark::utils::CheckSSSE3);
+ }
+ static void qs8_gemm_3x4c8__sse41_ld64(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__sse41_ld64, 3, 4, 8, 1, benchmark::utils::CheckSSE41);
+ }
+ static void qs8_gemm_3x4c8__xop_ld64(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__xop_ld64, 3, 4, 8, 1, benchmark::utils::CheckXOP);
+ }
+
+ static void qs8_gemm_3x4c8__sse2_ld128(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__sse2_ld128, 3, 4, 8, 1);
+ }
+ static void qs8_gemm_3x4c8__ssse3_ld128(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__ssse3_ld128, 3, 4, 8, 1, benchmark::utils::CheckSSSE3);
+ }
+ static void qs8_gemm_3x4c8__sse41_ld128(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__sse41_ld128, 3, 4, 8, 1, benchmark::utils::CheckSSE41);
+ }
+ static void qs8_gemm_3x4c8__xop_ld128(benchmark::State& state, const char* net) {
+ GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_3x4c8__xop_ld128, 3, 4, 8, 1, benchmark::utils::CheckXOP);
+ }
+
static void qs8_gemm_2x8c8__avx2(benchmark::State& state, const char* net) {
GEMMBenchmark(state, xnn_qs8_gemm_minmax_ukernel_2x8c8__avx2, 2, 8, 8, 1, benchmark::utils::CheckAVX2);
}
@@ -176,14 +202,22 @@ static void GEMMBenchmark(benchmark::State& state,
BENCHMARK_GEMM(qs8_gemm_4x4c2__xop_ld128)
BENCHMARK_GEMM(qs8_gemm_2x4c8__sse2_ld64)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__sse2_ld64)
BENCHMARK_GEMM(qs8_gemm_2x4c8__ssse3_ld64)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__ssse3_ld64)
BENCHMARK_GEMM(qs8_gemm_2x4c8__sse41_ld64)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__sse41_ld64)
BENCHMARK_GEMM(qs8_gemm_2x4c8__xop_ld64)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__xop_ld64)
BENCHMARK_GEMM(qs8_gemm_2x4c8__sse2_ld128)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__sse2_ld128)
BENCHMARK_GEMM(qs8_gemm_2x4c8__ssse3_ld128)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__ssse3_ld128)
BENCHMARK_GEMM(qs8_gemm_2x4c8__sse41_ld128)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__sse41_ld128)
BENCHMARK_GEMM(qs8_gemm_2x4c8__xop_ld128)
+ BENCHMARK_GEMM(qs8_gemm_3x4c8__xop_ld128)
BENCHMARK_GEMM(qs8_gemm_2x8c8__avx2)
BENCHMARK_GEMM(qs8_gemm_3x8c8__avx2)