Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
Device abstraction, common interface for various accelerators.
Data Types | |
interface | device_associate |
Associate a Fortran array to a (allocated) device pointer. More... | |
interface | device_associated |
Check if a Fortran array is assoicated with a device pointer. More... | |
interface | device_deassociate |
Deassociate a Fortran array from a device pointer. More... | |
interface | device_get_ptr |
Return the device pointer for an associated Fortran array. More... | |
interface | device_map |
Map a Fortran array to a device (allocate and associate) More... | |
interface | device_memcpy |
Copy data between host and device (or device and device) More... | |
interface | device_sync |
Synchronize a device or stream. More... | |
Functions/Subroutines | |
subroutine, public | device_init |
subroutine, public | device_finalize |
subroutine, public | device_name (name) |
integer function | device_count () |
Return the number of available devices. | |
subroutine, public | device_alloc (x_d, s) |
Allocate memory on the device. | |
subroutine, public | device_free (x_d) |
Deallocate memory on the device. | |
subroutine | device_memcpy_r1 (x, x_d, n, dir, sync, strm) |
Copy data between host and device (rank 1 arrays) | |
subroutine | device_memcpy_r2 (x, x_d, n, dir, sync, strm) |
Copy data between host and device (rank 2 arrays) | |
subroutine | device_memcpy_r3 (x, x_d, n, dir, sync, strm) |
Copy data between host and device (rank 3 arrays) | |
subroutine | device_memcpy_r4 (x, x_d, n, dir, sync, strm) |
Copy data between host and device (rank 4 arrays) | |
subroutine | device_memcpy_cptr (dst, src, s, dir, sync, strm) |
Copy data between host and device (or device and device) (c-pointers) | |
subroutine, private | device_memcpy_common (ptr_h, x_d, s, dir, sync_device, stream) |
Copy data between host and device. | |
subroutine | device_associate_r1 (x, x_d) |
Associate a Fortran rank 1 array to a (allocated) device pointer. | |
subroutine | device_associate_r2 (x, x_d) |
Associate a Fortran rank 2 array to a (allocated) device pointer. | |
subroutine | device_associate_r3 (x, x_d) |
Associate a Fortran rank 3 array to a (allocated) device pointer. | |
subroutine | device_associate_r4 (x, x_d) |
Associate a Fortran rank 4 array to a (allocated) device pointer. | |
subroutine | device_deassociate_r1 (x) |
Deassociate a Fortran rank 1 array from a device pointer. | |
subroutine | device_deassociate_r2 (x) |
Deassociate a Fortran rank 2 array from a device pointer. | |
subroutine | device_deassociate_r3 (x) |
Deassociate a Fortran rank 3 array from a device pointer. | |
subroutine | device_deassociate_r4 (x) |
Deassociate a Fortran rank 4 array from a device pointer. | |
subroutine | device_map_r1 (x, x_d, n) |
Map a Fortran rank 1 array to a device (allocate and associate) | |
subroutine | device_map_r2 (x, x_d, n) |
Map a Fortran rank 2 array to a device (allocate and associate) | |
subroutine | device_map_r3 (x, x_d, n) |
Map a Fortran rank 3 array to a device (allocate and associate) | |
subroutine | device_map_r4 (x, x_d, n) |
Map a Fortran rank 4 array to a device (allocate and associate) | |
logical function | device_associated_r1 (x) |
Check if a Fortran rank 1 array is assoicated with a device pointer. | |
logical function | device_associated_r2 (x) |
Check if a Fortran rank 2 array is assoicated with a device pointer. | |
logical function | device_associated_r3 (x) |
Check if a Fortran rank 3 array is assoicated with a device pointer. | |
logical function | device_associated_r4 (x) |
Check if a Fortran rank 4 array is assoicated with a device pointer. | |
type(c_ptr) function | device_get_ptr_r1 (x) |
Return the device pointer for an associated Fortran rank 1 array. | |
type(c_ptr) function | device_get_ptr_r2 (x) |
Return the device pointer for an associated Fortran rank 2 array. | |
type(c_ptr) function | device_get_ptr_r3 (x) |
Return the device pointer for an associated Fortran rank 3 array. | |
type(c_ptr) function | device_get_ptr_r4 (x) |
Return the device pointer for an associated Fortran rank 4 array. | |
subroutine | device_sync_device () |
Synchronize the device. | |
subroutine, public | device_sync_stream (stream) |
Synchronize a device stream. | |
subroutine, public | device_stream_create (stream, flags) |
Create a device stream/command queue. | |
subroutine | device_stream_create_with_priority (stream, flags, prio) |
Create a device stream/command queue with priority. | |
subroutine, public | device_stream_destroy (stream) |
Destroy a device stream/command queue. | |
subroutine, public | device_stream_wait_event (stream, event, flags) |
Synchronize a device stream with an event. | |
subroutine, public | device_profiler_start () |
Start device profiling. | |
subroutine, public | device_profiler_stop () |
Stop device profiling. | |
subroutine, public | device_event_create (event, flags) |
Create a device event queue. | |
subroutine, public | device_event_destroy (event) |
Destroy a device event. | |
subroutine, public | device_event_record (event, stream) |
Record a device event. | |
subroutine, public | device_event_sync (event) |
Synchronize an event. | |
Variables | |
integer, parameter, public | host_to_device = 1 |
integer, parameter, public | device_to_host = 2 |
integer, parameter, public | device_to_device = 3 |
type(htable_cptr_t), private | device_addrtbl |
Table of host to device address mappings. | |
subroutine, public device::device_alloc | ( | type(c_ptr), intent(inout) | x_d, |
integer(c_size_t) | s | ||
) |
subroutine device::device_associate_r1 | ( | class(*), dimension(:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d | ||
) |
Definition at line 487 of file device.F90.
subroutine device::device_associate_r2 | ( | class(*), dimension(:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d | ||
) |
Definition at line 512 of file device.F90.
subroutine device::device_associate_r3 | ( | class(*), dimension(:,:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d | ||
) |
Definition at line 537 of file device.F90.
subroutine device::device_associate_r4 | ( | class(*), dimension(:,:,:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d | ||
) |
Definition at line 562 of file device.F90.
Definition at line 799 of file device.F90.
Definition at line 826 of file device.F90.
logical function device::device_associated_r3 | ( | class(*), dimension(:,:,:), intent(inout), target | x | ) |
Definition at line 853 of file device.F90.
logical function device::device_associated_r4 | ( | class(*), dimension(:,:,:,:), intent(inout), target | x | ) |
Definition at line 880 of file device.F90.
Definition at line 150 of file device.F90.
Definition at line 587 of file device.F90.
Definition at line 611 of file device.F90.
Definition at line 635 of file device.F90.
Definition at line 659 of file device.F90.
subroutine, public device::device_event_destroy | ( | type(c_ptr), intent(inout) | event | ) |
subroutine, public device::device_event_sync | ( | type(c_ptr), intent(in), target | event | ) |
subroutine, public device::device_finalize |
Definition at line 121 of file device.F90.
subroutine, public device::device_free | ( | type(c_ptr), intent(inout) | x_d | ) |
subroutine, public device::device_init |
Definition at line 106 of file device.F90.
subroutine device::device_map_r1 | ( | class(*), dimension(:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n | ||
) |
Definition at line 683 of file device.F90.
subroutine device::device_map_r2 | ( | class(*), dimension(:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n | ||
) |
Definition at line 712 of file device.F90.
subroutine device::device_map_r3 | ( | class(*), dimension(:,:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n | ||
) |
Definition at line 741 of file device.F90.
subroutine device::device_map_r4 | ( | class(*), dimension(:,:,:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n | ||
) |
Definition at line 770 of file device.F90.
|
private |
Definition at line 386 of file device.F90.
subroutine device::device_memcpy_cptr | ( | type(c_ptr), intent(inout) | dst, |
type(c_ptr), intent(inout) | src, | ||
integer(c_size_t), intent(in) | s, | ||
integer, intent(in), value | dir, | ||
logical, optional | sync, | ||
type(c_ptr), optional | strm | ||
) |
Definition at line 357 of file device.F90.
subroutine device::device_memcpy_r1 | ( | class(*), dimension(:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n, | ||
integer, intent(in), value | dir, | ||
logical | sync, | ||
type(c_ptr), optional | strm | ||
) |
Definition at line 203 of file device.F90.
subroutine device::device_memcpy_r2 | ( | class(*), dimension(:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n, | ||
integer, intent(in), value | dir, | ||
logical | sync, | ||
type(c_ptr), optional | strm | ||
) |
Definition at line 241 of file device.F90.
subroutine device::device_memcpy_r3 | ( | class(*), dimension(:,:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n, | ||
integer, intent(in), value | dir, | ||
logical | sync, | ||
type(c_ptr), optional | strm | ||
) |
Definition at line 279 of file device.F90.
subroutine device::device_memcpy_r4 | ( | class(*), dimension(:,:,:,:), intent(inout), target | x, |
type(c_ptr), intent(inout) | x_d, | ||
integer, intent(in) | n, | ||
integer, intent(in), value | dir, | ||
logical | sync, | ||
type(c_ptr), optional | strm | ||
) |
Definition at line 317 of file device.F90.
subroutine, public device::device_name | ( | character(len=*), intent(inout) | name | ) |
Definition at line 137 of file device.F90.
subroutine, public device::device_profiler_start |
subroutine, public device::device_profiler_stop |
subroutine, public device::device_stream_create | ( | type(c_ptr), intent(inout) | stream, |
integer, optional | flags | ||
) |
Definition at line 1054 of file device.F90.
subroutine, public device::device_stream_destroy | ( | type(c_ptr), intent(inout) | stream | ) |
subroutine device::device_sync_device |
Definition at line 1019 of file device.F90.
subroutine, public device::device_sync_stream | ( | type(c_ptr), intent(in) | stream | ) |
|
private |
Definition at line 92 of file device.F90.
Definition at line 47 of file device.F90.
Definition at line 47 of file device.F90.
Definition at line 47 of file device.F90.