From 10c672c2e21bb77b7234d9d3611267400dce7ae0 Mon Sep 17 00:00:00 2001 From: SiCong Li Date: Thu, 22 Jun 2017 15:46:40 +0100 Subject: COMPMID-399 Add MatrixMultiply to benchmark Change-Id: I86c3f808c0047c8d97211d21f61c4e79e2d2abb1 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78617 Tested-by: Kaizen Reviewed-by: Anthony Barbier --- tests/benchmark/NEON/GEMM.cpp | 69 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'tests/benchmark/NEON') diff --git a/tests/benchmark/NEON/GEMM.cpp b/tests/benchmark/NEON/GEMM.cpp index 9190309f1c..50131b4998 100644 --- a/tests/benchmark/NEON/GEMM.cpp +++ b/tests/benchmark/NEON/GEMM.cpp @@ -49,11 +49,14 @@ namespace #ifdef ENABLE_FP16 using GEMMFP16GoogLeNet1 = GEMM; using GEMMFP16GoogLeNet2 = GEMM; +using FP16MatrixMultiply = GEMM; #endif /* ENABLE_FP16 */ using GEMMFP32GoogLeNet1 = GEMM; using GEMMFP32GoogLeNet2 = GEMM; using GEMMQS8GoogLeNet1 = GEMM; using GEMMQS8GoogLeNet2 = GEMM; +using FP32MatrixMultiply = GEMM; +using QS8MatrixMultiply = GEMM; } // namespace #ifdef ENABLE_FP16 BENCHMARK_DEFINE_F(GEMMFP16GoogLeNet1, neon_googlenet) @@ -272,6 +275,28 @@ BENCHMARK_REGISTER_F(GEMMFP16GoogLeNet2, neon_googlenet) BENCHMARK_REGISTER_F(GEMMFP16GoogLeNet2, neon_googlenet) ->Threads(1) ->Apply(DataSetArg); + +BENCHMARK_DEFINE_F(FP16MatrixMultiply, neon_matrix_multiply) +(::benchmark::State &state) +{ + while(state.KeepRunning()) + { + // Run function + profiler.start(); + gemm_layer->run(); + profiler.stop(); + } +} + +BENCHMARK_REGISTER_F(FP16MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); +BENCHMARK_REGISTER_F(FP16MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); +BENCHMARK_REGISTER_F(FP16MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); #endif /* ENABLE_FP16 */ BENCHMARK_DEFINE_F(GEMMFP32GoogLeNet1, neon_googlenet) @@ -707,3 +732,47 @@ BENCHMARK_REGISTER_F(GEMMQS8GoogLeNet2, neon_googlenet) BENCHMARK_REGISTER_F(GEMMQS8GoogLeNet2, neon_googlenet) ->Threads(1) ->Apply(DataSetArg); + +BENCHMARK_DEFINE_F(FP32MatrixMultiply, neon_matrix_multiply) +(::benchmark::State &state) +{ + while(state.KeepRunning()) + { + // Run function + profiler.start(); + gemm_layer->run(); + profiler.stop(); + } +} + +BENCHMARK_REGISTER_F(FP32MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); +BENCHMARK_REGISTER_F(FP32MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); +BENCHMARK_REGISTER_F(FP32MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); + +BENCHMARK_DEFINE_F(QS8MatrixMultiply, neon_matrix_multiply) +(::benchmark::State &state) +{ + while(state.KeepRunning()) + { + // Run function + profiler.start(); + gemm_layer->run(); + profiler.stop(); + } +} + +BENCHMARK_REGISTER_F(QS8MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); +BENCHMARK_REGISTER_F(QS8MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); +BENCHMARK_REGISTER_F(QS8MatrixMultiply, neon_matrix_multiply) +->Threads(1) +->Apply(DataSetArg); -- cgit v1.2.1