|
Gromacs
2026.0-dev-20251119-5f0a571d
|
#include "gmxpre.h"#include "config.h"#include <memory>#include <type_traits>#include "gromacs/gpu_utils/device_stream_manager.h"#include "gromacs/gpu_utils/devicebuffer.h"#include "gromacs/gpu_utils/gputraits.h"#include "gromacs/gpu_utils/hostallocator.h"#include "gromacs/hardware/device_information.h"#include "gromacs/mdtypes/interaction_const.h"#include "gromacs/mdtypes/simulation_workload.h"#include "gromacs/nbnxm/atompairlist.h"#include "gromacs/nbnxm/gpu_common_utils.h"#include "gromacs/nbnxm/gpu_data_mgmt.h"#include "gromacs/nbnxm/gpu_types_common.h"#include "gromacs/nbnxm/gridset.h"#include "gromacs/nbnxm/nbnxm_enums.h"#include "gromacs/pbcutil/ishift.h"#include "gromacs/timing/gpu_timing.h"#include "gromacs/utility/cstringutil.h"#include "gromacs/utility/enumerationhelpers.h"#include "gromacs/utility/exceptions.h"#include "gromacs/utility/fatalerror.h"#include "nbnxm_gpu.h"#include "nbnxm_gpu_data_mgmt.h"#include "pairlistsets.h"
Include dependency graph for nbnxm_gpu_data_mgmt.cpp:Define common implementation of nbnxm_gpu_data_mgmt.h.
Functions | |
| static void | gmx::init_ewald_coulomb_force_table (const EwaldCorrectionTables &tables, NBParamGpu *nbp, const DeviceContext &deviceContext, const DeviceStream &deviceStream) |
| static bool | gmx::useTabulatedEwaldByDefault (InteractionModifiers vdwModifier, const DeviceInformation &deviceInfo) |
| static ElecType | gmx::nbnxn_gpu_pick_ewald_kernel_type (const interaction_const_t &ic, const DeviceInformation &deviceInfo) |
| static void | gmx::set_cutoff_parameters (NBParamGpu *nbp, const interaction_const_t &ic, const PairlistParams &listParams) |
| static void | gmx::init_timings (gmx_wallclock_gpu_nbnxn_t *t) |
| static void | gmx::initAtomdataFirst (NBAtomDataGpu *atomdata, int numTypes, const DeviceContext &deviceContext, const DeviceStream &localStream, const std::optional< int > nLambda) |
Initialize atomdata first time; it only gets filled at pair-search. | |
| static VdwType | gmx::nbnxmGpuPickVdwKernelType (const interaction_const_t &ic, LJCombinationRule ljCombinationRule) |
| static ElecType | gmx::nbnxmGpuPickElectrostaticsKernelType (const interaction_const_t &ic, const DeviceInformation &deviceInfo) |
| static void | gmx::initNbparam (NBParamGpu *nbp, const interaction_const_t &ic, const PairlistParams &listParams, const nbnxn_atomdata_t::Params &nbatParams, const DeviceContext &deviceContext, const DeviceStream &localStream, const std::optional< int > nLambda) |
| Initialize the nonbonded parameter data structure. | |
| static GpuPairlistByLocality | gmx::initializeGpuLists (bool localAndNonLocal) |
|
static gmx_unused GpuFeplistByLocality | gmx::initializeGpuFepLists (bool localAndNonLocal) |
| void | gmx::copy_gpu_fepparams (NbnxmGpu *nb, const bool bFepGpuNonBonded, const float alphaCoul, const float alphaVdw, const int lambdaPower, const float sigma6WithInvalidSigma, const float sigma6Minimum, const float lambdaCoul, const float lambdaVdw, const int nLambda, const EnumerationArray< FreeEnergyPerturbationCouplingType, std::vector< double >> &all_lambda) |
| NbnxmGpu * | gmx::gpu_init (const DeviceStreamManager &deviceStreamManager, const interaction_const_t *ic, const PairlistParams &listParams, const nbnxn_atomdata_t *nbat, const bool bLocalAndNonlocal, const gmx_unused std::optional< int > nLambda) |
| void | gmx::gpu_pme_loadbal_update_param (nonbonded_verlet_t *nbv, const interaction_const_t &ic) |
| void | gmx::gpu_upload_shiftvec (NbnxmGpu *nb, const nbnxn_atomdata_t *nbatom) |
| void | gmx::gpu_init_pairlist (NbnxmGpu *nb, const NbnxnPairlistGpu *h_plist, const InteractionLocality iloc) |
| This function is documented in the header file. | |
| void | gmx::gpu_init_feppairlist (NbnxmGpu *nb, const AtomPairlist &h_feplist, const InteractionLocality iloc, const GridSet &gridSet) |
| void | gmx::gpu_init_atomdata (NbnxmGpu *nb, const nbnxn_atomdata_t *nbat) |
| void | gmx::gpu_clear_outputs (NbnxmGpu *nb, bool computeVirial) |
| gmx_wallclock_gpu_nbnxn_t * | gmx::gpu_get_timings (NbnxmGpu *nb) |
| This function is documented in the header file. | |
| void | gmx::gpu_reset_timings (nonbonded_verlet_t *nbv) |
| This function is documented in the header file. | |
| bool | gmx::gpu_is_kernel_ewald_analytical (const NbnxmGpu *nb) |
| void | gmx::setupGpuShortRangeWorkLow (NbnxmGpu *nb, const ListedForcesGpu *listedForcesGpu, const InteractionLocality iLocality) |
| bool | gmx::haveGpuShortRangeWork (const NbnxmGpu *nb, const InteractionLocality interactionLocality) |
| void | gmx::gpu_launch_cpyback (NbnxmGpu *nb, struct nbnxn_atomdata_t *nbatom, const StepWorkload &stepWork, const AtomLocality atomLocality) |
| Launch asynchronously the download of nonbonded forces from the GPU (and energies/shift forces if required). | |
| void | gmx::nbnxnInsertNonlocalGpuDependency (NbnxmGpu *nb, const InteractionLocality interactionLocality) |
| void | gmx::gpu_copy_xq_to_gpu (NbnxmGpu *nb, const nbnxn_atomdata_t *nbatom, const AtomLocality atomLocality) |
| Launch asynchronously the xq buffer host to device copy. | |
| void | gmx::nbnxn_gpu_init_x_to_nbat_x (const GridSet &gridSet, NbnxmGpu *gpu_nbv) |
| void | gmx::gpu_free (NbnxmGpu *nb) |
| This function is documented in the header file. | |
| NBAtomDataGpu * | gmx::gpuGetNBAtomData (NbnxmGpu *nb) |
| DeviceBuffer< RVec > | gmx::gpu_get_f (NbnxmGpu *nb) |
1.8.5