|
Gromacs
2026.0-dev-20251119-5f0a571d
|
#include <gromacs/domdec/gpuhaloexchange.h>
Handles NVSHMEM aspects of GPU Halo exchange.
GPU halo exchange requires extra signal buffers with NVSHMEM, as well as the ability to coordinate with a possible PME-only rank to arrange for global communication and symmetric allocations.
Public Member Functions | |
| GpuHaloExchangeNvshmemHelper (const gmx_domdec_t &dd, const DeviceContext &context, const DeviceStream &stream, const std::optional< int > &peerRank, gmx_wallcycle *wcycle, MPI_Comm mpi_comm_mygroup, MPI_Comm mpi_comm_mysim_world) | |
| void | reinit () |
| Re-initialize after domain repartitioning. | |
| DeviceBuffer< uint64_t > | getSyncBuffer () const |
| Return the sync buffer. | |
| int | totalPulsesAndDims () const |
| Return the total number of DD pulses and dimensions. | |
| void | freeHaloExchangeBuffers () |
| Permit symmetric deallocation. | |
| void | reinitAllHaloExchanges (const t_commrec &cr, DeviceBuffer< RVec > d_coordinatesBuffer, DeviceBuffer< RVec > d_forcesBuffer) |
| GpuEventSynchronizer * | launchAllCoordinateExchanges (const matrix box, GpuEventSynchronizer *dependencyEvent) |
| GpuEventSynchronizer * | launchAllForceExchanges (bool accumulateForces, FixedCapacityVector< GpuEventSynchronizer *, 2 > *dependencyEvents) |
| void | destroyAllHaloExchangeBuffers () |
| GpuEventSynchronizer * | getForcesReadyOnDeviceEvent () |
Public Attributes | |
| std::unique_ptr< int > | fusedPpHaloExchange_ |
| Placeholder when NVSHMEM is disabled. | |
1.8.5