Neko  0.9.0
A portable framework for high-order spectral element flow simulations
device.F90 File Reference

Go to the source code of this file.

Data Types

interface  device::device_memcpy
 Copy data between host and device (or device and device) More...
 
interface  device::device_map
 Map a Fortran array to a device (allocate and associate) More...
 
interface  device::device_associate
 Associate a Fortran array to a (allocated) device pointer. More...
 
interface  device::device_associated
 Check if a Fortran array is assoicated with a device pointer. More...
 
interface  device::device_deassociate
 Deassociate a Fortran array from a device pointer. More...
 
interface  device::device_get_ptr
 Return the device pointer for an associated Fortran array. More...
 
interface  device::device_sync
 Synchronize a device or stream. More...
 

Modules

module  device
 Device abstraction, common interface for various accelerators.
 

Functions/Subroutines

subroutine, public device::device_init
 
subroutine, public device::device_finalize
 
subroutine, public device::device_name (name)
 
integer function device::device_count ()
 Return the number of available devices. More...
 
subroutine, public device::device_alloc (x_d, s)
 Allocate memory on the device. More...
 
subroutine, public device::device_free (x_d)
 Deallocate memory on the device. More...
 
subroutine device::device_memcpy_r1 (x, x_d, n, dir, sync, strm)
 Copy data between host and device (rank 1 arrays) More...
 
subroutine device::device_memcpy_r2 (x, x_d, n, dir, sync, strm)
 Copy data between host and device (rank 2 arrays) More...
 
subroutine device::device_memcpy_r3 (x, x_d, n, dir, sync, strm)
 Copy data between host and device (rank 3 arrays) More...
 
subroutine device::device_memcpy_r4 (x, x_d, n, dir, sync, strm)
 Copy data between host and device (rank 4 arrays) More...
 
subroutine device::device_memcpy_cptr (dst, src, s, dir, sync, strm)
 Copy data between host and device (or device and device) (c-pointers) More...
 
subroutine, private device::device_memcpy_common (ptr_h, x_d, s, dir, sync_device, stream)
 Copy data between host and device. More...
 
subroutine device::device_associate_r1 (x, x_d)
 Associate a Fortran rank 1 array to a (allocated) device pointer. More...
 
subroutine device::device_associate_r2 (x, x_d)
 Associate a Fortran rank 2 array to a (allocated) device pointer. More...
 
subroutine device::device_associate_r3 (x, x_d)
 Associate a Fortran rank 3 array to a (allocated) device pointer. More...
 
subroutine device::device_associate_r4 (x, x_d)
 Associate a Fortran rank 4 array to a (allocated) device pointer. More...
 
subroutine device::device_deassociate_r1 (x)
 Deassociate a Fortran rank 1 array from a device pointer. More...
 
subroutine device::device_deassociate_r2 (x)
 Deassociate a Fortran rank 2 array from a device pointer. More...
 
subroutine device::device_deassociate_r3 (x)
 Deassociate a Fortran rank 3 array from a device pointer. More...
 
subroutine device::device_deassociate_r4 (x)
 Deassociate a Fortran rank 4 array from a device pointer. More...
 
subroutine device::device_map_r1 (x, x_d, n)
 Map a Fortran rank 1 array to a device (allocate and associate) More...
 
subroutine device::device_map_r2 (x, x_d, n)
 Map a Fortran rank 2 array to a device (allocate and associate) More...
 
subroutine device::device_map_r3 (x, x_d, n)
 Map a Fortran rank 3 array to a device (allocate and associate) More...
 
subroutine device::device_map_r4 (x, x_d, n)
 Map a Fortran rank 4 array to a device (allocate and associate) More...
 
logical function device::device_associated_r1 (x)
 Check if a Fortran rank 1 array is assoicated with a device pointer. More...
 
logical function device::device_associated_r2 (x)
 Check if a Fortran rank 2 array is assoicated with a device pointer. More...
 
logical function device::device_associated_r3 (x)
 Check if a Fortran rank 3 array is assoicated with a device pointer. More...
 
logical function device::device_associated_r4 (x)
 Check if a Fortran rank 4 array is assoicated with a device pointer. More...
 
type(c_ptr) function device::device_get_ptr_r1 (x)
 Return the device pointer for an associated Fortran rank 1 array. More...
 
type(c_ptr) function device::device_get_ptr_r2 (x)
 Return the device pointer for an associated Fortran rank 2 array. More...
 
type(c_ptr) function device::device_get_ptr_r3 (x)
 Return the device pointer for an associated Fortran rank 3 array. More...
 
type(c_ptr) function device::device_get_ptr_r4 (x)
 Return the device pointer for an associated Fortran rank 4 array. More...
 
subroutine device::device_sync_device ()
 Synchronize the device. More...
 
subroutine, public device::device_sync_stream (stream)
 Synchronize a device stream. More...
 
subroutine, public device::device_stream_create (stream, flags)
 Create a device stream/command queue. More...
 
subroutine device::device_stream_create_with_priority (stream, flags, prio)
 Create a device stream/command queue with priority. More...
 
subroutine, public device::device_stream_destroy (stream)
 Destroy a device stream/command queue. More...
 
subroutine, public device::device_stream_wait_event (stream, event, flags)
 Synchronize a device stream with an event. More...
 
subroutine, public device::device_profiler_start ()
 Start device profiling. More...
 
subroutine, public device::device_profiler_stop ()
 Stop device profiling. More...
 
subroutine, public device::device_event_create (event, flags)
 Create a device event queue. More...
 
subroutine, public device::device_event_destroy (event)
 Destroy a device event. More...
 
subroutine, public device::device_event_record (event, stream)
 Record a device event. More...
 
subroutine, public device::device_event_sync (event)
 Synchronize an event. More...
 

Variables

integer, parameter, public device::host_to_device = 1
 
integer, parameter, public device::device_to_host = 2
 
integer, parameter, public device::device_to_device = 3
 
type(htable_cptr_t), private device::device_addrtbl
 Table of host to device address mappings. More...