Gromacs
2021.1
|
#include <memory>
#include "gromacs/gpu_utils/devicebuffer_datatype.h"
#include "gromacs/gpu_utils/gpu_macros.h"
#include "gromacs/mdtypes/locality.h"
Declare interface for GPU data transfer for NBNXN module.
Functions | |
NbnxmGpu * | Nbnxm::gpu_init (const gmx::DeviceStreamManager &deviceStreamManager, const interaction_const_t *ic, const PairlistParams &listParams, const nbnxn_atomdata_t *nbat, bool bLocalAndNonlocal) |
Initializes the data structures related to GPU nonbonded calculations. More... | |
void | Nbnxm::gpu_init_pairlist (NbnxmGpu *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 (NbnxmGpu *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 (NbnxmGpu *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 (NbnxmGpu *nb, bool computeVirial) |
Clears GPU outputs: nonbonded force, shift force and energy. More... | |
void | Nbnxm::gpu_free (NbnxmGpu *nb) |
Frees all GPU resources used for the nonbonded calculations. More... | |
struct gmx_wallclock_gpu_nbnxn_t * | Nbnxm::gpu_get_timings (NbnxmGpu *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 (NbnxmGpu *nb) |
Calculates the minimum size of proximity lists to improve SM load balance with GPU non-bonded kernels. More... | |
bool | Nbnxm::gpu_is_kernel_ewald_analytical (const NbnxmGpu *nb) |
Returns if analytical Ewald GPU kernels are used. More... | |
const DeviceStream * | Nbnxm::gpu_get_command_stream (NbnxmGpu *nb, gmx::InteractionLocality iloc) |
Returns an opaque pointer to the GPU command stream Note: CUDA only. | |
void * | Nbnxm::gpu_get_xq (NbnxmGpu *nb) |
Returns an opaque pointer to the GPU coordinate+charge array Note: CUDA only. | |
DeviceBuffer< gmx::RVec > | Nbnxm::gpu_get_f (NbnxmGpu *nb) |
Returns an opaque pointer to the GPU force array Note: CUDA only. | |
DeviceBuffer< gmx::RVec > | Nbnxm::gpu_get_fshift (NbnxmGpu *nb) |
Returns an opaque pointer to the GPU shift force array Note: CUDA only. | |