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

#include <gromacs/nbnxm/opencl/nbnxm_ocl_types.h>

+ Collaboration diagram for gmx_nbnxn_ocl_t:

Description

Main data structure for OpenCL nonbonded force calculations.

Public Attributes

const gmx_device_info_tdev_info
 OpenCL device information.
 
struct gmx_device_runtime_data_tdev_rundata
 OpenCL runtime data (context, kernels) More...
 
cl_kernel kernel_pruneonly [ePruneNR]
 prune kernels, ePruneKind defined the kernel kinds
 
bool bPrefetchLjParam
 true if prefetching fg i-atom LJ parameters should be used in the kernels More...
 
cl_bool bUseTwoStreams
 true if doing both local/non-local NB work on GPU
 
cl_bool bNonLocalStreamActive
 true indicates that the nonlocal_done event was enqueued
 
cl_atomdata_tatdat
 atom data
 
cl_nbparam_tnbparam
 parameters required for the non-bonded calc. More...
 
gmx::EnumerationArray
< Nbnxm::InteractionLocality,
cl_plist_t * > 
plist
 pair-list data structures (local and non-local)
 
cl_nb_staging_t nbst
 staging area where fshift/energies get downloaded
 
gmx::EnumerationArray
< Nbnxm::InteractionLocality,
cl_command_queue > 
stream
 local and non-local GPU queues
 
cl_event nonlocal_done
 events used for synchronization More...
 
cl_event misc_ops_and_local_H2D_done
 event triggered when the tasks issued in the local stream that need to precede the non-local force 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.
 
cl_bool bDoTime
 True if event-based timing is enabled. More...
 
cl_timers_ttimers
 OpenCL event-based timers. More...
 
struct gmx_wallclock_gpu_nbnxn_ttimings
 Timing data. More...
 
cl_kernel kernel_noener_noprune_ptr [eelOclNR][evdwOclNR]
 
cl_kernel kernel_ener_noprune_ptr [eelOclNR][evdwOclNR]
 
cl_kernel kernel_noener_prune_ptr [eelOclNR][evdwOclNR]
 
cl_kernel kernel_ener_prune_ptr [eelOclNR][evdwOclNR]
 
cl_kernel kernel_memset_f
 
cl_kernel kernel_memset_f2
 
cl_kernel kernel_memset_f3
 
cl_kernel kernel_zero_e_fshift
 

Member Data Documentation

cl_bool gmx_nbnxn_ocl_t::bDoTime

True if event-based timing is enabled.

bool gmx_nbnxn_ocl_t::bPrefetchLjParam

true if prefetching fg i-atom LJ parameters should be used in the kernels

auxiliary kernels implementing memset-like functions

struct gmx_device_runtime_data_t* gmx_nbnxn_ocl_t::dev_rundata

OpenCL runtime data (context, kernels)

Pointers to non-bonded kernel functions organized similar with nb_kfunc_xxx arrays in nbnxn_ocl.cpp

cl_event gmx_nbnxn_ocl_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 calculations are done (e.g.

f buffer 0-ing, local x/q H2D)

cl_nbparam_t* gmx_nbnxn_ocl_t::nbparam

parameters required for the non-bonded calc.

cl_event gmx_nbnxn_ocl_t::nonlocal_done

events used for synchronization

event triggered when the non-local non-bonded kernel is done (and the local transfer can proceed)

cl_timers_t* gmx_nbnxn_ocl_t::timers

OpenCL event-based timers.

struct gmx_wallclock_gpu_nbnxn_t* gmx_nbnxn_ocl_t::timings

Timing data.

TODO: deprecate this and query timers for accumulated data instead


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