Gromacs  2020.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
gpu_data_mgmt.h File Reference
#include <memory>
#include "gromacs/gpu_utils/gpu_macros.h"
#include "gromacs/mdtypes/interaction_const.h"
#include "gromacs/mdtypes/locality.h"
#include "gpu_types.h"
+ Include dependency graph for gpu_data_mgmt.h:

Description

Declare interface for GPU data transfer for NBNXN module.

Author
Szilard Pall pall..nosp@m.szil.nosp@m.ard@g.nosp@m.mail.nosp@m..com
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Functions

gmx_nbnxn_gpu_t * Nbnxm::gpu_init (const gmx_device_info_t *deviceInfo, const interaction_const_t *ic, const PairlistParams &listParams, const nbnxn_atomdata_t *nbat, int rank, gmx_bool bLocalAndNonlocal)
 Initializes the data structures related to GPU nonbonded calculations. More...
 
void Nbnxm::gpu_init_pairlist (gmx_nbnxn_gpu_t *nb, const struct NbnxnPairlistGpu *h_nblist, gmx::InteractionLocality iloc)
 Initializes pair-list data for GPU, called at every pair search step. More...
 
void Nbnxm::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 Nbnxm::gpu_pme_loadbal_update_param (const struct nonbonded_verlet_t *nbv, const interaction_const_t *ic)
 Re-generate the GPU Ewald force table, resets rlist, and update the electrostatic type switching to twin cut-off (or back) if needed.
 
void Nbnxm::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 Nbnxm::gpu_clear_outputs (gmx_nbnxn_gpu_t *nb, bool computeVirial)
 Clears GPU outputs: nonbonded force, shift force and energy. More...
 
void Nbnxm::gpu_free (gmx_nbnxn_gpu_t *nb)
 Frees all GPU resources used for the nonbonded calculations. More...
 
struct gmx_wallclock_gpu_nbnxn_t * Nbnxm::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 Nbnxm::gpu_reset_timings (struct nonbonded_verlet_t *nbv)
 Resets nonbonded GPU timings. More...
 
int Nbnxm::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 Nbnxm::gpu_is_kernel_ewald_analytical (const gmx_nbnxn_gpu_t *nb)
 Returns if analytical Ewald GPU kernels are used. More...
 
void * Nbnxm::gpu_get_command_stream (gmx_nbnxn_gpu_t *nb, gmx::InteractionLocality iloc)
 Returns an opaque pointer to the GPU command stream Note: CUDA only.
 
void * Nbnxm::gpu_get_xq (gmx_nbnxn_gpu_t *nb)
 Returns an opaque pointer to the GPU coordinate+charge array Note: CUDA only.
 
void * Nbnxm::gpu_get_f (gmx_nbnxn_gpu_t *nb)
 Returns an opaque pointer to the GPU force array Note: CUDA only.
 
rvec * Nbnxm::gpu_get_fshift (gmx_nbnxn_gpu_t *nb)
 Returns an opaque pointer to the GPU shift force array Note: CUDA only.