Skip to content
Snippets Groups Projects

Add batch approach for matrix multiplication

Open Mattia Mancini requested to merge multi-matrix-multiply into main
3 files
+ 11
10
Compare changes
  • Side-by-side
  • Inline

Files

@@ -128,7 +128,7 @@ BENCHMARK_F(InitializeInput, MatrixMultiplicationNEONb)
@@ -128,7 +128,7 @@ BENCHMARK_F(InitializeInput, MatrixMultiplicationNEONb)
}
}
#endif
#endif
BENCHMARK_DEFINE_F(InitializeInputBatch, MatrixMultiplicationBatchReference)
BENCHMARK_DEFINE_F(InitializeInputBatch, BatchMatrixMultiplicationReference)
(benchmark::State& state) {
(benchmark::State& state) {
for (auto _ : state) {
for (auto _ : state) {
for (size_t s = 0; s < state.range(0); s++) {
for (size_t s = 0; s < state.range(0); s++) {
@@ -137,7 +137,7 @@ BENCHMARK_DEFINE_F(InitializeInputBatch, MatrixMultiplicationBatchReference)
@@ -137,7 +137,7 @@ BENCHMARK_DEFINE_F(InitializeInputBatch, MatrixMultiplicationBatchReference)
}
}
}
}
BENCHMARK_DEFINE_F(InitializeInputBatch, MatrixMultiplicationBatchAOCommon)
BENCHMARK_DEFINE_F(InitializeInputBatch, BatchMatrixMultiplicationAOCommon)
(benchmark::State& state) {
(benchmark::State& state) {
for (auto _ : state) {
for (auto _ : state) {
for (size_t s = 0; s < state.range(0); s++) {
for (size_t s = 0; s < state.range(0); s++) {
@@ -147,31 +147,31 @@ BENCHMARK_DEFINE_F(InitializeInputBatch, MatrixMultiplicationBatchAOCommon)
@@ -147,31 +147,31 @@ BENCHMARK_DEFINE_F(InitializeInputBatch, MatrixMultiplicationBatchAOCommon)
}
}
BENCHMARK_DEFINE_F(InitializeInputBatch,
BENCHMARK_DEFINE_F(InitializeInputBatch,
MatrixMultiplicationBatchRealComplexOpenMP)
BatchMatrixMultiplicationRealComplexOpenMP)
(benchmark::State& state) {
(benchmark::State& state) {
for (auto _ : state) {
for (auto _ : state) {
matrixMultiplyRealComplexSIMD(A, B, C, state.range(0));
matrixMultiplyRealComplexSIMD(A, B, C, state.range(0));
}
}
}
}
BENCHMARK_DEFINE_F(InitializeInputBatch, MatrixMultiplicationBatchRealComplex)
BENCHMARK_DEFINE_F(InitializeInputBatch, BatchMatrixMultiplicationRealComplex)
(benchmark::State& state) {
(benchmark::State& state) {
for (auto _ : state) {
for (auto _ : state) {
matrixMultiplyRealComplex(A, B, C, state.range(0));
matrixMultiplyRealComplex(A, B, C, state.range(0));
}
}
}
}
BENCHMARK_REGISTER_F(InitializeInputBatch, MatrixMultiplicationBatchReference)
BENCHMARK_REGISTER_F(InitializeInputBatch, BatchMatrixMultiplicationReference)
->Range(8, 512);
->Range(8, 512);
BENCHMARK_REGISTER_F(InitializeInputBatch, MatrixMultiplicationBatchAOCommon)
BENCHMARK_REGISTER_F(InitializeInputBatch, BatchMatrixMultiplicationAOCommon)
->Range(8, 512);
->Range(8, 512);
BENCHMARK_REGISTER_F(InitializeInputBatch, MatrixMultiplicationBatchRealComplex)
BENCHMARK_REGISTER_F(InitializeInputBatch, BatchMatrixMultiplicationRealComplex)
->Range(8, 512);
->Range(8, 512);
BENCHMARK_REGISTER_F(InitializeInputBatch,
BENCHMARK_REGISTER_F(InitializeInputBatch,
MatrixMultiplicationBatchRealComplexOpenMP)
BatchMatrixMultiplicationRealComplexOpenMP)
->Range(8, 512);
->Range(8, 512);
BENCHMARK_MAIN();
BENCHMARK_MAIN();
Loading