Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Attributes
gmx_nbnxn_cuda_t Struct Reference

#include <gromacs/nbnxm/cuda/nbnxm_cuda_types.h>

+ Collaboration diagram for gmx_nbnxn_cuda_t:

Description

Main data structure for CUDA nonbonded force calculations.

Public Attributes

const gmx_device_info_tdev_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.
 
GpuEventSynchronizerlocalFReductionDone
 Pointer to event synchronizer triggered when the local GPU buffer ops / reduction is complete. More...
 
GpuEventSynchronizerxNonLocalCopyD2HDone
 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_ttimers
 CUDA event-based timers.
 
gmx_wallclock_gpu_nbnxn_ttimings
 Timing data. TODO: deprecate this and query timers for accumulated data instead.
 

Member Data Documentation

GpuEventSynchronizer* gmx_nbnxn_cuda_t::localFReductionDone

Pointer to event synchronizer triggered when the local GPU buffer ops / reduction is complete.

Note
That the synchronizer is managed outside of this module in StatePropagatorDataGpu.
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)


The documentation for this struct was generated from the following file: