47 bind(c, name =
'cuda_masked_copy')
48 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
49 type(c_ptr),
value :: a_d, b_d, mask_d, strm
50 integer(c_int) :: n, n_mask
54 bind(c, name =
'cuda_masked_gather_copy')
55 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
56 type(c_ptr),
value :: a_d, b_d, mask_d, strm
57 integer(c_int) :: n, n_mask
61 bind(c, name =
'cuda_masked_scatter_copy')
62 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
63 type(c_ptr),
value :: a_d, b_d, mask_d, strm
64 integer(c_int) :: n, n_mask
68 bind(c, name =
'cuda_masked_atomic_reduction')
69 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
70 type(c_ptr),
value :: a_d, b_d, mask_d, strm
71 integer(c_int) :: n, m
75 bind(c, name =
'cuda_cfill_mask')
76 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
78 type(c_ptr),
value :: a_d, strm
81 type(c_ptr),
value :: mask_d
82 integer(c_int) :: n_mask
166 bind(c, name =
'cuda_add4')
167 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
169 type(c_ptr),
value :: a_d, b_d, c_d, d_d, strm
201 bind(c, name =
'cuda_add3s2')
202 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
204 type(c_ptr),
value :: a_d, b_d, c_d, strm
210 bind(c, name =
'cuda_add4s3')
211 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
213 type(c_ptr),
value :: a_d, b_d, c_d, d_d, strm
214 real(c_rp) :: c1, c2, c3
218 subroutine cuda_add5s4(a_d, b_d, c_d, d_d, e_d, c1, c2, c3, c4, n, strm) &
219 bind(c, name =
'cuda_add5s4')
220 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
222 type(c_ptr),
value :: a_d, b_d, c_d, d_d, e_d, strm
223 real(c_rp) :: c1, c2, c3, c4
298 bind(c, name =
'cuda_addcol4')
299 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
300 type(c_ptr),
value :: a_d, b_d, c_d, d_d, strm
313 subroutine cuda_vdot3(dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, n, strm) &
314 bind(c, name =
'cuda_vdot3')
315 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
316 type(c_ptr),
value :: dot_d, u1_d, u2_d, u3_d, v1_d, v2_d, v3_d, strm
321 w1_d, w2_d, w3_d, n, strm) &
322 bind(c, name =
'cuda_vcross')
323 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
324 type(c_ptr),
value :: u1_d, u2_d, u3_d
325 type(c_ptr),
value :: v1_d, v2_d, v3_d
326 type(c_ptr),
value :: w1_d, w2_d, w3_d
327 type(c_ptr),
value :: strm
356 bind(c, name =
'cuda_glsc3_many')
357 use,
intrinsic :: iso_c_binding, only: c_int, c_ptr
359 type(c_ptr),
value :: w_d, v_d_d, mult_d, strm
360 integer(c_int) :: j, n