Gromacs
5.1
|
#include <CL/opencl.h>
#include "gromacs/legacyheaders/types/interaction_const.h"
#include "gromacs/mdlib/nbnxn_pairlist.h"
#include "gromacs/utility/real.h"
Data types used internally in the nbnxn_ocl module.
Classes | |
struct | cl_nb_staging |
Staging area for temporary data downloaded from the GPU. More... | |
struct | cl_atomdata |
Nonbonded atom data - both inputs and outputs. More... | |
struct | cl_nbparam |
Parameters required for the OpenCL nonbonded calculations. More... | |
struct | cl_nbparam_params |
Data structure shared between the OpenCL device code and OpenCL host code. More... | |
struct | cl_plist |
Pair list data. More... | |
struct | cl_timers |
OpenCL events used for timing GPU kernels and H2D/D2H transfers. More... | |
struct | gmx_nbnxn_ocl_t |
Main data structure for OpenCL nonbonded force calculations. More... | |
Macros | |
#define | M_FLOAT_1_SQRTPI 0.564189583547756f |
Define 1/sqrt(pi) | |
Typedefs | |
typedef struct cl_nb_staging | cl_nb_staging_t |
Staging area for temporary data downloaded from the GPU. More... | |
typedef struct cl_atomdata | cl_atomdata_t |
Nonbonded atom data - both inputs and outputs. More... | |
typedef struct cl_nbparam | cl_nbparam_t |
Parameters required for the OpenCL nonbonded calculations. More... | |
typedef struct cl_nbparam_params | cl_nbparam_params_t |
Data structure shared between the OpenCL device code and OpenCL host code. More... | |
typedef struct cl_plist | cl_plist_t |
Pair list data. More... | |
typedef struct cl_timers | cl_timers_t |
OpenCL events used for timing GPU kernels and H2D/D2H transfers. More... | |
Enumerations | |
enum | eelOcl { eelOclCUT, eelOclRF, eelOclEWALD_TAB, eelOclEWALD_TAB_TWIN, eelOclEWALD_ANA, eelOclEWALD_ANA_TWIN, eelOclNR } |
Electrostatic OpenCL kernel flavors. More... | |
enum | evdwOcl { evdwOclCUT, evdwOclFSWITCH, evdwOclPSWITCH, evdwOclEWALDGEOM, evdwOclEWALDLB, evdwOclNR } |
VdW OpenCL kernel flavors. More... | |
typedef struct cl_atomdata cl_atomdata_t |
Nonbonded atom data - both inputs and outputs.
typedef struct cl_nb_staging cl_nb_staging_t |
Staging area for temporary data downloaded from the GPU.
The energies/shift forces get downloaded here first, before getting added to the CPU-side aggregate values.
typedef struct cl_nbparam_params cl_nbparam_params_t |
Data structure shared between the OpenCL device code and OpenCL host code.
Must not contain OpenCL objects (buffers) TODO: review, improve
typedef struct cl_nbparam cl_nbparam_t |
Parameters required for the OpenCL nonbonded calculations.
typedef struct cl_plist cl_plist_t |
Pair list data.
typedef struct cl_timers cl_timers_t |
OpenCL events used for timing GPU kernels and H2D/D2H transfers.
The two-sized arrays hold the local and non-local values and should always be indexed with eintLocal/eintNonlocal.
enum eelOcl |
Electrostatic OpenCL kernel flavors.
Types of electrostatics implementations available in the OpenCL non-bonded force kernels. These represent both the electrostatics types implemented by the kernels (cut-off, RF, and Ewald - a subset of what's defined in enums.h) as well as encode implementation details analytical/tabulated and single or twin cut-off (for Ewald kernels). Note that the cut-off and RF kernels have only analytical flavor and unlike in the CPU kernels, the tabulated kernels are ATM Ewald-only.
The row-order of pointers to different electrostatic kernels defined in nbnxn_cuda.cu by the nb_*_kfunc_ptr function pointer table should match the order of enumerated types below.
enum evdwOcl |
VdW OpenCL kernel flavors.
The enumerates values correspond to the LJ implementations in the OpenCL non-bonded kernels.
The column-order of pointers to different electrostatic kernels defined in nbnxn_cuda.cu by the nb_*_kfunc_ptr function pointer table should match the order of enumerated types below.