Gromacs  2025.0-dev-20241009-5c23d5f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Attributes
gmx::NbnxmKernelBenchOptions Struct Reference

#include <gromacs/nbnxm/benchmark/bench_setup.h>

Description

The options for the kernel benchmarks.

Public Attributes

bool useGpu = false
 Whether to use a GPU, currently GPUs are not supported.
 
int numThreads = 1
 The number of OpenMP threads to use.
 
NbnxmBenchMarkKernels nbnxmSimd = NbnxmBenchMarkKernels::SimdAuto
 The SIMD type for the kernel.
 
NbnxmBenchMarkCombRule ljCombinationRule = NbnxmBenchMarkCombRule::RuleGeom
 The LJ combination rule.
 
bool useHalfLJOptimization = false
 Use i-cluster half-LJ optimization for clusters with <= half LJ.
 
real pairlistCutoff = 1.0
 The pairlist and interaction cut-off.
 
real ewaldcoeff_q = 0
 The Coulomb Ewald coefficient.
 
bool computeVirialAndEnergy = false
 Whether to compute energies (shift forces for virial are always computed on CPU)
 
NbnxmBenchMarkCoulomb coulombType = NbnxmBenchMarkCoulomb::Pme
 The Coulomb interaction function.
 
bool useTabulatedEwaldCorr = false
 Whether to use tabulated PME grid correction instead of analytical, not applicable with simd=no.
 
bool doAll = false
 Whether to run all combinations of Coulomb type, combination rule and SIMD.
 
int numPreIterations = 1
 Number of iterations to run before running each kernel benchmark, currently always 1.
 
int numIterations = 100
 The number of iterations for each kernel.
 
int numWarmupIterations = 0
 The number of (untimed) iterations to run at startup to warm up the CPU.
 
bool cyclesPerPair = false
 Print cycles/pair instead of pairs/cycle.
 
bool reportTime = false
 Report in micro seconds instead of cycles.
 
std::string outputFile
 Also report into a csv file.
 

The documentation for this struct was generated from the following file: