Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Enumerations | Variables
pairlistparams.h File Reference
#include "config.h"
#include "gromacs/mdtypes/locality.h"
#include "gromacs/utility/enumerationhelpers.h"
#include "gromacs/utility/real.h"
+ Include dependency graph for pairlistparams.h:
+ This graph shows which files directly or indirectly include this file:

Description

Declares the PairlistType enum and PairlistParams class.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se

Classes

struct  PairlistParams
 The setup for generating and pruning the nbnxn pair list. More...
 

Enumerations

enum  PairlistType : int {
  Simple4x2, Simple4x4, Simple4x8, HierarchicalNxN,
  Count
}
 The available pair list types.
 

Variables

static constexpr int c_nbnxnCpuIClusterSize = 4
 The i-cluster size for CPU kernels, always 4 atoms.
 
static constexpr int c_nbnxnGpuClusterSize = GMX_OPENCL_NB_CLUSTER_SIZE
 The i- and j-cluster size for GPU lists, 8 atoms for CUDA, set at compile time for OpenCL.
 
static constexpr int c_gpuNumClusterPerCellZ = 2
 The number of clusters along Z in a pair-search grid cell for GPU lists.
 
static constexpr int c_gpuNumClusterPerCellY = 2
 The number of clusters along Y in a pair-search grid cell for GPU lists.
 
static constexpr int c_gpuNumClusterPerCellX = 2
 The number of clusters along X in a pair-search grid cell for GPU lists.
 
static constexpr int c_gpuNumClusterPerCell
 The number of clusters in a pair-search grid cell for GPU lists. More...
 
static constexpr int c_nbnxnGpuClusterpairSplit = 2
 The number of sub-parts used for data storage for a GPU cluster pair. More...
 
static constexpr int c_nbnxnGpuExclSize
 The fixed size of the exclusion mask array for a half GPU cluster pair. More...
 
static constexpr
gmx::EnumerationArray
< PairlistType, int > 
IClusterSizePerListType
 Gives the i-cluster size for each pairlist type. More...
 
static constexpr
gmx::EnumerationArray
< PairlistType, int > 
JClusterSizePerListType
 Gives the j-cluster size for each pairlist type. More...
 

Variable Documentation

constexpr int c_gpuNumClusterPerCell
static
Initial value:
=
static constexpr int c_gpuNumClusterPerCellY
The number of clusters along Y in a pair-search grid cell for GPU lists.
Definition: pairlistparams.h:72
static constexpr int c_gpuNumClusterPerCellX
The number of clusters along X in a pair-search grid cell for GPU lists.
Definition: pairlistparams.h:74
static constexpr int c_gpuNumClusterPerCellZ
The number of clusters along Z in a pair-search grid cell for GPU lists.
Definition: pairlistparams.h:70

The number of clusters in a pair-search grid cell for GPU lists.

constexpr int c_nbnxnGpuClusterpairSplit = 2
static

The number of sub-parts used for data storage for a GPU cluster pair.

In CUDA the number of threads in a warp is 32 and we have cluster pairs of 8*8=64 atoms, so it's convenient to store data for cluster pair halves.

constexpr int c_nbnxnGpuExclSize
static
Initial value:
=
static constexpr int c_nbnxnGpuClusterSize
The i- and j-cluster size for GPU lists, 8 atoms for CUDA, set at compile time for OpenCL...
Definition: pairlistparams.h:64
static constexpr int c_nbnxnGpuClusterpairSplit
The number of sub-parts used for data storage for a GPU cluster pair.
Definition: pairlistparams.h:85

The fixed size of the exclusion mask array for a half GPU cluster pair.

constexpr gmx::EnumerationArray<PairlistType, int> IClusterSizePerListType
static
Initial value:
= {
}
static constexpr int c_nbnxnGpuClusterSize
The i- and j-cluster size for GPU lists, 8 atoms for CUDA, set at compile time for OpenCL...
Definition: pairlistparams.h:64
static constexpr int c_nbnxnCpuIClusterSize
The i-cluster size for CPU kernels, always 4 atoms.
Definition: pairlistparams.h:60

Gives the i-cluster size for each pairlist type.

constexpr gmx::EnumerationArray<PairlistType, int> JClusterSizePerListType
static
Initial value:
= {
{ 2, 4, 8, c_nbnxnGpuClusterSize }
}
static constexpr int c_nbnxnGpuClusterSize
The i- and j-cluster size for GPU lists, 8 atoms for CUDA, set at compile time for OpenCL...
Definition: pairlistparams.h:64

Gives the j-cluster size for each pairlist type.