37 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
45 bind(c, name =
'hip_schwarz_extrude')
46 use,
intrinsic :: iso_c_binding
49 type(c_ptr),
value :: arr1_d, arr2_d, stream
50 integer(c_int) :: l1, l2, nx, nelv
55 bind(c, name =
'hip_schwarz_toext3d')
56 use,
intrinsic :: iso_c_binding
59 type(c_ptr),
value :: a_d, b_d, stream
60 integer(c_int) :: nx, nelv
63 bind(c, name =
'hip_schwarz_toreg3d')
64 use,
intrinsic :: iso_c_binding
67 type(c_ptr),
value :: a_d, b_d, stream
68 integer(c_int) :: nx, nelv
75 bind(c, name =
'cuda_schwarz_extrude')
76 use,
intrinsic :: iso_c_binding
79 type(c_ptr),
value :: arr1_d, arr2_d, stream
81 integer(c_int) :: l1, l2, nx, nelv
85 bind(c, name =
'cuda_schwarz_toext3d')
86 use,
intrinsic :: iso_c_binding
89 type(c_ptr),
value :: a_d, b_d, stream
90 integer(c_int) :: nx, nelv
93 bind(c, name =
'cuda_schwarz_toreg3d')
94 use,
intrinsic :: iso_c_binding
97 type(c_ptr),
value :: a_d, b_d, stream
98 integer(c_int) :: nx, nelv
105 bind(c, name =
'opencl_schwarz_extrude')
106 use,
intrinsic :: iso_c_binding
109 type(c_ptr),
value :: arr1_d, arr2_d, stream
110 integer(c_int) :: l1, l2, nx, nelv
114 bind(c, name =
'opencl_schwarz_toext3d')
115 use,
intrinsic :: iso_c_binding
118 type(c_ptr),
value :: a_d, b_d, stream
119 integer(c_int) :: nx, nelv
122 bind(c, name =
'opencl_schwarz_toreg3d')
123 use,
intrinsic :: iso_c_binding
126 type(c_ptr),
value :: a_d, b_d, stream
127 integer(c_int) :: nx, nelv
137 nx, ny, nz, nelv, stream)
138 integer,
intent(in) :: l1, l2, nx, ny, nz, nelv
139 type(c_ptr),
intent(inout) :: arr1_d, arr2_d
140 real(kind=
rp),
intent(in) :: f1, f2
141 type(c_ptr),
optional :: stream
142 if (.not.
present(stream))
then
153 call neko_error(
'No device backend configured')
158 integer,
intent(in) :: nx, nelv
159 type(c_ptr) :: a_d, b_d
160 type(c_ptr),
optional :: stream
161 if (.not.
present(stream))
then
172 call neko_error(
'No device backend configured')
177 integer,
intent(in) :: nx, nelv
178 type(c_ptr) :: a_d, b_d
179 type(c_ptr),
optional :: stream
180 if (.not.
present(stream))
then
190 call neko_error(
'No device backend configured')
subroutine, public device_schwarz_toreg3d(b_d, a_d, nx, nelv, stream)
subroutine, public device_schwarz_extrude(arr1_d, l1, f1, arr2_d, l2, f2, nx, ny, nz, nelv, stream)
subroutine, public device_schwarz_toext3d(a_d, b_d, nx, nelv, stream)
Device abstraction, common interface for various accelerators.
type(c_ptr), bind(C), public glb_cmd_queue
Global command queue.
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.
void opencl_schwarz_toext3d(void *a, void *b, int *nx, int *nel, cl_command_queue command_queue)
void opencl_schwarz_extrude(void *arr1, int *l1, real *f1, void *arr2, int *l2, real *f2, int *nx, int *nel, cl_command_queue command_queue)
void opencl_schwarz_toreg3d(void *b, void *a, int *nx, int *nel, cl_command_queue command_queue)
void cuda_schwarz_extrude(void *arr1, int *l1, real *f1, void *arr2, int *l2, real *f2, int *nx, int *nel, cudaStream_t stream)
void cuda_schwarz_toreg3d(void *b, void *a, int *nx, int *nel, cudaStream_t stream)
void cuda_schwarz_toext3d(void *a, void *b, int *nx, int *nel, cudaStream_t stream)