Hipace
Classes | Macros | Functions | Variables
HipaceProfilerWrapper.H File Reference
#include <AMReX_BLProfiler.H>
#include <AMReX_GpuDevice.H>

Go to the source code of this file.

Classes

struct  synchronizeOnDestruct< detail_level >
 

Macros

#define HIPACE_PROFILE(fname)   doStreamSynchronize<1>(); BL_PROFILE(fname); synchronizeOnDestruct<1> BL_PROFILE_PASTE(SYNC_SCOPE_, __COUNTER__){}
 
#define HIPACE_PROFILE_VAR(fname, vname)   doStreamSynchronize<1>(); BL_PROFILE_VAR(fname, vname); synchronizeOnDestruct<1> SYNC_V_##vname{}
 
#define HIPACE_PROFILE_VAR_NS(fname, vname)   BL_PROFILE_VAR_NS(fname, vname); synchronizeOnDestruct<1> SYNC_V_##vname{}
 
#define HIPACE_PROFILE_VAR_START(vname)   doStreamSynchronize<1>(); BL_PROFILE_VAR_START(vname)
 
#define HIPACE_PROFILE_VAR_STOP(vname)   doStreamSynchronize<1>(); BL_PROFILE_VAR_STOP(vname)
 
#define HIPACE_PROFILE_REGION(rname)   doStreamSynchronize<1>(); BL_PROFILE_REGION(rname); synchronizeOnDestruct<1> BL_PROFILE_PASTE(SYNC_R_, __COUNTER__){}
 
#define HIPACE_DETAIL_PROFILE(fname)   doStreamSynchronize<2>(); BL_PROFILE(fname); synchronizeOnDestruct<2> BL_PROFILE_PASTE(SYNC_SCOPE_, __COUNTER__){}
 
#define HIPACE_DETAIL_PROFILE_VAR(fname, vname)   doStreamSynchronize<2>(); BL_PROFILE_VAR(fname, vname); synchronizeOnDestruct<2> SYNC_V_##vname{}
 
#define HIPACE_DETAIL_PROFILE_VAR_NS(fname, vname)   BL_PROFILE_VAR_NS(fname, vname); synchronizeOnDestruct<2> SYNC_V_##vname{}
 
#define HIPACE_DETAIL_PROFILE_VAR_START(vname)   doStreamSynchronize<2>(); BL_PROFILE_VAR_START(vname)
 
#define HIPACE_DETAIL_PROFILE_VAR_STOP(vname)   doStreamSynchronize<2>(); BL_PROFILE_VAR_STOP(vname)
 
#define HIPACE_DETAIL_PROFILE_REGION(rname)   doStreamSynchronize<2>(); BL_PROFILE_REGION(rname); synchronizeOnDestruct<2> BL_PROFILE_PASTE(SYNC_R_, __COUNTER__){}
 

Functions

template<int detail_level>
AMREX_FORCE_INLINE void doStreamSynchronize ()
 

Variables

int DO_DEVICE_SYNCHRONIZE = 0
 

Macro Definition Documentation

◆ HIPACE_DETAIL_PROFILE

#define HIPACE_DETAIL_PROFILE (   fname)    doStreamSynchronize<2>(); BL_PROFILE(fname); synchronizeOnDestruct<2> BL_PROFILE_PASTE(SYNC_SCOPE_, __COUNTER__){}

◆ HIPACE_DETAIL_PROFILE_REGION

#define HIPACE_DETAIL_PROFILE_REGION (   rname)    doStreamSynchronize<2>(); BL_PROFILE_REGION(rname); synchronizeOnDestruct<2> BL_PROFILE_PASTE(SYNC_R_, __COUNTER__){}

◆ HIPACE_DETAIL_PROFILE_VAR

#define HIPACE_DETAIL_PROFILE_VAR (   fname,
  vname 
)    doStreamSynchronize<2>(); BL_PROFILE_VAR(fname, vname); synchronizeOnDestruct<2> SYNC_V_##vname{}

◆ HIPACE_DETAIL_PROFILE_VAR_NS

#define HIPACE_DETAIL_PROFILE_VAR_NS (   fname,
  vname 
)    BL_PROFILE_VAR_NS(fname, vname); synchronizeOnDestruct<2> SYNC_V_##vname{}

◆ HIPACE_DETAIL_PROFILE_VAR_START

#define HIPACE_DETAIL_PROFILE_VAR_START (   vname)    doStreamSynchronize<2>(); BL_PROFILE_VAR_START(vname)

◆ HIPACE_DETAIL_PROFILE_VAR_STOP

#define HIPACE_DETAIL_PROFILE_VAR_STOP (   vname)    doStreamSynchronize<2>(); BL_PROFILE_VAR_STOP(vname)

◆ HIPACE_PROFILE

#define HIPACE_PROFILE (   fname)    doStreamSynchronize<1>(); BL_PROFILE(fname); synchronizeOnDestruct<1> BL_PROFILE_PASTE(SYNC_SCOPE_, __COUNTER__){}

◆ HIPACE_PROFILE_REGION

#define HIPACE_PROFILE_REGION (   rname)    doStreamSynchronize<1>(); BL_PROFILE_REGION(rname); synchronizeOnDestruct<1> BL_PROFILE_PASTE(SYNC_R_, __COUNTER__){}

◆ HIPACE_PROFILE_VAR

#define HIPACE_PROFILE_VAR (   fname,
  vname 
)    doStreamSynchronize<1>(); BL_PROFILE_VAR(fname, vname); synchronizeOnDestruct<1> SYNC_V_##vname{}

◆ HIPACE_PROFILE_VAR_NS

#define HIPACE_PROFILE_VAR_NS (   fname,
  vname 
)    BL_PROFILE_VAR_NS(fname, vname); synchronizeOnDestruct<1> SYNC_V_##vname{}

◆ HIPACE_PROFILE_VAR_START

#define HIPACE_PROFILE_VAR_START (   vname)    doStreamSynchronize<1>(); BL_PROFILE_VAR_START(vname)

◆ HIPACE_PROFILE_VAR_STOP

#define HIPACE_PROFILE_VAR_STOP (   vname)    doStreamSynchronize<1>(); BL_PROFILE_VAR_STOP(vname)

Function Documentation

◆ doStreamSynchronize()

template<int detail_level>
AMREX_FORCE_INLINE void doStreamSynchronize ( )

Variable Documentation

◆ DO_DEVICE_SYNCHRONIZE

int DO_DEVICE_SYNCHRONIZE = 0
inline

Whether to call amrex::Gpu::streamSynchronize() around all profiler region