#include <gromacs/domdec/gpuhaloexchange_impl_gpu.h>
Impl class stub.
Class with interfaces and data for GPU Halo Exchange.
|
| Impl (gmx_domdec_t *dd, int dimIndex, MPI_Comm mpi_comm_mysim, MPI_Comm mpi_comm_mysim_world, const DeviceContext &deviceContext, int pulse, bool useNvshmem, gmx_wallcycle *wcycle) |
| Creates GPU Halo Exchange object. More...
|
|
void | reinitHalo (DeviceBuffer< Float3 > d_coordinatesBuffer, DeviceBuffer< Float3 > d_forcesBuffer) |
| (Re-) Initialization for GPU halo exchange More...
|
|
void | reinitNvshmemSignal (const t_commrec &cr, int signalObjOffset) |
| (Re-) Initialization for NVSHMEM Signal objects More...
|
|
GpuEventSynchronizer * | communicateHaloCoordinates (const matrix box, GpuEventSynchronizer *dependencyEvent) |
| GPU halo exchange of coordinates buffer. More...
|
|
void | communicateHaloForces (bool accumulateForces, FixedCapacityVector< GpuEventSynchronizer *, 2 > *dependencyEvents) |
| GPU halo exchange of force buffer. More...
|
|
GpuEventSynchronizer * | getForcesReadyOnDeviceEvent () |
| Get the event synchronizer for the forces ready on device. More...
|
|
void | destroyGpuHaloExchangeNvshmemBuf () |
| Destructor for symmetric d_recvBuf used by NVSHMEM.
|
|
gmx::GpuHaloExchange::Impl::Impl |
( |
gmx_domdec_t * |
dd, |
|
|
int |
dimIndex, |
|
|
MPI_Comm |
mpi_comm_mysim, |
|
|
MPI_Comm |
mpi_comm_mysim_world, |
|
|
const DeviceContext & |
deviceContext, |
|
|
int |
pulse, |
|
|
bool |
useNvshmem, |
|
|
gmx_wallcycle * |
wcycle |
|
) |
| |
Creates GPU Halo Exchange object.
Create GpuHaloExchange object.
- Parameters
-
[in,out] | dd | domdec structure |
[in] | dimIndex | the dimension index for this instance |
[in] | mpi_comm_mysim | communicator used for simulation |
[in] | mpi_comm_mysim_world | communicator used for simulation with PP + PME. |
[in] | deviceContext | GPU device context |
[in] | pulse | the communication pulse for this instance |
[in] | useNvshmem | use NVSHMEM for communication |
[in] | wcycle | The wallclock counter |
GpuEventSynchronizer * gmx::GpuHaloExchange::Impl::communicateHaloCoordinates |
( |
const matrix |
box, |
|
|
GpuEventSynchronizer * |
dependencyEvent |
|
) |
| |
GPU halo exchange of coordinates buffer.
- Parameters
-
[in] | box | Coordinate box (from which shifts will be constructed) |
[in] | dependencyEvent | Dependency event for this operation |
- Returns
- Event recorded when this operation has been launched
void gmx::GpuHaloExchange::Impl::communicateHaloForces |
( |
bool |
accumulateForces, |
|
|
FixedCapacityVector< GpuEventSynchronizer *, 2 > * |
dependencyEvents |
|
) |
| |
GPU halo exchange of force buffer.
- Parameters
-
[in] | accumulateForces | True if forces should accumulate, otherwise they are set |
[in] | dependencyEvents | Dependency events for this operation |
GpuEventSynchronizer * gmx::GpuHaloExchange::Impl::getForcesReadyOnDeviceEvent |
( |
| ) |
|
Get the event synchronizer for the forces ready on device.
- Returns
- The event to synchronize the stream that consumes forces on device.
(Re-) Initialization for GPU halo exchange
- Parameters
-
[in] | d_coordinatesBuffer | pointer to coordinates buffer in GPU memory |
[in] | d_forcesBuffer | pointer to forces buffer in GPU memory |
void gmx::GpuHaloExchange::Impl::reinitNvshmemSignal |
( |
const t_commrec & |
cr, |
|
|
int |
signalObjOffset |
|
) |
| |
(Re-) Initialization for NVSHMEM Signal objects
- Parameters
-
[in] | cr | Communication structure ref. |
[in] | signalObjOffset | offset of the signal object corresponding to given pulse/dim. |
The documentation for this class was generated from the following files: