Neko 1.99.5
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
gs_device_shmem.F90 File Reference

Go to the source code of this file.

Data Types

type  gs_device_shmem::gs_device_shmem_buf_t
 Buffers for non-blocking communication and packing/unpacking. More...
 
type  gs_device_shmem::gs_device_shmem_t
 Gather-scatter communication using device SHMEM. The arrays are indexed per PE like send_pe and @ recv_pe. More...
 
interface  gs_device_shmem::cudamalloc_nvshmem
 
interface  gs_device_shmem::cudafree_nvshmem
 
interface  gs_device_shmem::cuda_gs_pack_and_push
 
interface  gs_device_shmem::cuda_gs_pack_and_push_wait
 
interface  gs_device_shmem::cuda_gs_post_ready
 
interface  gs_device_shmem::cuda_gs_unpack
 
interface  gs_device_shmem::cuda_gs_pack_and_push_vec
 
interface  gs_device_shmem::cuda_gs_unpack_vec
 

Modules

module  gs_device_shmem
 Defines GPU aware MPI gather-scatter communication.
 

Functions/Subroutines

subroutine gs_device_shmem::gs_device_shmem_buf_init (this, pe_order, dof_stack, mark_dupes)
 
subroutine gs_device_shmem::gs_device_shmem_buf_free (this)
 
subroutine gs_device_shmem::gs_device_shmem_init (this, send_pe, recv_pe)
 Initialise MPI based communication method.
 
subroutine gs_device_shmem::gs_device_shmem_free (this)
 Deallocate MPI based communication method.
 
subroutine gs_device_shmem::gs_device_shmem_nbsend (this, u, n, tag, deps, strm)
 Post non-blocking send operations.
 
subroutine gs_device_shmem::gs_device_shmem_nbrecv (this, tag)
 Post non-blocking receive operations.
 
subroutine gs_device_shmem::gs_device_shmem_nbwait (this, u, n, op, strm)
 Wait for non-blocking operations.
 
subroutine gs_device_shmem::gs_device_shmem_nbsend_vec (this, u, n, nc, tag, deps, strm)
 Fused nc-component send. u is the compact shared device buffer (component-outer, per-component stride n = nshared). All the work is done in nbwait_vec; this only orders against the packing dependencies.
 
subroutine gs_device_shmem::gs_device_shmem_nbrecv_vec (this, tag, nc)
 No-op: everything happens in nbwait_vec.
 
subroutine gs_device_shmem::gs_device_shmem_nbwait_vec (this, u, n, nc, op, strm)
 Fused nc-component pack-and-push + unpack.