Gromacs
2026.0-dev-20241212-74b8831
|
#include "config.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/simd/simd.h"
#include "gromacs/utility/real.h"
#include "pairlist.h"
#include "pairlistparams.h"
Defines constants used to know which nbNxM kernel flavours (4xM or 2xMM) can be supported by the SIMD layer in use.
Macros | |
#define | GMX_HAVE_NBNXM_SIMD_2XMM 0 |
The nbnxn SIMD 4xN and 2x(N+N) kernels can be added independently. Currently the 2xNN SIMD kernels only make sense with: 8-way SIMD: 4x4 setup, performance wise only useful on CPUs without FMA or on AMD Zen1 16-way SIMD: 4x8 setup, used in single precision with 512 bit wide SIMD. | |
#define | GMX_HAVE_NBNXM_SIMD_4XM 0 |
Enumerations | |
enum | KernelLayout { KernelLayout::r4xM, KernelLayout::r2xMM } |
The types of nbNxM SIMD kernel layout. More... | |
enum | KernelLayoutClusterRatio { KernelLayoutClusterRatio::JSizeEqualsISize, KernelLayoutClusterRatio::JSizeIsDoubleISize, KernelLayoutClusterRatio::JSizeIsHalfISize } |
List of supported ratios for j-cluster size versus i-cluster sizes. More... | |
Functions | |
static constexpr int | sc_iClusterSize (const KernelLayout kernelLayout) |
The NBNxM i-cluster size in atoms for the given NBNxM kernel layout. | |
Variables | |
static constexpr bool | sc_haveNbnxmSimd2xmmKernels = 0 |
Whether we have support for NBNxM 2xM kernels. | |
static constexpr bool | sc_haveNbnxmSimd4xmKernels = 0 |
Whether we have support for NBNxM 4xM kernels. | |
|
strong |
|
strong |