Gromacs
2019.1
|
#include <gromacs/listed-forces/gpubonded-impl.h>
Implements GPU bondeds.
Public Member Functions | |
Impl (const gmx_ffparams_t &ffparams, void *streamPtr) | |
Constructor. | |
~Impl () | |
Destructor, non-default needed for freeing device-side buffers. | |
void | updateInteractionListsAndDeviceBuffers (ArrayRef< const int > nbnxnAtomOrder, const t_idef &idef, void *xqDevice, void *forceDevice, void *fshiftDevice) |
Update lists of interactions from idef suitable for the GPU, using the data structures prepared for PP work. More... | |
template<bool calcVir, bool calcEner> | |
void | launchKernels (const t_forcerec *fr, const matrix box) |
Launches bonded kernels on a GPU. | |
bool | haveInteractions () const |
Returns whether there are bonded interactions assigned to the GPU. | |
void | launchEnergyTransfer () |
Launches the transfer of computed bonded energies. | |
void | accumulateEnergyTerms (gmx_enerdata_t *enerd) |
Waits on the energy transfer, and accumulates bonded energies to enerd . | |
void | clearEnergies () |
Clears the device side energy buffer. | |
void gmx::GpuBonded::Impl::updateInteractionListsAndDeviceBuffers | ( | ArrayRef< const int > | nbnxnAtomOrder, |
const t_idef & | idef, | ||
void * | xqDevice, | ||
void * | forceDevice, | ||
void * | fshiftDevice | ||
) |
Update lists of interactions from idef suitable for the GPU, using the data structures prepared for PP work.
Intended to be called after each neighbour search stage. Copies the bonded interactions assigned to the GPU to device data structures, and updates device buffers that may have been updated after search.