Gromacs
2025-dev-20240913-b871546
|
#include <gromacs/ewald/pme_force_sender_gpu.h>
Manages sending forces from PME-only ranks to their PP ranks.
Classes | |
class | Impl |
Impl class stub. More... | |
Public Member Functions | |
PmeForceSenderGpu (GpuEventSynchronizer *pmeForcesReady, MPI_Comm comm, const DeviceContext &deviceContext, gmx::ArrayRef< PpRanks > ppRanks) | |
Creates PME GPU Force sender object. More... | |
void | setForceSendBuffer (DeviceBuffer< RVec > d_f) |
Sets location of force to be sent to each PP rank. More... | |
void | sendFToPpPeerToPeer (int ppRank, int numAtoms, bool sendForcesDirectToPpGpu) |
Send force to PP rank (used with Thread-MPI) More... | |
void | sendFToPpGpuAwareMpi (DeviceBuffer< RVec > sendbuf, int offset, int numBytes, int ppRank, MPI_Request *request) |
Send force to PP rank (used with Lib-MPI) More... | |
void | waitForEvents () |
gmx::PmeForceSenderGpu::PmeForceSenderGpu | ( | GpuEventSynchronizer * | pmeForcesReady, |
MPI_Comm | comm, | ||
const DeviceContext & | deviceContext, | ||
gmx::ArrayRef< PpRanks > | ppRanks | ||
) |
Creates PME GPU Force sender object.
Constructor stub.
[in] | pmeForcesReady | Event synchronizer marked when PME forces are ready on the GPU |
[in] | comm | Communicator used for simulation |
[in] | deviceContext | GPU context |
[in] | ppRanks | List of PP ranks |
void gmx::PmeForceSenderGpu::sendFToPpGpuAwareMpi | ( | DeviceBuffer< RVec > | sendbuf, |
int | offset, | ||
int | numBytes, | ||
int | ppRank, | ||
MPI_Request * | request | ||
) |
Send force to PP rank (used with Lib-MPI)
[in] | sendbuf | force buffer in GPU memory |
[in] | offset | starting element in buffer |
[in] | numBytes | number of bytes to transfer |
[in] | ppRank | PP rank to receive data |
[in] | request | MPI request to track asynchronous MPI call status |
void gmx::PmeForceSenderGpu::sendFToPpPeerToPeer | ( | int | ppRank, |
int | numAtoms, | ||
bool | sendForcesDirectToPpGpu | ||
) |
Send force to PP rank (used with Thread-MPI)
[in] | ppRank | PP rank to receive data |
[in] | numAtoms | number of atoms to send |
[in] | sendForcesDirectToPpGpu | whether forces are transferred direct to remote GPU memory |
void gmx::PmeForceSenderGpu::setForceSendBuffer | ( | DeviceBuffer< RVec > | d_f | ) |
Sets location of force to be sent to each PP rank.
init PME-PP GPU communication stub
[in] | d_f | force buffer in GPU memory |