Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
pme_gpu_timings.cpp File Reference
#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"
+ Include dependency graph for pme_gpu_timings.cpp:

Description

Implements PME GPU timing events wrappers.

Author
Aleksei Iupinov a.yup.nosp@m.inov.nosp@m.@gmai.nosp@m.l.co.nosp@m.m

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...
 
CommandEventpme_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...
 

Function Documentation

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.

Parameters
[in]pmeGpuThe PME GPU data structure.
[in]PMEStageIdThe 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.

Parameters
[in]pmeGpuThe PME GPU structure.
[in]timingsThe 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).

Parameters
[in]pmeGpuThe 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.

Parameters
[in]pmeGpuThe 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).

Parameters
[in]pmeGpuThe PME GPU data structure.
[in]PMEStageIdThe 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).

Parameters
[in]pmeGpuThe PME GPU data structure.
[in]PMEStageIdThe PME GPU stage gtPME_ index from the enum in src/gromacs/timing/gpu_timing.h
bool pme_gpu_timings_enabled ( const PmeGpu pmeGpu)
inline

Tells if CUDA-based performance tracking is enabled for PME.

Parameters
[in]pmeGpuThe PME GPU data structure.
Returns
True if timings are enabled, false otherwise.
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.

Parameters
[in]pmeGpuThe PME GPU structure.