diff --git a/Src/Particle/AMReX_NeighborParticles.H b/Src/Particle/AMReX_NeighborParticles.H index 5f814805a21..1b7d01d7a95 100644 --- a/Src/Particle/AMReX_NeighborParticles.H +++ b/Src/Particle/AMReX_NeighborParticles.H @@ -467,7 +467,7 @@ protected: ParticleCopyPlan neighbor_copy_plan; amrex::PODVector > snd_buffer; - amrex::Gpu::DeviceVector rcv_buffer; + amrex::PODVector > rcv_buffer; Gpu::PinnedVector pinned_snd_buffer; Gpu::PinnedVector pinned_rcv_buffer; diff --git a/Src/Particle/AMReX_NeighborParticlesGPUImpl.H b/Src/Particle/AMReX_NeighborParticlesGPUImpl.H index 4cc533d901e..b4e50bef7b8 100644 --- a/Src/Particle/AMReX_NeighborParticlesGPUImpl.H +++ b/Src/Particle/AMReX_NeighborParticlesGPUImpl.H @@ -255,6 +255,12 @@ updateNeighborsGPU (bool boundary_neighbors_only) } clearNeighbors(); + + if (ParallelDescriptor::UseGpuAwareMpi()) { + snd_buffer.setArena(The_Comms_Arena()); + rcv_buffer.setArena(The_Comms_Arena()); + } + packBuffer(*this, neighbor_copy_op, neighbor_copy_plan, snd_buffer); if (ParallelDescriptor::UseGpuAwareMpi()) { diff --git a/Src/Particle/AMReX_ParticleContainerI.H b/Src/Particle/AMReX_ParticleContainerI.H index 718405f1e66..d42d2d5b4b2 100644 --- a/Src/Particle/AMReX_ParticleContainerI.H +++ b/Src/Particle/AMReX_ParticleContainerI.H @@ -1388,8 +1388,14 @@ ParticleContainer_impl > snd_buffer; - Gpu::DeviceVector rcv_buffer; + amrex::PODVector > rcv_buffer; + + if (ParallelDescriptor::UseGpuAwareMpi()) { + snd_buffer.setArena(The_Comms_Arena()); + rcv_buffer.setArena(The_Comms_Arena()); + } packBuffer(*this, op, plan, snd_buffer);