Gromacs
2024.3
|
#include "gromacs/gpu_utils/gpu_macros.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/mdtypes/locality.h"
#include "gromacs/nbnxm/atomdata.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/real.h"
#include "nbnxm.h"
Declare interface for GPU execution for NBNXN module.
Functions | |
static bool | Nbnxm::useLjCombRule (const enum VdwType vdwType) |
Returns true if LJ combination rules are used in the non-bonded kernels. More... | |
void | Nbnxm::gpu_copy_xq_to_gpu (NbnxmGpu gmx_unused *nb, const struct nbnxn_atomdata_t gmx_unused *nbdata, gmx::AtomLocality gmx_unused aloc) |
Launch asynchronously the xq buffer host to device copy. More... | |
void | Nbnxm::gpu_launch_kernel (NbnxmGpu gmx_unused *nb, const gmx::StepWorkload gmx_unused &stepWork, gmx::InteractionLocality gmx_unused iloc) |
Launch asynchronously the nonbonded force calculations. More... | |
void | Nbnxm::gpu_launch_kernel_pruneonly (NbnxmGpu gmx_unused *nb, gmx::InteractionLocality gmx_unused iloc, int gmx_unused numParts) |
Launch asynchronously the nonbonded prune-only kernel. More... | |
void | Nbnxm::gpu_launch_cpyback (NbnxmGpu gmx_unused *nb, nbnxn_atomdata_t gmx_unused *nbatom, const gmx::StepWorkload gmx_unused &stepWork, gmx::AtomLocality gmx_unused aloc) |
Launch asynchronously the download of short-range forces from the GPU (and energies/shift forces if required). | |
bool | Nbnxm::gpu_try_finish_task (NbnxmGpu gmx_unused *nb, const gmx::StepWorkload gmx_unused &stepWork, gmx::AtomLocality gmx_unused aloc, real gmx_unused *e_lj, real gmx_unused *e_el, gmx::ArrayRef< gmx::RVec > gmx_unused shiftForces, GpuTaskCompletion gmx_unused completionKind) |
Attempts to complete nonbonded GPU task. More... | |
float | Nbnxm::gpu_wait_finish_task (NbnxmGpu gmx_unused *nb, const gmx::StepWorkload gmx_unused &stepWork, gmx::AtomLocality gmx_unused aloc, real gmx_unused *e_lj, real gmx_unused *e_el, gmx::ArrayRef< gmx::RVec > gmx_unused shiftForces, gmx_wallcycle gmx_unused *wcycle) |
Completes the nonbonded GPU task blocking until GPU tasks and data transfers to finish. More... | |
void | Nbnxm::nbnxn_gpu_init_x_to_nbat_x (const Nbnxm::GridSet gmx_unused &gridSet, NbnxmGpu gmx_unused *gpu_nbv) |
Initialization for X buffer operations on GPU. Called on the NS step and performs (re-)allocations and memory copies. ! | |
void | Nbnxm::nbnxn_gpu_x_to_nbat_x (const Nbnxm::Grid gmx_unused &grid, NbnxmGpu gmx_unused *gpu_nbv, DeviceBuffer< gmx::RVec > gmx_unused d_x, GpuEventSynchronizer gmx_unused *xReadyOnDevice, gmx::AtomLocality gmx_unused locality, int gmx_unused gridId, int gmx_unused numColumnsMax, bool gmx_unused mustInsertNonLocalDependency) |
X buffer operations on GPU: performs conversion from rvec to nb format. More... | |
void | Nbnxm::nbnxnInsertNonlocalGpuDependency (NbnxmGpu gmx_unused *nb, gmx::InteractionLocality gmx_unused interactionLocality) |
Sync the nonlocal stream with dependent tasks in the local queue. More... | |
void | Nbnxm::setupGpuShortRangeWork (NbnxmGpu gmx_unused *nb, const gmx::ListedForcesGpu gmx_unused *listedForcesGpu, gmx::InteractionLocality gmx_unused iLocality) |
Set up internal flags that indicate what type of short-range work there is. More... | |
bool | Nbnxm::haveGpuShortRangeWork (const NbnxmGpu gmx_unused *nb, gmx::InteractionLocality gmx_unused interactionLocality) |
Returns true if there is GPU short-range work for the given interaction locality. More... | |