From f37121a4732933998b01aa39380d304edcf7e435 Mon Sep 17 00:00:00 2001 From: Jeongnim Kim Date: Thu, 7 Mar 2024 09:10:16 -0800 Subject: [PATCH] Update fft3d.cpp: add timer and FFT3D GFLOPS --- benchmarks/gbench/mhp/fft3d.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/benchmarks/gbench/mhp/fft3d.cpp b/benchmarks/gbench/mhp/fft3d.cpp index 76b2cc5056..64594c1f1a 100644 --- a/benchmarks/gbench/mhp/fft3d.cpp +++ b/benchmarks/gbench/mhp/fft3d.cpp @@ -195,8 +195,26 @@ void fft(std::size_t nreps, std::size_t x, std::size_t y, std::size_t z) { if (nreps == 0) { fft3d.check(); } else { + double elapsed = 0; for (int iter = 0; iter < nreps; ++iter) { + auto begin = std::chrono::steady_clock::now(); fft3d.compute(); + auto end = std::chrono::steady_clock::now(); + if (iter) + elapsed += std::chrono::duration(end - begin).count(); + } + + if (comm_rank == 0) { + std::size_t volume = x * y * z; + std::size_t fft_flops = + 2 * static_cast(5. * volume * + std::log2(static_cast(volume))); + double t_avg = elapsed / (nreps - 1); + fmt::print("fft3d-mhp {0} {3} AvgTime {1:.3f} GFLOPS {2:.3f}\n", x, t_avg, + fft_flops / t_avg * 1e-9, comm_size); + for (int iter = 0; iter < nreps; ++iter) { + fft3d.compute(); + } } } }