8 #ifndef ABLASTR_PROFILERWRAPPER_H_
9 #define ABLASTR_PROFILERWRAPPER_H_
24 if (do_device_synchronize) {
55 #define ABLASTR_PROFILE(fname, sync) ablastr::profiler::device_synchronize(sync); BL_PROFILE(fname); const ablastr::profiler::SynchronizeOnDestruct BL_PROFILE_PASTE(SYNC_SCOPE_, __COUNTER__){sync}
56 #define ABLASTR_PROFILE_VAR(fname, vname, sync) ablastr::profiler::device_synchronize(sync); BL_PROFILE_VAR(fname, vname); const ablastr::profiler::SynchronizeOnDestruct SYNC_V_##vname{sync}
57 #define ABLASTR_PROFILE_VAR_NS(fname, vname, sync) BL_PROFILE_VAR_NS(fname, vname); const ablastr::profiler::SynchronizeOnDestruct SYNC_V_##vname{sync}
58 #define ABLASTR_PROFILE_VAR_START(vname, sync) ablastr::profiler::device_synchronize(sync); BL_PROFILE_VAR_START(vname)
59 #define ABLASTR_PROFILE_VAR_STOP(vname, sync) ablastr::profiler::device_synchronize(sync); BL_PROFILE_VAR_STOP(vname)
60 #define ABLASTR_PROFILE_REGION(rname, sync) ablastr::profiler::device_synchronize(sync); BL_PROFILE_REGION(rname); const ablastr::profiler::SynchronizeOnDestruct BL_PROFILE_PASTE(SYNC_R_, __COUNTER__){sync}
#define AMREX_FORCE_INLINE
Definition: ProfilerWrapper.H:16
AMREX_FORCE_INLINE void device_synchronize(bool const do_device_synchronize=false)
Definition: ProfilerWrapper.H:23
void synchronize() noexcept
Definition: ProfilerWrapper.H:33
SynchronizeOnDestruct & operator=(SynchronizeOnDestruct &&field_data)=default
AMREX_FORCE_INLINE ~SynchronizeOnDestruct()
Definition: ProfilerWrapper.H:38
SynchronizeOnDestruct & operator=(const SynchronizeOnDestruct &)=default
SynchronizeOnDestruct(bool const do_device_synchronize=false)
Definition: ProfilerWrapper.H:34
SynchronizeOnDestruct(SynchronizeOnDestruct &&)=default
SynchronizeOnDestruct(const SynchronizeOnDestruct &)=default
bool m_do_device_synchronize
Definition: ProfilerWrapper.H:48