|
Gromacs
2025.3
|
#include "gmxpre.h"#include <cstdio>#include <cstdlib>#include <algorithm>#include <filesystem>#include <memory>#include <optional>#include <utility>#include "gromacs/domdec/domdec.h"#include "gromacs/domdec/domdec_struct.h"#include "gromacs/gpu_utils/hostallocator.h"#include "gromacs/hardware/architecture.h"#include "gromacs/hardware/hw_info.h"#include "gromacs/math/vectypes.h"#include "gromacs/mdlib/calc_verletbuf.h"#include "gromacs/mdlib/gmx_omp_nthreads.h"#include "gromacs/mdtypes/commrec.h"#include "gromacs/mdtypes/enerdata.h"#include "gromacs/mdtypes/forcerec.h"#include "gromacs/mdtypes/inputrec.h"#include "gromacs/mdtypes/interaction_const.h"#include "gromacs/mdtypes/md_enums.h"#include "gromacs/nbnxm/atomdata.h"#include "gromacs/nbnxm/gpu_data_mgmt.h"#include "gromacs/nbnxm/nbnxm.h"#include "gromacs/nbnxm/nbnxm_enums.h"#include "gromacs/nbnxm/pairlist_tuning.h"#include "gromacs/nbnxm/pairlistparams.h"#include "gromacs/simd/simd.h"#include "gromacs/topology/mtop_util.h"#include "gromacs/utility/arrayref.h"#include "gromacs/utility/basedefinitions.h"#include "gromacs/utility/fatalerror.h"#include "gromacs/utility/gmxassert.h"#include "gromacs/utility/logger.h"#include "gromacs/utility/real.h"#include "exclusionchecker.h"#include "freeenergydispatch.h"#include "grid.h"#include "nbnxm_geometry.h"#include "nbnxm_simd.h"#include "pairlist.h"#include "pairlistset.h"#include "pairlistsets.h"#include "pairsearch.h"
Include dependency graph for nbnxm_setup.cpp:Common functions for the different NBNXN GPU implementations.
Enumerations | |
| enum | gmx::NonbondedResource : int { Cpu, Gpu, EmulateGpu } |
| Resources that can be used to execute non-bonded kernels on. | |
Functions | |
| static bool | gmx::nbnxn_simd_supported (const MDLogger &mdlog, const t_inputrec &inputrec) |
| Returns whether CPU SIMD support exists for the given inputrec. More... | |
| static NbnxmKernelSetup | gmx::pick_nbnxn_kernel_cpu (const t_inputrec gmx_unused &inputrec, const gmx_hw_info_t gmx_unused &hardwareInfo) |
| Returns the most suitable CPU kernel type and Ewald handling. | |
| const char * | gmx::nbnxmKernelTypeToName (NbnxmKernelType kernelType) |
| static NbnxmKernelSetup | gmx::pick_nbnxn_kernel (const gmx::MDLogger &mdlog, gmx_bool use_simd_kernels, const gmx_hw_info_t &hardwareInfo, const PairlistType gpuPairlistType, const NonbondedResource &nonbondedResource, const t_inputrec &inputrec) |
| Returns the most suitable kernel type and Ewald handling. | |
| static int | gmx::getMinimumIlistCountForGpuBalancing (NbnxmGpu *nbnxmGpu) |
| Gets and returns the minimum i-list count for balancing based on the GPU used or env.var. when set. | |
|
static std::optional < LJCombinationRule > | gmx::chooseLJCombinationRule (const t_forcerec &forcerec) |
| Returns the LJ combination rule choices for the LJ pair parameters. | |
| static LJCombinationRule | gmx::chooseLJPmeCombinationRule (const t_forcerec &forcerec) |
| Returns the LJ combination rule choices for the LJ PME-grid parameters. | |
|
std::unique_ptr < nonbonded_verlet_t > | gmx::init_nb_verlet (const MDLogger &mdlog, const t_inputrec &inputrec, const t_forcerec &forcerec, const t_commrec *commrec, const gmx_hw_info_t &hardwareInfo, bool useGpuForNonbonded, const DeviceStreamManager *deviceStreamManager, const gmx_mtop_t &mtop, bool localAtomOrderMatchesNbnxmOrder, ObservablesReducerBuilder *observablesReducerBuilder, ArrayRef< const RVec > coordinates, matrix box, gmx_wallcycle *wcycle) |
| Creates an Nbnxm object. | |
1.8.5