Gromacs
2020.1
|
#include <gromacs/nbnxm/cuda/nbnxm_cuda_types.h>
Main data structure for CUDA nonbonded force calculations.
Public Attributes | |
const gmx_device_info_t * | dev_info |
CUDA device information. | |
bool | bUseTwoStreams |
true if doing both local/non-local NB work on GPU | |
cu_atomdata_t * | atdat |
atom data | |
int * | cell |
f buf ops cell index mapping | |
int | ncell |
number of indices in cell buffer | |
int | ncell_alloc |
number of indices allocated in cell buffer | |
int * | atomIndices |
array of atom indices | |
int | atomIndicesSize |
size of atom indices | |
int | atomIndicesSize_alloc |
size of atom indices allocated in device buffer | |
int * | cxy_na |
x buf ops num of atoms | |
int | ncxy_na |
number of elements in cxy_na | |
int | ncxy_na_alloc |
number of elements allocated allocated in device buffer | |
int * | cxy_ind |
x buf ops cell index mapping | |
int | ncxy_ind |
number of elements in cxy_ind | |
int | ncxy_ind_alloc |
number of elements allocated allocated in device buffer | |
cu_nbparam_t * | nbparam |
parameters required for the non-bonded calc. | |
gmx::EnumerationArray < Nbnxm::InteractionLocality, cu_plist_t * > | plist |
pair-list data structures (local and non-local) | |
nb_staging_t | nbst |
staging area where fshift/energies get downloaded | |
gmx::EnumerationArray < Nbnxm::InteractionLocality, cudaStream_t > | stream |
local and non-local GPU streams | |
cudaEvent_t | nonlocal_done |
events used for synchronization More... | |
cudaEvent_t | misc_ops_and_local_H2D_done |
event triggered when the tasks issued in the local stream that need to precede the non-local force or buffer operation calculations are done (e.g. More... | |
gmx::EnumerationArray < Nbnxm::InteractionLocality, bool > | haveWork |
True if there has been local/nonlocal GPU work, either bonded or nonbonded, scheduled. | |
GpuEventSynchronizer * | localFReductionDone |
Pointer to event synchronizer triggered when the local GPU buffer ops / reduction is complete. More... | |
GpuEventSynchronizer * | xNonLocalCopyD2HDone |
event triggered when non-local coordinate buffer has been copied from device to host | |
bool | bDoTime |
True if event-based timing is enabled. | |
cu_timers_t * | timers |
CUDA event-based timers. | |
gmx_wallclock_gpu_nbnxn_t * | timings |
Timing data. TODO: deprecate this and query timers for accumulated data instead. | |
GpuEventSynchronizer* gmx_nbnxn_cuda_t::localFReductionDone |
Pointer to event synchronizer triggered when the local GPU buffer ops / reduction is complete.
cudaEvent_t gmx_nbnxn_cuda_t::misc_ops_and_local_H2D_done |
event triggered when the tasks issued in the local stream that need to precede the non-local force or buffer operation calculations are done (e.g.
f buffer 0-ing, local x/q H2D, buffer op initialization in local stream that is required also by nonlocal stream )
cudaEvent_t gmx_nbnxn_cuda_t::nonlocal_done |
events used for synchronization
event triggered when the non-local non-bonded kernel is done (and the local transfer can proceed)