Gromacs
2018.8
|
#include "gromacs/gpu_utils/gpu_macros.h"
#include "gromacs/mdlib/nbnxn_gpu_types.h"
#include "gromacs/mdtypes/interaction_const.h"
Declare interface for GPU data transfer for NBNXN module.
Functions | |
void | nbnxn_gpu_init (gmx_nbnxn_gpu_t **p_nb, const gmx_device_info_t *deviceInfo, const interaction_const_t *ic, const NbnxnListParameters *listParams, const nbnxn_atomdata_t *nbat, int rank, gmx_bool bLocalAndNonlocal) |
Initializes the data structures related to GPU nonbonded calculations. More... | |
void | nbnxn_gpu_init_pairlist (gmx_nbnxn_gpu_t *nb, const struct nbnxn_pairlist_t *h_nblist, int iloc) |
Initializes pair-list data for GPU, called at every pair search step. More... | |
void | nbnxn_gpu_init_atomdata (gmx_nbnxn_gpu_t *nb, const nbnxn_atomdata_t *nbat) |
Initializes atom-data on the GPU, called at every pair search step. More... | |
void | nbnxn_gpu_pme_loadbal_update_param (const struct nonbonded_verlet_t *nbv, const interaction_const_t *ic, const NbnxnListParameters *listParams) |
Re-generate the GPU Ewald force table, resets rlist, and update the electrostatic type switching to twin cut-off (or back) if needed. | |
void | nbnxn_gpu_upload_shiftvec (gmx_nbnxn_gpu_t *nb, const nbnxn_atomdata_t *nbatom) |
Uploads shift vector to the GPU if the box is dynamic (otherwise just returns). More... | |
void | nbnxn_gpu_clear_outputs (gmx_nbnxn_gpu_t *nb, int flags) |
Clears GPU outputs: nonbonded force, shift force and energy. More... | |
void | nbnxn_gpu_free (gmx_nbnxn_gpu_t *nb) |
Frees all GPU resources used for the nonbonded calculations. More... | |
struct gmx_wallclock_gpu_nbnxn_t * | nbnxn_gpu_get_timings (gmx_nbnxn_gpu_t *nb) |
Returns the GPU timings structure or NULL if GPU is not used or timing is off. More... | |
void | nbnxn_gpu_reset_timings (struct nonbonded_verlet_t *nbv) |
Resets nonbonded GPU timings. More... | |
int | nbnxn_gpu_min_ci_balanced (gmx_nbnxn_gpu_t *nb) |
Calculates the minimum size of proximity lists to improve SM load balance with GPU non-bonded kernels. More... | |
gmx_bool | nbnxn_gpu_is_kernel_ewald_analytical (const gmx_nbnxn_gpu_t *nb) |
Returns if analytical Ewald GPU kernels are used. More... | |
void nbnxn_gpu_clear_outputs | ( | gmx_nbnxn_ocl_t * | nb, |
int | flags | ||
) |
Clears GPU outputs: nonbonded force, shift force and energy.
Clears GPU outputs: nonbonded force, shift force and energy.
void nbnxn_gpu_free | ( | gmx_nbnxn_ocl_t * | nb | ) |
Frees all GPU resources used for the nonbonded calculations.
Frees all GPU resources used for the nonbonded calculations.
struct gmx_wallclock_gpu_nbnxn_t* nbnxn_gpu_get_timings | ( | gmx_nbnxn_ocl_t * | nb | ) |
Returns the GPU timings structure or NULL if GPU is not used or timing is off.
Returns the GPU timings structure or NULL if GPU is not used or timing is off.
void nbnxn_gpu_init | ( | gmx_nbnxn_ocl_t ** | p_nb, |
const gmx_device_info_t * | deviceInfo, | ||
const interaction_const_t * | ic, | ||
const NbnxnListParameters * | listParams, | ||
const nbnxn_atomdata_t * | nbat, | ||
int | rank, | ||
gmx_bool | bLocalAndNonlocal | ||
) |
Initializes the data structures related to GPU nonbonded calculations.
Initializes the data structures related to GPU nonbonded calculations.
void nbnxn_gpu_init_atomdata | ( | gmx_nbnxn_ocl_t * | nb, |
const nbnxn_atomdata_t * | nbat | ||
) |
Initializes atom-data on the GPU, called at every pair search step.
Initializes atom-data on the GPU, called at every pair search step.
void nbnxn_gpu_init_pairlist | ( | gmx_nbnxn_gpu_t * | nb, |
const struct nbnxn_pairlist_t * | h_nblist, | ||
int | iloc | ||
) |
Initializes pair-list data for GPU, called at every pair search step.
gmx_bool nbnxn_gpu_is_kernel_ewald_analytical | ( | const gmx_nbnxn_ocl_t * | nb | ) |
Returns if analytical Ewald GPU kernels are used.
Returns if analytical Ewald GPU kernels are used.
int nbnxn_gpu_min_ci_balanced | ( | gmx_nbnxn_ocl_t * | nb | ) |
Calculates the minimum size of proximity lists to improve SM load balance with GPU non-bonded kernels.
Calculates the minimum size of proximity lists to improve SM load balance with GPU non-bonded kernels.
void nbnxn_gpu_reset_timings | ( | nonbonded_verlet_t * | nbv | ) |
Resets nonbonded GPU timings.
Resets nonbonded GPU timings.
void nbnxn_gpu_upload_shiftvec | ( | gmx_nbnxn_ocl_t * | nb, |
const nbnxn_atomdata_t * | nbatom | ||
) |
Uploads shift vector to the GPU if the box is dynamic (otherwise just returns).
Uploads shift vector to the GPU if the box is dynamic (otherwise just returns).