34 use utils,
only: neko_error
35 use num_types,
only: rp, c_rp
36 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
45 bind(c, name =
'cuda_copy_mask')
46 import c_rp, c_int, c_ptr
47 type(c_ptr),
value :: a_d
48 type(c_ptr),
value :: b_d
49 integer(c_int) :: size
50 type(c_ptr),
value :: mask_d
51 integer(c_int) :: mask_size
56 bind(c, name =
'cuda_cadd_mask')
57 import c_rp, c_int, c_ptr
58 type(c_ptr),
value :: a_d
60 integer(c_int) :: size
61 type(c_ptr),
value :: mask_d
62 integer(c_int) :: mask_size
67 bind(c, name =
'cuda_invcol1_mask')
68 import c_rp, c_int, c_ptr
69 type(c_ptr),
value :: a_d
70 integer(c_int) :: size
71 type(c_ptr),
value :: mask_d
72 integer(c_int) :: mask_size
77 bind(c, name =
'cuda_col2_mask')
78 import c_rp, c_int, c_ptr
79 type(c_ptr),
value :: a_d
80 type(c_ptr),
value :: b_d
81 integer(c_int) :: size
82 type(c_ptr),
value :: mask_d
83 integer(c_int) :: mask_size
88 bind(c, name =
'cuda_col3_mask')
89 import c_rp, c_int, c_ptr
90 type(c_ptr),
value :: a_d
91 type(c_ptr),
value :: b_d
92 type(c_ptr),
value :: c_d
93 integer(c_int) :: size
94 type(c_ptr),
value :: mask_d
95 integer(c_int) :: mask_size
100 bind(c, name =
'cuda_sub3_mask')
101 import c_rp, c_int, c_ptr
102 type(c_ptr),
value :: a_d
103 type(c_ptr),
value :: b_d
104 type(c_ptr),
value :: c_d
105 integer(c_int) :: size
106 type(c_ptr),
value :: mask_d
107 integer(c_int) :: mask_size
121 type(c_ptr) :: mask_d
126 call neko_error(
'No device backend configured for device_copy_mask')
132 real(kind=rp),
intent(in) :: c
134 type(c_ptr) :: mask_d
139 call neko_error(
'No device backend configured for device_cadd_mask')
146 type(c_ptr) :: mask_d
151 call neko_error(
'No device backend configured for device_invcol1_mask')
159 type(c_ptr) :: mask_d
164 call neko_error(
'No device backend configured for device_col2_mask')
173 type(c_ptr) :: mask_d
178 call neko_error(
'No device backend configured for device_col3_mask')
187 type(c_ptr) :: mask_d
192 call neko_error(
'No device backend configured for device_sub3_mask')
subroutine device_copy_mask(a_d, b_d, size, mask_d, mask_size)
subroutine device_cadd_mask(a_d, c, size, mask_d, mask_size)
subroutine device_sub3_mask(a_d, b_d, c_d, size, mask_d, mask_size)
subroutine device_col2_mask(a_d, b_d, size, mask_d, mask_size)
subroutine device_col3_mask(a_d, b_d, c_d, size, mask_d, mask_size)
subroutine device_invcol1_mask(a_d, size, mask_d, mask_size)