Gromacs
2024.5
|
#include "config.h"
#include "gromacs/mdtypes/locality.h"
#include "gromacs/utility/enumerationhelpers.h"
#include "gromacs/utility/real.h"
Declares the PairlistType enum and PairlistParams class.
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 = 8 |
The i- and j-cluster size for GPU lists, 8 atoms for CUDA, set at configure time for OpenCL and SYCL. | |
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... | |
static constexpr gmx::EnumerationArray < PairlistType, bool > | sc_isGpuPairListType |
True if given pairlist type is used on GPU, false if on CPU. More... | |
static constexpr int | c_gpuNumClusterPerCellZ = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_Z |
The number of clusters along a direction in a pair-search grid cell for GPU lists. More... | |
static constexpr int | c_gpuNumClusterPerCellY = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_Y |
static constexpr int | c_gpuNumClusterPerCellX = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_X |
|
static |
The number of clusters in a pair-search grid cell for GPU lists.
|
static |
The number of clusters along a direction in a pair-search grid cell for GPU lists.
Typically all 2, but X can be 1 when targeting Intel Ponte Vecchio
|
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, i.e. split in 2.
On architectures with 64-wide execution however it is better to avoid splitting (e.g. AMD GCN, CDNA and later).
|
static |
The fixed size of the exclusion mask array for a half GPU cluster pair.
|
static |
Gives the i-cluster size for each pairlist type.
|
static |
Gives the j-cluster size for each pairlist type.
|
static |
True if given pairlist type is used on GPU, false if on CPU.