37 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
44 bind(c, name=
'hip_fdm_do_fast')
45 use,
intrinsic :: iso_c_binding
46 type(c_ptr),
value :: e_d, r_d, s_d, d_d, stream
47 integer(c_int) :: nl, nelv
53 bind(c, name=
'cuda_fdm_do_fast')
54 use,
intrinsic :: iso_c_binding
55 type(c_ptr),
value :: e_d, r_d, s_d, d_d, stream
56 integer(c_int) :: nl, nelv
62 bind(c, name=
'opencl_fdm_do_fast')
63 use,
intrinsic :: iso_c_binding
64 type(c_ptr),
value :: e_d, r_d, s_d, d_d, stream
65 integer(c_int) :: nl, nelv
75 integer,
intent(in) :: nl, nelv, ldim
76 real(kind=
rp),
intent(inout) :: e(nl**ldim, nelv)
77 real(kind=
rp),
intent(inout) :: r(nl**ldim, nelv)
78 real(kind=
rp),
intent(inout) :: s(nl*nl,2,ldim, nelv)
79 real(kind=
rp),
intent(inout) :: d(nl**ldim, nelv)
80 type(c_ptr) :: e_d, r_d, s_d, d_d
81 type(c_ptr),
optional :: stream
87 if (.not.
present(stream)) stream = glb_cmd_queue
88 if (ldim .ne. 3)
call neko_error(
'fdm dim not supported')
97 call neko_error(
'No device backend configured')
void opencl_fdm_do_fast(void *e, void *r, void *s, void *d, int *nl, int *nel, cl_command_queue cmd_queue)
void cuda_fdm_do_fast(void *e, void *r, void *s, void *d, int *nl, int *nel, cudaStream_t stream)
Return the device pointer for an associated Fortran array.
Device abstraction, common interface for various accelerators.
subroutine, public fdm_do_fast_device(e, r, s, d, nl, ldim, nelv, stream)
integer, parameter, public rp
Global precision used in computations.