Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
gs_device::gs_device_t Type Referenceabstract

Gather-scatter backend for offloading devices. More...

Inheritance diagram for gs_device::gs_device_t:
Collaboration diagram for gs_device::gs_device_t:

Public Member Functions

procedure, pass(thisinit (this, nlocal, nshared, nlcl_blks, nshrd_blks)
 Accelerator backend initialisation.
 
procedure, pass(thisfree (this)
 Dummy backend deallocation.
 
procedure, pass(thisgather (this, v, m, o, dg, u, n, gd, nb, b, op, shrd)
 Gather kernel.
 
procedure, pass(thisscatter (this, v, m, dg, u, n, gd, nb, b, shrd, event)
 Scatter kernel.
 
procedure(gs_backend_init), deferred, pass init (this, nlocal, nshared, nlcl_blks, nshrd_blks)
 
procedure(gs_backend_free), deferred, pass free (this)
 
procedure(gs_gather), deferred, pass gather (this, v, m, o, dg, u, n, gd, nb, b, op, shrd)
 
procedure(gs_scatter), deferred, pass scatter (this, v, m, dg, u, n, gd, nb, b, shrd, event)
 

Public Attributes

integer, dimension(:), allocatable local_blk_off
 Local block offset.
 
integer, dimension(:), allocatable shared_blk_off
 Shared block offset.
 
type(c_ptr) local_gs_d = C_NULL_PTR
 Dev. ptr local gs-ops.
 
type(c_ptr) local_dof_gs_d = C_NULL_PTR
 Dev. ptr local dof to gs map.
 
type(c_ptr) local_gs_dof_d = C_NULL_PTR
 Dev. ptr local gs to dof map.
 
type(c_ptr) shared_gs_d = C_NULL_PTR
 Dev. ptr shared gs-ops.
 
type(c_ptr) shared_dof_gs_d = C_NULL_PTR
 Dev. ptr shrd dof to gs map.
 
type(c_ptr) shared_gs_dof_d = C_NULL_PTR
 Dev. ptr shrd gs to dof map.
 
type(c_ptr) local_blk_len_d = C_NULL_PTR
 Dev. ptr local n-f blocks.
 
type(c_ptr) shared_blk_len_d = C_NULL_PTR
 Dev. ptr shared n-f blocks.
 
type(c_ptr) local_blk_off_d = C_NULL_PTR
 Dev. ptr local blk offset.
 
type(c_ptr) shared_blk_off_d = C_NULL_PTR
 Dev. ptr shared blk offset.
 
integer nlocal
 
integer nshared
 
logical shared_on_host
 Shared points are handled on host.
 
type(c_ptr) gather_event = C_NULL_PTR
 
type(c_ptr) scatter_event = C_NULL_PTR
 
type(c_ptr) gs_stream = C_NULL_PTR
 

Detailed Description

Definition at line 47 of file gs_device.F90.

Member Function/Subroutine Documentation

◆ free() [1/2]

procedure, pass(this) gs_device::gs_device_t::free ( class(gs_device_t), intent(inout this)

Definition at line 65 of file gs_device.F90.

◆ free() [2/2]

procedure(gs_backend_free), deferred, pass gs_bcknd::gs_bcknd_t::free ( class(gs_bcknd_t), intent(inout this)
pure virtualinherited

Definition at line 50 of file gs_bcknd.f90.

◆ gather() [1/2]

procedure, pass(this) gs_device::gs_device_t::gather ( class(gs_device_t), intent(inout this,
real(kind=rp), dimension(m), intent(inout v,
integer, intent(in m,
integer, intent(in o,
integer, dimension(m), intent(inout dg,
real(kind=rp), dimension(n), intent(inout u,
integer, intent(in n,
integer, dimension(m), intent(inout gd,
integer, intent(in nb,
integer, dimension(nb), intent(inout b,
integer, intent(in op,
logical, intent(in shrd 
)

Definition at line 66 of file gs_device.F90.

◆ gather() [2/2]

procedure(gs_gather), deferred, pass gs_bcknd::gs_bcknd_t::gather ( class(gs_bcknd_t), intent(inout this,
real(kind=rp), dimension(m), intent(inout v,
integer, intent(in m,
integer, intent(in o,
integer, dimension(m), intent(inout dg,
real(kind=rp), dimension(n), intent(inout u,
integer, intent(in n,
integer, dimension(m), intent(inout gd,
integer, intent(in nb,
integer, dimension(nb), intent(inout b,
integer, intent(in op,
logical, intent(in shrd 
)
pure virtualinherited

Definition at line 51 of file gs_bcknd.f90.

◆ init() [1/2]

procedure, pass(this) gs_device::gs_device_t::init ( class(gs_device_t), intent(inout this,
integer, intent(in nlocal,
integer, intent(in nshared,
integer, intent(in nlcl_blks,
integer, intent(in nshrd_blks 
)

Definition at line 64 of file gs_device.F90.

◆ init() [2/2]

procedure(gs_backend_init), deferred, pass gs_bcknd::gs_bcknd_t::init ( class(gs_bcknd_t), intent(inout this,
integer, intent(in nlocal,
integer, intent(in nshared,
integer, intent(in nlcl_blks,
integer, intent(in nshrd_blks 
)
pure virtualinherited

Definition at line 49 of file gs_bcknd.f90.

◆ scatter() [1/2]

procedure, pass(this) gs_device::gs_device_t::scatter ( class(gs_device_t), intent(inout this,
real(kind=rp), dimension(m), intent(inout v,
integer, intent(in m,
integer, dimension(m), intent(inout dg,
real(kind=rp), dimension(n), intent(inout u,
integer, intent(in n,
integer, dimension(m), intent(inout gd,
integer, intent(in nb,
integer, dimension(nb), intent(inout b,
logical, intent(in shrd,
type(c_ptr)  event 
)

Definition at line 67 of file gs_device.F90.

◆ scatter() [2/2]

procedure(gs_scatter), deferred, pass gs_bcknd::gs_bcknd_t::scatter ( class(gs_bcknd_t), intent(inout this,
real(kind=rp), dimension(m), intent(inout v,
integer, intent(in m,
integer, dimension(m), intent(inout dg,
real(kind=rp), dimension(n), intent(inout u,
integer, intent(in n,
integer, dimension(m), intent(inout gd,
integer, intent(in nb,
integer, dimension(nb), intent(inout b,
logical, intent(in shrd,
type(c_ptr)  event 
)
pure virtualinherited

Definition at line 52 of file gs_bcknd.f90.

Member Data Documentation

◆ gather_event

type(c_ptr) gs_bcknd::gs_bcknd_t::gather_event = C_NULL_PTR
inherited

Definition at line 45 of file gs_bcknd.f90.

◆ gs_stream

type(c_ptr) gs_bcknd::gs_bcknd_t::gs_stream = C_NULL_PTR
inherited

Definition at line 47 of file gs_bcknd.f90.

◆ local_blk_len_d

type(c_ptr) gs_device::gs_device_t::local_blk_len_d = C_NULL_PTR

Definition at line 56 of file gs_device.F90.

◆ local_blk_off

integer, dimension(:), allocatable gs_device::gs_device_t::local_blk_off

Definition at line 48 of file gs_device.F90.

◆ local_blk_off_d

type(c_ptr) gs_device::gs_device_t::local_blk_off_d = C_NULL_PTR

Definition at line 58 of file gs_device.F90.

◆ local_dof_gs_d

type(c_ptr) gs_device::gs_device_t::local_dof_gs_d = C_NULL_PTR

Definition at line 51 of file gs_device.F90.

◆ local_gs_d

type(c_ptr) gs_device::gs_device_t::local_gs_d = C_NULL_PTR

Definition at line 50 of file gs_device.F90.

◆ local_gs_dof_d

type(c_ptr) gs_device::gs_device_t::local_gs_dof_d = C_NULL_PTR

Definition at line 52 of file gs_device.F90.

◆ nlocal

integer gs_device::gs_device_t::nlocal

Definition at line 60 of file gs_device.F90.

◆ nshared

integer gs_device::gs_device_t::nshared

Definition at line 61 of file gs_device.F90.

◆ scatter_event

type(c_ptr) gs_bcknd::gs_bcknd_t::scatter_event = C_NULL_PTR
inherited

Definition at line 46 of file gs_bcknd.f90.

◆ shared_blk_len_d

type(c_ptr) gs_device::gs_device_t::shared_blk_len_d = C_NULL_PTR

Definition at line 57 of file gs_device.F90.

◆ shared_blk_off

integer, dimension(:), allocatable gs_device::gs_device_t::shared_blk_off

Definition at line 49 of file gs_device.F90.

◆ shared_blk_off_d

type(c_ptr) gs_device::gs_device_t::shared_blk_off_d = C_NULL_PTR

Definition at line 59 of file gs_device.F90.

◆ shared_dof_gs_d

type(c_ptr) gs_device::gs_device_t::shared_dof_gs_d = C_NULL_PTR

Definition at line 54 of file gs_device.F90.

◆ shared_gs_d

type(c_ptr) gs_device::gs_device_t::shared_gs_d = C_NULL_PTR

Definition at line 53 of file gs_device.F90.

◆ shared_gs_dof_d

type(c_ptr) gs_device::gs_device_t::shared_gs_dof_d = C_NULL_PTR

Definition at line 55 of file gs_device.F90.

◆ shared_on_host

logical gs_device::gs_device_t::shared_on_host

Definition at line 62 of file gs_device.F90.


The documentation for this type was generated from the following file: