Loading [MathJax]/extensions/tex2jax.js
Neko 0.9.99
A portable framework for high-order spectral element flow simulations
All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros Pages
gs_device_nccl Module Reference

Defines NCCL based gather-scatter communication.

Data Types

interface  device_nccl_sendrecv
 
type  gs_device_nccl_buf_t
 Buffers for non-blocking communication and packing/unpacking. More...
 
type  gs_device_nccl_t
 Gather-scatter communication using NCCL The arrays are indexed per PE like send_pe and @ recv_pe. More...
 
interface  hip_gs_pack
 
interface  hip_gs_unpack
 

Functions/Subroutines

subroutine gs_device_nccl_buf_init (this, pe_order, dof_stack, mark_dupes)
 
subroutine gs_device_nccl_buf_free (this)
 
subroutine gs_device_nccl_init (this, send_pe, recv_pe)
 Initialise NCCL based communication method.
 
subroutine gs_device_nccl_free (this)
 Deallocate MPI based communication method.
 
subroutine gs_device_nccl_nbsend (this, u, n, deps, strm)
 Post non-blocking send operations.
 
subroutine gs_device_nccl_nbrecv (this)
 Post non-blocking receive operations.
 
subroutine gs_device_nccl_nbwait (this, u, n, op, strm)
 Wait for non-blocking operations.
 

Function/Subroutine Documentation

◆ gs_device_nccl_buf_free()

subroutine gs_device_nccl::gs_device_nccl_buf_free ( class(gs_device_nccl_buf_t), intent(inout this)
private

Definition at line 202 of file gs_device_nccl.F90.

Here is the call graph for this function:

◆ gs_device_nccl_buf_init()

subroutine gs_device_nccl::gs_device_nccl_buf_init ( class(gs_device_nccl_buf_t), intent(inout this,
integer, dimension(:), intent(inout), allocatable  pe_order,
type(stack_i4_t), dimension(:), intent(inout), allocatable  dof_stack,
logical, intent(in mark_dupes 
)
private

Definition at line 133 of file gs_device_nccl.F90.

Here is the call graph for this function:

◆ gs_device_nccl_free()

subroutine gs_device_nccl::gs_device_nccl_free ( class(gs_device_nccl_t), intent(inout this)
private

Definition at line 240 of file gs_device_nccl.F90.

Here is the call graph for this function:

◆ gs_device_nccl_init()

subroutine gs_device_nccl::gs_device_nccl_init ( class(gs_device_nccl_t), intent(inout this,
type(stack_i4_t), intent(inout send_pe,
type(stack_i4_t), intent(inout recv_pe 
)
private

Definition at line 213 of file gs_device_nccl.F90.

Here is the call graph for this function:

◆ gs_device_nccl_nbrecv()

subroutine gs_device_nccl::gs_device_nccl_nbrecv ( class(gs_device_nccl_t), intent(inout this)
private

Definition at line 300 of file gs_device_nccl.F90.

◆ gs_device_nccl_nbsend()

subroutine gs_device_nccl::gs_device_nccl_nbsend ( class(gs_device_nccl_t), intent(inout this,
real(kind=rp), dimension(n), intent(inout u,
integer, intent(in n,
type(c_ptr), intent(inout deps,
type(c_ptr), intent(inout strm 
)
private

Definition at line 262 of file gs_device_nccl.F90.

Here is the call graph for this function:

◆ gs_device_nccl_nbwait()

subroutine gs_device_nccl::gs_device_nccl_nbwait ( class(gs_device_nccl_t), intent(inout this,
real(kind=rp), dimension(n), intent(inout u,
integer, intent(in n,
integer  op,
type(c_ptr), intent(inout strm 
)
private

Definition at line 309 of file gs_device_nccl.F90.

Here is the call graph for this function: