Gromacs
2023.2
|
#include "gmxpre.h"
#include "config.h"
#include "gromacs/gpu_utils/device_stream_manager.h"
#include "gromacs/gpu_utils/gputraits.h"
#include "gromacs/gpu_utils/pmalloc.h"
#include "gromacs/hardware/device_information.h"
#include "gromacs/mdtypes/interaction_const.h"
#include "gromacs/mdtypes/simulation_workload.h"
#include "gromacs/nbnxm/gpu_common_utils.h"
#include "gromacs/nbnxm/gpu_data_mgmt.h"
#include "gromacs/nbnxm/gridset.h"
#include "gromacs/pbcutil/ishift.h"
#include "gromacs/timing/gpu_timing.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/fatalerror.h"
#include "nbnxm_gpu.h"
#include "nbnxm_gpu_data_mgmt.h"
#include "pairlistsets.h"
Define common implementation of nbnxm_gpu_data_mgmt.h.
Functions | |
static void | Nbnxm::issueClFlushInStream (const DeviceStream &deviceStream) |
static void | Nbnxm::init_ewald_coulomb_force_table (const EwaldCorrectionTables &tables, NBParamGpu *nbp, const DeviceContext &deviceContext) |
static bool | Nbnxm::useTabulatedEwaldByDefault (const DeviceInformation &deviceInfo) |
static ElecType | Nbnxm::nbnxn_gpu_pick_ewald_kernel_type (const interaction_const_t &ic, const DeviceInformation &deviceInfo) |
static void | Nbnxm::set_cutoff_parameters (NBParamGpu *nbp, const interaction_const_t &ic, const PairlistParams &listParams) |
static void | Nbnxm::init_plist (gpu_plist *pl) |
static void | Nbnxm::init_timings (gmx_wallclock_gpu_nbnxn_t *t) |
static void | Nbnxm::initAtomdataFirst (NBAtomDataGpu *atomdata, int numTypes, const DeviceContext &deviceContext, const DeviceStream &localStream) |
Initialize atomdata first time; it only gets filled at pair-search. | |
static VdwType | Nbnxm::nbnxmGpuPickVdwKernelType (const interaction_const_t &ic, LJCombinationRule ljCombinationRule) |
static ElecType | Nbnxm::nbnxmGpuPickElectrostaticsKernelType (const interaction_const_t &ic, const DeviceInformation &deviceInfo) |
static void | Nbnxm::initNbparam (NBParamGpu *nbp, const interaction_const_t &ic, const PairlistParams &listParams, const nbnxn_atomdata_t::Params &nbatParams, const DeviceContext &deviceContext) |
Initialize the nonbonded parameter data structure. | |
NbnxmGpu * | Nbnxm::gpu_init (const gmx::DeviceStreamManager &deviceStreamManager, const interaction_const_t *ic, const PairlistParams &listParams, const nbnxn_atomdata_t *nbat, const bool bLocalAndNonlocal) |
void | Nbnxm::gpu_pme_loadbal_update_param (const nonbonded_verlet_t *nbv, const interaction_const_t &ic) |
void | Nbnxm::gpu_upload_shiftvec (NbnxmGpu *nb, const nbnxn_atomdata_t *nbatom) |
void | Nbnxm::gpu_init_pairlist (NbnxmGpu *nb, const NbnxnPairlistGpu *h_plist, const InteractionLocality iloc) |
This function is documented in the header file. | |
void | Nbnxm::gpu_init_atomdata (NbnxmGpu *nb, const nbnxn_atomdata_t *nbat) |
void | Nbnxm::gpu_clear_outputs (NbnxmGpu *nb, bool computeVirial) |
gmx_wallclock_gpu_nbnxn_t * | Nbnxm::gpu_get_timings (NbnxmGpu *nb) |
This function is documented in the header file. | |
void | Nbnxm::gpu_reset_timings (nonbonded_verlet_t *nbv) |
This function is documented in the header file. | |
bool | Nbnxm::gpu_is_kernel_ewald_analytical (const NbnxmGpu *nb) |
void | Nbnxm::setupGpuShortRangeWork (NbnxmGpu *nb, const gmx::ListedForcesGpu *listedForcesGpu, const gmx::InteractionLocality iLocality) |
bool | Nbnxm::haveGpuShortRangeWork (const NbnxmGpu *nb, const gmx::InteractionLocality interactionLocality) |
void | Nbnxm::gpu_launch_cpyback (NbnxmGpu *nb, struct nbnxn_atomdata_t *nbatom, const gmx::StepWorkload &stepWork, const AtomLocality atomLocality) |
Launch asynchronously the download of nonbonded forces from the GPU (and energies/shift forces if required). | |
void | Nbnxm::nbnxnInsertNonlocalGpuDependency (NbnxmGpu *nb, const InteractionLocality interactionLocality) |
void | Nbnxm::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 | Nbnxm::nbnxn_gpu_init_x_to_nbat_x (const Nbnxm::GridSet &gridSet, NbnxmGpu *gpu_nbv) |
void | Nbnxm::gpu_free (NbnxmGpu *nb) |
This function is documented in the header file. | |
NBAtomDataGpu * | Nbnxm::gpuGetNBAtomData (NbnxmGpu *nb) |
DeviceBuffer< gmx::RVec > | Nbnxm::gpu_get_f (NbnxmGpu *nb) |