diff options
Diffstat (limited to 'Source/Parallelization')
-rw-r--r-- | Source/Parallelization/KernelTimer.H | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/Source/Parallelization/KernelTimer.H b/Source/Parallelization/KernelTimer.H deleted file mode 100644 index 3a5c8bada..000000000 --- a/Source/Parallelization/KernelTimer.H +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright 2019-2020 Michael Rowan, Axel Huebl, Kevin Gott - * - * This file is part of WarpX. - * - * License: BSD-3-Clause-LBNL - */ -#ifndef KERNELTIMER_H_ -#define KERNELTIMER_H_ - -#include "Utils/TextMsg.H" -#include "WarpX.H" - -#include <AMReX.H> -#include <AMReX_REAL.H> - -// #ifdef WARPX_USE_GPUCLOCK - -#include <climits> - -/** - * \brief Defines a timer object to be used on GPU; measures summed thread cycles. - */ -class KernelTimer -{ -public: - /** Constructor. - * \param[in] do_timing Controls whether timer is active. - * \param[in,out] cost Pointer to cost which holds summed thread cycles - * (for performance, it is recommended to allocate pinned host memory). - */ - AMREX_GPU_DEVICE - KernelTimer -#if (defined AMREX_USE_GPU) - (const bool do_timing, amrex::Real* cost) - : m_do_timing(do_timing) -#else - (const bool do_timing, amrex::Real* cost) -#endif - { -#if (defined AMREX_USE_GPU) -# if (defined WARPX_USE_GPUCLOCK) - if (m_do_timing && cost) { - m_cost = cost; -# if defined(AMREX_USE_CUDA) || defined(AMREX_USE_HIP) - // Start the timer - m_wt = clock64(); - -# elif defined(AMREX_USE_DPCPP) - // To be updated - AMREX_ALWAYS_ASSERT_WITH_MESSAGE( m_do_timing == false, - "KernelTimer not yet supported for this hardware." ); -# endif - } -# else // WARPX_USE_GPUCLOCK - AMREX_ALWAYS_ASSERT_WITH_MESSAGE( m_do_timing == false, - "`algo.load_balance_costs_update = gpuclock` requires to compile with `-DWarpX_GPUCLOCK=ON`."); -# endif // WARPX_USE_GPUCLOCK -#else // AMREX_USE_GPU - amrex::ignore_unused(do_timing, cost); -#endif // AMREX_USE_GPU - } - - //! Destructor. - AMREX_GPU_DEVICE - ~KernelTimer () { -#if (defined AMREX_USE_GPU) - if (m_do_timing && m_cost) { -# if defined(AMREX_USE_CUDA) || defined(AMREX_USE_HIP) - m_wt = clock64() - m_wt; - amrex::Gpu::Atomic::Add( m_cost, amrex::Real(m_wt)); -# elif defined(AMREX_USE_DPCPP) - // To be updated -# endif - } -#endif - } - -#if (defined AMREX_USE_GPU) -private: - //! Stores whether kernel timer is active. - bool m_do_timing; - - //! Location in which to accumulate costs from all threads. - amrex::Real* m_cost = nullptr; - - //! Store the time difference (cost) from a single thread. - long long int m_wt; -#endif -}; -#endif |