Gromacs
2024.3
|
#include "gmxpre.h"
#include <memory>
#include "gromacs/domdec/domdec.h"
#include "gromacs/domdec/domdec_struct.h"
#include "gromacs/hardware/hw_info.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/nbnxm/atomdata.h"
#include "gromacs/nbnxm/gpu_data_mgmt.h"
#include "gromacs/nbnxm/nbnxm.h"
#include "gromacs/nbnxm/pairlist_tuning.h"
#include "gromacs/simd/simd.h"
#include "gromacs/topology/mtop_util.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/logger.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"
Common functions for the different NBNXN GPU implementations.
Enumerations | |
enum | Nbnxm::NonbondedResource : int { Cpu, Gpu, EmulateGpu } |
Resources that can be used to execute non-bonded kernels on. | |
Functions | |
static bool | Nbnxm::nbnxn_simd_supported (const gmx::MDLogger &mdlog, const t_inputrec &inputrec) |
Returns whether CPU SIMD support exists for the given inputrec. More... | |
static KernelSetup | Nbnxm::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 * | Nbnxm::lookup_kernel_name (Nbnxm::KernelType kernelType) |
Return a string identifying the kernel type. More... | |
static KernelSetup | Nbnxm::pick_nbnxn_kernel (const gmx::MDLogger &mdlog, gmx_bool use_simd_kernels, const gmx_hw_info_t &hardwareInfo, const NonbondedResource &nonbondedResource, const t_inputrec &inputrec) |
Returns the most suitable kernel type and Ewald handling. | |
static int | Nbnxm::getMinimumIlistCountForGpuBalancing (NbnxmGpu *nbnxmGpu) |
Gets and returns the minimum i-list count for balacing based on the GPU used or env.var. when set. | |
static int | Nbnxm::getENbnxnInitCombRule (const t_forcerec &forcerec) |
std::unique_ptr < nonbonded_verlet_t > | Nbnxm::init_nb_verlet (const gmx::MDLogger &mdlog, const t_inputrec &inputrec, const t_forcerec &forcerec, const t_commrec *commrec, const gmx_hw_info_t &hardwareInfo, bool useGpuForNonbonded, const gmx::DeviceStreamManager *deviceStreamManager, const gmx_mtop_t &mtop, gmx::ObservablesReducerBuilder *observablesReducerBuilder, gmx::ArrayRef< const gmx::RVec > coordinates, matrix box, gmx_wallcycle *wcycle) |
Creates an Nbnxm object. | |