36 use,
intrinsic :: iso_c_binding, only : c_int, c_ptr
43 bind(c, name =
'hip_opchsign')
44 use,
intrinsic :: iso_c_binding
45 type(c_ptr),
value :: a1_d, a2_d, a3_d
46 integer(c_int) :: gdim, n
52 bind(c, name =
'hip_opcolv')
53 use,
intrinsic :: iso_c_binding
54 type(c_ptr),
value :: a1_d, a2_d, a3_d, c_d
55 integer(c_int) :: gdim, n
62 bind(c, name =
'hip_opcolv3c')
63 use,
intrinsic :: iso_c_binding
65 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
67 integer(c_int) :: gdim, n
74 bind(c, name =
'hip_opadd2cm')
75 use,
intrinsic :: iso_c_binding
77 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d
79 integer(c_int) :: gdim, n
86 bind(c, name =
'hip_opadd2col')
87 use,
intrinsic :: iso_c_binding
88 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
89 integer(c_int) :: gdim, n
95 bind(c, name =
'cuda_opchsign')
96 use,
intrinsic :: iso_c_binding
97 type(c_ptr),
value :: a1_d, a2_d, a3_d
98 integer(c_int) :: gdim, n
103 subroutine cuda_opcolv(a1_d, a2_d, a3_d, c_d, gdim, n) &
104 bind(c, name =
'cuda_opcolv')
105 use,
intrinsic :: iso_c_binding
106 type(c_ptr),
value :: a1_d, a2_d, a3_d, c_d
107 integer(c_int) :: gdim, n
112 subroutine cuda_opcolv3c(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, &
114 bind(c, name =
'cuda_opcolv3c')
115 use,
intrinsic :: iso_c_binding
117 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
119 integer(c_int) :: gdim, n
124 subroutine cuda_opadd2cm(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, &
126 bind(c, name =
'cuda_opadd2cm')
127 use,
intrinsic :: iso_c_binding
129 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d
131 integer(c_int) :: gdim, n
138 bind(c, name =
'cuda_opadd2col')
139 use,
intrinsic :: iso_c_binding
140 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
141 integer(c_int) :: gdim, n
147 bind(c, name =
'opencl_opchsign')
148 use,
intrinsic :: iso_c_binding
149 type(c_ptr),
value :: a1_d, a2_d, a3_d
150 integer(c_int) :: gdim, n
156 bind(c, name =
'opencl_opcolv')
157 use,
intrinsic :: iso_c_binding
158 type(c_ptr),
value :: a1_d, a2_d, a3_d, c_d
159 integer(c_int) :: gdim, n
166 bind(c, name =
'opencl_opcolv3c')
167 use,
intrinsic :: iso_c_binding
169 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
171 integer(c_int) :: gdim, n
178 bind(c, name =
'opencl_opadd2cm')
179 use,
intrinsic :: iso_c_binding
181 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d
183 integer(c_int) :: gdim, n
190 bind(c, name =
'opencl_opadd2col')
191 use,
intrinsic :: iso_c_binding
192 type(c_ptr),
value :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
193 integer(c_int) :: gdim, n
205 type(c_ptr) :: a1_d, a2_d, a3_d
214 call neko_error(
'No device backend configured')
220 type(c_ptr) :: a1_d, a2_d, a3_d, c_d
223 call hip_opcolv(a1_d, a2_d, a3_d, c_d, gdim, n)
229 call neko_error(
'No device backend configured')
235 b1_d, b2_d, b3_d, c_d, d, n, gdim)
236 type(c_ptr) :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
240 call hip_opcolv3c(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d, d, gdim, n)
242 call cuda_opcolv3c(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d, d, gdim, n)
244 call opencl_opcolv3c(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d, d, gdim, n)
246 call neko_error(
'No device backend configured')
252 type(c_ptr) :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d
256 call hip_opadd2cm(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c, gdim, n)
258 call cuda_opadd2cm(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c, gdim, n)
262 call neko_error(
'No device backend configured')
268 type(c_ptr) :: a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d
271 call hip_opadd2col(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d, gdim, n)
273 call cuda_opadd2col(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d, gdim, n)
277 call neko_error(
'No device backend configured')
void opencl_opcolv3c(void *a1, void *a2, void *a3, void *b1, void *b2, void *b3, void *c, real *d, int *gdim, int *n)
void opencl_opadd2cm(void *a1, void *a2, void *a3, void *b1, void *b2, void *b3, real *c, int *gdim, int *n)
void opencl_opcolv(void *a1, void *a2, void *a3, void *c, int *gdim, int *n)
void opencl_opchsign(void *a1, void *a2, void *a3, int *gdim, int *n)
void opencl_opadd2col(void *a1, void *a2, void *a3, void *b1, void *b2, void *b3, void *c, int *gdim, int *n)
void cuda_opchsign(void *a1, void *a2, void *a3, int *gdim, int *n)
void cuda_opcolv3c(void *a1, void *a2, void *a3, void *b1, void *b2, void *b3, void *c, real *d, int *gdim, int *n)
void cuda_opadd2cm(void *a1, void *a2, void *a3, void *b1, void *b2, void *b3, real *c, int *gdim, int *n)
void cuda_opcolv(void *a1, void *a2, void *a3, void *c, int *gdim, int *n)
void cuda_opadd2col(void *a1, void *a2, void *a3, void *b1, void *b2, void *b3, void *c, int *gdim, int *n)
subroutine, public device_opchsign(a1_d, a2_d, a3_d, gdim, n)
subroutine, public device_opadd2col(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d, n, gdim)
subroutine, public device_opadd2cm(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c, n, gdim)
subroutine, public device_opcolv3c(a1_d, a2_d, a3_d, b1_d, b2_d, b3_d, c_d, d, n, gdim)
subroutine, public device_opcolv(a1_d, a2_d, a3_d, c_d, gdim, n)
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.