Gromacs
2018.8
|
#include "gromacs/gpu_utils/cuda_arch_utils.cuh"
#include "gromacs/gpu_utils/cudautils.cuh"
#include "gromacs/mdlib/nbnxn_consts.h"
#include "gromacs/mdlib/nbnxn_gpu_types_common.h"
#include "gromacs/mdlib/nbnxn_pairlist.h"
#include "gromacs/mdtypes/interaction_const.h"
#include "gromacs/timing/gpu_timing.h"
Data types used internally in the nbnxn_cuda module.
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 | cu_plist |
Pair list data. 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 | |
typedef struct nbnxn_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 = c_nbnxnGpuNumClusterPerSupercluster |
number of clusters per supercluster. | |
static const int | c_clSize = c_nbnxnGpuClusterSize |
cluster size = number of atoms per cluster. | |
#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 struct nbnxn_gpu_timers_t cu_timers_t |
Typedef of actual timer type.
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.
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.