From adc90d3a86161eedc23c1dc662ae71c71889f5dd Mon Sep 17 00:00:00 2001 From: Peter Boyle Date: Fri, 4 Apr 2025 16:43:36 -0400 Subject: [PATCH] NVLINK GET/PUT on cuda aware mpi --- Grid/communicator/Communicator_mpi3.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Grid/communicator/Communicator_mpi3.cc b/Grid/communicator/Communicator_mpi3.cc index 8de29669..de7d81f8 100644 --- a/Grid/communicator/Communicator_mpi3.cc +++ b/Grid/communicator/Communicator_mpi3.cc @@ -438,8 +438,15 @@ double CartesianCommunicator::StencilSendToRecvFromBegin(std::vectorShmBufferTranslate(from,xmit); + assert(shm!=NULL); + acceleratorCopyDeviceToDeviceAsynch(shm,recv,rbytes); + } +#endif } - + // This is a NVLINK PUT if (dox) { if ( (gdest == MPI_UNDEFINED) || Stencil_force_mpi ) { tag= dir+_processor*32; @@ -448,9 +455,11 @@ double CartesianCommunicator::StencilSendToRecvFromBegin(std::vectorShmBufferTranslate(dest,recv); assert(shm!=NULL); acceleratorCopyDeviceToDeviceAsynch(xmit,shm,xbytes); +#endif } } return off_node_bytes; @@ -459,7 +468,7 @@ double CartesianCommunicator::StencilSendToRecvFromBegin(std::vector &list,int dir) { int nreq=list.size(); - + /*finishes Get/Put*/ acceleratorCopySynchronise(); if (nreq==0) return;