diff options
author | SiCong Li <sicong.li@arm.com> | 2017-06-22 15:46:40 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 14:14:20 +0100 |
commit | 10c672c2e21bb77b7234d9d3611267400dce7ae0 (patch) | |
tree | e3a61be142225c38e36dc7db4719948a42afe32d /tests/benchmark/CL | |
parent | 84e3120f6803f66cd272729b1f3542cfd3bc75a5 (diff) | |
download | ComputeLibrary-10c672c2e21bb77b7234d9d3611267400dce7ae0.tar.gz |
COMPMID-399 Add MatrixMultiply to benchmark
Change-Id: I86c3f808c0047c8d97211d21f61c4e79e2d2abb1
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78617
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/benchmark/CL')
-rw-r--r-- | tests/benchmark/CL/GEMM.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/benchmark/CL/GEMM.cpp b/tests/benchmark/CL/GEMM.cpp index b90556df48..a10da09cbe 100644 --- a/tests/benchmark/CL/GEMM.cpp +++ b/tests/benchmark/CL/GEMM.cpp @@ -51,6 +51,8 @@ using GEMMFP16GoogLeNet1 = GEMM<GoogLeNetGEMMDataset1, CLTensor, CLAccessor, CLG using GEMMFP16GoogLeNet2 = GEMM<GoogLeNetGEMMDataset2, CLTensor, CLAccessor, CLGEMM, DataType::F16>; using GEMMFP32GoogLeNet1 = GEMM<GoogLeNetGEMMDataset1, CLTensor, CLAccessor, CLGEMM, DataType::F32>; using GEMMFP32GoogLeNet2 = GEMM<GoogLeNetGEMMDataset2, CLTensor, CLAccessor, CLGEMM, DataType::F32>; +using FP16MatrixMultiply = GEMM<MatrixMultiplyDataset, CLTensor, CLAccessor, CLGEMM, DataType::F16>; +using FP32MatrixMultiply = GEMM<MatrixMultiplyDataset, CLTensor, CLAccessor, CLGEMM, DataType::F32>; } // namespace BENCHMARK_DEFINE_F(GEMMFP16GoogLeNet1, cl_googlenet) @@ -490,3 +492,49 @@ BENCHMARK_REGISTER_F(GEMMFP32GoogLeNet2, cl_googlenet) BENCHMARK_REGISTER_F(GEMMFP32GoogLeNet2, cl_googlenet) ->Threads(1) ->Apply(DataSetArg<GoogLeNetGEMMDataset2, 31>); + +BENCHMARK_DEFINE_F(FP16MatrixMultiply, cl_matrix_multiply) +(::benchmark::State &state) +{ + while(state.KeepRunning()) + { + // Run function + profiler.start(); + gemm_layer->run(); + CLScheduler::get().sync(); + profiler.stop(); + } +} + +BENCHMARK_REGISTER_F(FP16MatrixMultiply, cl_matrix_multiply) +->Threads(1) +->Apply(DataSetArg<MatrixMultiplyDataset, 0>); +BENCHMARK_REGISTER_F(FP16MatrixMultiply, cl_matrix_multiply) +->Threads(1) +->Apply(DataSetArg<MatrixMultiplyDataset, 1>); +BENCHMARK_REGISTER_F(FP16MatrixMultiply, cl_matrix_multiply) +->Threads(1) +->Apply(DataSetArg<MatrixMultiplyDataset, 2>); + +BENCHMARK_DEFINE_F(FP32MatrixMultiply, cl_matrix_multiply) +(::benchmark::State &state) +{ + while(state.KeepRunning()) + { + // Run function + profiler.start(); + gemm_layer->run(); + CLScheduler::get().sync(); + profiler.stop(); + } +} + +BENCHMARK_REGISTER_F(FP32MatrixMultiply, cl_matrix_multiply) +->Threads(1) +->Apply(DataSetArg<MatrixMultiplyDataset, 0>); +BENCHMARK_REGISTER_F(FP32MatrixMultiply, cl_matrix_multiply) +->Threads(1) +->Apply(DataSetArg<MatrixMultiplyDataset, 1>); +BENCHMARK_REGISTER_F(FP32MatrixMultiply, cl_matrix_multiply) +->Threads(1) +->Apply(DataSetArg<MatrixMultiplyDataset, 2>); |