17 #ifndef KOKKOS_TIMER_HPP 18 #define KOKKOS_TIMER_HPP 19 #ifndef KOKKOS_IMPL_PUBLIC_INCLUDE 20 #define KOKKOS_IMPL_PUBLIC_INCLUDE 21 #define KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_TIMER 24 #include <Kokkos_Macros.hpp> 27 #if defined(KOKKOS_COMPILER_GNU) && (KOKKOS_COMPILER_GNU == 1030) && \ 28 defined(KOKKOS_COMPILER_NVCC) 38 #if defined(KOKKOS_COMPILER_GNU) && (KOKKOS_COMPILER_GNU == 1030) && \ 39 defined(KOKKOS_COMPILER_NVCC) 45 inline void reset() { gettimeofday(&m_old,
nullptr); }
47 inline ~Timer() =
default;
49 inline Timer() { reset(); }
51 Timer(
const Timer&) =
delete;
52 Timer& operator=(
const Timer&) =
delete;
54 inline double seconds()
const {
57 gettimeofday(&m_new,
nullptr);
59 return ((
double)(m_new.tv_sec - m_old.tv_sec)) +
60 ((double)(m_new.tv_usec - m_old.tv_usec) * 1.0e-6);
66 std::chrono::high_resolution_clock::time_point m_old;
69 inline void reset() { m_old = std::chrono::high_resolution_clock::now(); }
71 inline ~
Timer() =
default;
73 inline Timer() { reset(); }
78 inline double seconds()
const {
79 std::chrono::high_resolution_clock::time_point m_new =
80 std::chrono::high_resolution_clock::now();
81 return std::chrono::duration_cast<std::chrono::duration<double> >(m_new -
90 #ifdef KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_TIMER 91 #undef KOKKOS_IMPL_PUBLIC_INCLUDE 92 #undef KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_TIMER