Gromacs  2016.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
nbnxn_gpu_data_mgmt.h File Reference
#include "gromacs/gpu_utils/gpu_macros.h"
#include "gromacs/mdlib/nbnxn_gpu_types.h"
#include "gromacs/mdtypes/interaction_const.h"

Description

Declare interface for GPU data transfer for NBNXN module.

Author
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Functions

void nbnxn_gpu_init (gmx_nbnxn_gpu_t gmx_unused **p_nb, const struct gmx_gpu_info_t gmx_unused *gpu_info, const struct gmx_gpu_opt_t gmx_unused *gpu_opt, const interaction_const_t gmx_unused *ic, nonbonded_verlet_group_t gmx_unused *nbv_grp, int gmx_unused my_gpu_index, int gmx_unused rank, gmx_bool gmx_unused bLocalAndNonlocal)
 Initializes the data structures related to GPU nonbonded calculations. More...
 
void nbnxn_gpu_init_pairlist (gmx_nbnxn_gpu_t gmx_unused *nb, const struct nbnxn_pairlist_t gmx_unused *h_nblist, int gmx_unused iloc)
 Initializes pair-list data for GPU, called at every pair search step. More...
 
void nbnxn_gpu_init_atomdata (gmx_nbnxn_gpu_t gmx_unused *nb, const struct nbnxn_atomdata_t gmx_unused *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 gmx_unused *nbv, const interaction_const_t gmx_unused *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 nbnxn_gpu_upload_shiftvec (gmx_nbnxn_gpu_t gmx_unused *nb, const struct nbnxn_atomdata_t gmx_unused *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 gmx_unused *nb, int gmx_unused flags)
 Clears GPU outputs: nonbonded force, shift force and energy. More...
 
void nbnxn_gpu_free (gmx_nbnxn_gpu_t gmx_unused *nb)
 Frees all GPU resources used for the nonbonded calculations. More...
 
struct gmx_wallclock_gpu_t * nbnxn_gpu_get_timings (gmx_nbnxn_gpu_t gmx_unused *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 gmx_unused *nbv)
 Resets nonbonded GPU timings. More...
 
int nbnxn_gpu_min_ci_balanced (gmx_nbnxn_gpu_t gmx_unused *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 gmx_unused *nb)
 Returns if analytical Ewald GPU kernels are used. More...
 

Function Documentation

void nbnxn_gpu_clear_outputs ( gmx_nbnxn_gpu_t gmx_unused nb,
int gmx_unused  flags 
)

Clears GPU outputs: nonbonded force, shift force and energy.

void nbnxn_gpu_free ( gmx_nbnxn_gpu_t gmx_unused nb)

Frees all GPU resources used for the nonbonded calculations.

struct gmx_wallclock_gpu_t* nbnxn_gpu_get_timings ( gmx_nbnxn_gpu_t gmx_unused nb)

Returns the GPU timings structure or NULL if GPU is not used or timing is off.

void nbnxn_gpu_init ( gmx_nbnxn_gpu_t gmx_unused **  p_nb,
const struct gmx_gpu_info_t gmx_unused gpu_info,
const struct gmx_gpu_opt_t gmx_unused gpu_opt,
const interaction_const_t gmx_unused ic,
nonbonded_verlet_group_t gmx_unused nbv_grp,
int gmx_unused  my_gpu_index,
int gmx_unused  rank,
gmx_bool gmx_unused  bLocalAndNonlocal 
)

Initializes the data structures related to GPU nonbonded calculations.

void nbnxn_gpu_init_atomdata ( gmx_nbnxn_gpu_t gmx_unused nb,
const struct nbnxn_atomdata_t gmx_unused nbat 
)

Initializes atom-data on the GPU, called at every pair search step.

void nbnxn_gpu_init_pairlist ( gmx_nbnxn_gpu_t gmx_unused nb,
const struct nbnxn_pairlist_t gmx_unused h_nblist,
int gmx_unused  iloc 
)

Initializes pair-list data for GPU, called at every pair search step.

gmx_bool nbnxn_gpu_is_kernel_ewald_analytical ( const gmx_nbnxn_gpu_t gmx_unused nb)

Returns if analytical Ewald GPU kernels are used.

int nbnxn_gpu_min_ci_balanced ( gmx_nbnxn_gpu_t gmx_unused nb)

Calculates the minimum size of proximity lists to improve SM load balance with GPU non-bonded kernels.

void nbnxn_gpu_reset_timings ( struct nonbonded_verlet_t gmx_unused nbv)

Resets nonbonded GPU timings.

void nbnxn_gpu_upload_shiftvec ( gmx_nbnxn_gpu_t gmx_unused nb,
const struct nbnxn_atomdata_t gmx_unused nbatom 
)

Uploads shift vector to the GPU if the box is dynamic (otherwise just returns).