Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Typedefs | Enumerations | Variables
nbnxm_cuda_types.h File Reference
#include "gromacs/gpu_utils/cuda_arch_utils.cuh"
#include "gromacs/gpu_utils/cudautils.cuh"
#include "gromacs/gpu_utils/devicebuffer.h"
#include "gromacs/gpu_utils/gputraits.cuh"
#include "gromacs/mdtypes/interaction_const.h"
#include "gromacs/nbnxm/gpu_types_common.h"
#include "gromacs/nbnxm/nbnxm.h"
#include "gromacs/nbnxm/pairlist.h"
#include "gromacs/timing/gpu_timing.h"
#include "gromacs/utility/enumerationhelpers.h"
+ Include dependency graph for nbnxm_cuda_types.h:
+ This graph shows which files directly or indirectly include this file:

Description

Data types used internally in the nbnxn_cuda module.

Author
Szilárd Páll pall..nosp@m.szil.nosp@m.ard@g.nosp@m.mail.nosp@m..com

Classes

struct  nb_staging
 Staging area for temporary data downloaded from the GPU. More...
 
struct  cu_atomdata
 Nonbonded atom data - both inputs and outputs. More...
 
struct  cu_nbparam
 Parameters required for the CUDA nonbonded calculations. More...
 
struct  gmx_nbnxn_cuda_t
 Main data structure for CUDA nonbonded force calculations. More...
 

Macros

#define GMX_NBNXN_PRUNE_KERNEL_J4_CONCURRENCY   4
 Macro definining default for the prune kernel's j4 processing concurrency. More...
 

Typedefs

using cu_plist_t = Nbnxm::gpu_plist
 Pair list data. More...
 
typedef struct Nbnxm::gpu_timers_t cu_timers_t
 Typedef of actual timer type. More...
 

Enumerations

enum  eelCu {
  eelCuCUT, eelCuRF, eelCuEWALD_TAB, eelCuEWALD_TAB_TWIN,
  eelCuEWALD_ANA, eelCuEWALD_ANA_TWIN, eelCuNR
}
 Electrostatic CUDA kernel flavors. More...
 
enum  evdwCu {
  evdwCuCUT, evdwCuCUTCOMBGEOM, evdwCuCUTCOMBLB, evdwCuFSWITCH,
  evdwCuPSWITCH, evdwCuEWALDGEOM, evdwCuEWALDLB, evdwCuNR
}
 VdW CUDA kernel flavors. More...
 

Variables

const int c_cudaPruneKernelJ4Concurrency = 4
 Default for the prune kernel's j4 processing concurrency. More...
 
static const int c_numClPerSupercl = 8
 number of clusters per supercluster.
 
static const int c_clSize = c_nbnxnGpuClusterSize
 cluster size = number of atoms per cluster.
 

Macro Definition Documentation

#define GMX_NBNXN_PRUNE_KERNEL_J4_CONCURRENCY   4

Macro definining default for the prune kernel's j4 processing concurrency.

The GMX_NBNXN_PRUNE_KERNEL_J4_CONCURRENCY macro allows compile-time override.

Typedef Documentation

using cu_plist_t = Nbnxm::gpu_plist

Pair list data.

Typedef of actual timer type.

Enumeration Type Documentation

enum eelCu

Electrostatic CUDA kernel flavors.

Types of electrostatics implementations available in the CUDA 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 evdwCu

VdW CUDA kernel flavors.

The enumerates values correspond to the LJ implementations in the CUDA 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.

Variable Documentation

const int c_cudaPruneKernelJ4Concurrency = 4

Default for the prune kernel's j4 processing concurrency.

Initialized using the GMX_NBNXN_PRUNE_KERNEL_J4_CONCURRENCY macro which allows compile-time override.