Neko 1.99.1
A portable framework for high-order spectral element flow simulations
|
Gather-scatter backend for offloading devices. More...
Public Member Functions | |
procedure, pass(this) | init (this, nlocal, nshared, nlcl_blks, nshrd_blks) |
Accelerator backend initialisation. | |
procedure, pass(this) | free (this) |
Dummy backend deallocation. | |
procedure, pass(this) | gather (this, v, m, o, dg, u, n, gd, nb, b, op, shrd) |
Gather kernel. | |
procedure, pass(this) | scatter (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 |
Definition at line 48 of file gs_device.F90.
Definition at line 66 of file gs_device.F90.
|
pure virtualinherited |
Definition at line 50 of file gs_bcknd.f90.
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 67 of file gs_device.F90.
|
pure virtualinherited |
Definition at line 51 of file gs_bcknd.f90.
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 65 of file gs_device.F90.
|
pure virtualinherited |
Definition at line 49 of file gs_bcknd.f90.
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 68 of file gs_device.F90.
|
pure virtualinherited |
Definition at line 52 of file gs_bcknd.f90.
|
inherited |
Definition at line 45 of file gs_bcknd.f90.
|
inherited |
Definition at line 47 of file gs_bcknd.f90.
type(c_ptr) gs_device::gs_device_t::local_blk_len_d = C_NULL_PTR |
Definition at line 57 of file gs_device.F90.
integer, dimension(:), allocatable gs_device::gs_device_t::local_blk_off |
Definition at line 49 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::local_blk_off_d = C_NULL_PTR |
Definition at line 59 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::local_dof_gs_d = C_NULL_PTR |
Definition at line 52 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::local_gs_d = C_NULL_PTR |
Definition at line 51 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::local_gs_dof_d = C_NULL_PTR |
Definition at line 53 of file gs_device.F90.
integer gs_device::gs_device_t::nlocal |
Definition at line 61 of file gs_device.F90.
integer gs_device::gs_device_t::nshared |
Definition at line 62 of file gs_device.F90.
|
inherited |
Definition at line 46 of file gs_bcknd.f90.
type(c_ptr) gs_device::gs_device_t::shared_blk_len_d = C_NULL_PTR |
Definition at line 58 of file gs_device.F90.
integer, dimension(:), allocatable gs_device::gs_device_t::shared_blk_off |
Definition at line 50 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::shared_blk_off_d = C_NULL_PTR |
Definition at line 60 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::shared_dof_gs_d = C_NULL_PTR |
Definition at line 55 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::shared_gs_d = C_NULL_PTR |
Definition at line 54 of file gs_device.F90.
type(c_ptr) gs_device::gs_device_t::shared_gs_dof_d = C_NULL_PTR |
Definition at line 56 of file gs_device.F90.
logical gs_device::gs_device_t::shared_on_host |
Definition at line 63 of file gs_device.F90.