diff options
author | Marat Dukhan <maratek@google.com> | 2020-08-03 16:43:57 -0700 |
---|---|---|
committer | XNNPACK Team <xnnpack-github-robot@google.com> | 2020-08-03 16:44:35 -0700 |
commit | e7edc80133456f569c49966a39dd54458cdacdd0 (patch) | |
tree | 35fba51b713204b37c6fe9563b4537cf15da9034 /bench/qs8-gemm.cc | |
parent | 1280952e3a5ba49f7a3b3663b765b76de0a3178e (diff) | |
download | XNNPACK-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.cc | 34 |
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) |