/************************************************************************* * Copyright (c) 2016-2022, NVIDIA CORPORATION. All rights reserved. * Modifications Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. * * See LICENSE.txt for license information ************************************************************************/ #include "timer.h" // Make sure to compile this translation unit with the host compiler and not // nvcc, lest you hit an internal compiler error (ICE) with GCC 10.3.0 #include namespace { std::uint64_t now() { using clock = std::chrono::steady_clock; return std::chrono::duration_cast( clock::now().time_since_epoch()) .count(); } } // namespace timer::timer() { t0 = now(); } double timer::elapsed() const { std::uint64_t t1 = now(); return 1.e-9 * (t1 - t0); } double timer::reset() { std::uint64_t t1 = now(); double ans = 1.e-9 * (t1 - t0); t0 = t1; return ans; }