Gromacs
2020.4
|
#include "gmxpre.h"
#include "pme_gpu_timings.h"
#include "gromacs/utility/gmxassert.h"
#include "pme_gpu_internal.h"
#include "pme_gpu_types_host.h"
#include "pme_gpu_types_host_impl.h"
Implements PME GPU timing events wrappers.
Functions | |
bool | pme_gpu_timings_enabled (const PmeGpu *pmeGpu) |
Tells if CUDA-based performance tracking is enabled for PME. More... | |
void | pme_gpu_start_timing (const PmeGpu *pmeGpu, size_t PMEStageId) |
Starts timing the certain PME GPU stage during a single computation (if timings are enabled). More... | |
CommandEvent * | pme_gpu_fetch_timing_event (const PmeGpu *pmeGpu, size_t PMEStageId) |
Returns raw timing event from the corresponding GpuRegionTimer (if timings are enabled). In CUDA result can be nullptr stub, per GpuRegionTimer implementation. More... | |
void | pme_gpu_stop_timing (const PmeGpu *pmeGpu, size_t PMEStageId) |
Stops timing the certain PME GPU stage during a single computation (if timings are enabled). More... | |
void | pme_gpu_get_timings (const PmeGpu *pmeGpu, gmx_wallclock_gpu_pme_t *timings) |
Copies the PME GPU timings to the gmx_wallclock_gpu_t structure (for log output). To be called at the run end. More... | |
void | pme_gpu_update_timings (const PmeGpu *pmeGpu) |
Finalizes all the active PME GPU stage timings for the current computation. Should be called at the end of every computation. More... | |
void | pme_gpu_reinit_timings (const PmeGpu *pmeGpu) |
Updates the internal list of active PME GPU stages (if timings are enabled). More... | |
void | pme_gpu_reset_timings (const PmeGpu *pmeGpu) |
Resets the PME GPU timings. To be called at the reset MD step. More... | |
CommandEvent* pme_gpu_fetch_timing_event | ( | const PmeGpu * | pmeGpu, |
size_t | PMEStageId | ||
) |
Returns raw timing event from the corresponding GpuRegionTimer (if timings are enabled). In CUDA result can be nullptr stub, per GpuRegionTimer implementation.
[in] | pmeGpu | The PME GPU data structure. |
[in] | PMEStageId | The PME GPU stage gtPME_ index from the enum in src/gromacs/timing/gpu_timing.h |
void pme_gpu_get_timings | ( | const PmeGpu * | pmeGpu, |
gmx_wallclock_gpu_pme_t * | timings | ||
) |
Copies the PME GPU timings to the gmx_wallclock_gpu_t structure (for log output). To be called at the run end.
[in] | pmeGpu | The PME GPU structure. |
[in] | timings | The gmx_wallclock_gpu_pme_t structure. |
void pme_gpu_reinit_timings | ( | const PmeGpu * | pmeGpu | ) |
Updates the internal list of active PME GPU stages (if timings are enabled).
[in] | pmeGpu | The PME GPU data structure. |
void pme_gpu_reset_timings | ( | const PmeGpu * | pmeGpu | ) |
Resets the PME GPU timings. To be called at the reset MD step.
[in] | pmeGpu | The PME GPU structure. |
void pme_gpu_start_timing | ( | const PmeGpu * | pmeGpu, |
size_t | PMEStageId | ||
) |
Starts timing the certain PME GPU stage during a single computation (if timings are enabled).
[in] | pmeGpu | The PME GPU data structure. |
[in] | PMEStageId | The PME GPU stage gtPME_ index from the enum in src/gromacs/timing/gpu_timing.h |
void pme_gpu_stop_timing | ( | const PmeGpu * | pmeGpu, |
size_t | PMEStageId | ||
) |
Stops timing the certain PME GPU stage during a single computation (if timings are enabled).
[in] | pmeGpu | The PME GPU data structure. |
[in] | PMEStageId | The PME GPU stage gtPME_ index from the enum in src/gromacs/timing/gpu_timing.h |
|
inline |
Tells if CUDA-based performance tracking is enabled for PME.
[in] | pmeGpu | The PME GPU data structure. |
void pme_gpu_update_timings | ( | const PmeGpu * | pmeGpu | ) |
Finalizes all the active PME GPU stage timings for the current computation. Should be called at the end of every computation.
[in] | pmeGpu | The PME GPU structure. |