Gromacs  2024.2
 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, PmeStage pmeStageId)
 Starts timing the certain PME GPU stage during a single computation (if timings are enabled). More...
 
void pme_gpu_stop_timing (const PmeGpu *pmeGpu, PmeStage 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

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,
PmeStage  pmeStageId 
)
strong

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,
PmeStage  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)

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.