35module device_heaviside_mapping
36 use utils,
only: neko_error
37 use num_types,
only: rp, c_rp
38 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
42 public :: device_heaviside_mapping_apply, &
43 device_heaviside_mapping_apply_backward
49 X_in_d, n) bind(c, name = 'hip_heaviside_mapping_apply')
50 import c_rp, c_ptr, c_int
53 type(c_ptr),
value :: X_out_d
54 type(c_ptr),
value :: X_in_d
62 sens_out_d, sens_in_d, X_in_d, n) &
63 bind(c, name =
'hip_heaviside_mapping_apply_backward')
64 import c_rp, c_ptr, c_int
67 type(c_ptr),
value :: sens_out_d
68 type(c_ptr),
value :: sens_in_d
69 type(c_ptr),
value :: X_in_d
77 X_in_d, n) bind(c, name = 'cuda_heaviside_mapping_apply')
78 import c_rp, c_ptr, c_int
81 type(c_ptr),
value :: X_out_d
82 type(c_ptr),
value :: X_in_d
90 sens_out_d, sens_in_d, X_in_d, n) &
91 bind(c, name =
'cuda_heaviside_mapping_apply_backward')
92 import c_rp, c_ptr, c_int
95 type(c_ptr),
value :: sens_out_d
96 type(c_ptr),
value :: sens_in_d
97 type(c_ptr),
value :: X_in_d
112 subroutine device_heaviside_mapping_apply(beta, eta, X_out_d, &
114 real(kind=rp),
intent(in) :: beta
115 real(kind=rp),
intent(in) :: eta
116 type(c_ptr) :: x_out_d
117 type(c_ptr) :: x_in_d
124 call neko_error(
'No device backend configured')
126 end subroutine device_heaviside_mapping_apply
135 subroutine device_heaviside_mapping_apply_backward(beta, eta, &
136 sens_out_d, sens_in_d, X_in_d, n)
137 real(kind=rp),
intent(in) :: beta
138 real(kind=rp),
intent(in) :: eta
139 type(c_ptr) :: sens_out_d
140 type(c_ptr) :: sens_in_d
141 type(c_ptr) :: x_in_d
145 sens_in_d, x_in_d, n)
148 sens_in_d, x_in_d, n)
150 call neko_error(
'No device backend configured')
152 end subroutine device_heaviside_mapping_apply_backward
154end module device_heaviside_mapping
void cuda_heaviside_mapping_apply_backward(real *beta, real *eta, void *sens_out_d, void *sens_in_d, void *X_in_d, int *n)
void cuda_heaviside_mapping_apply(real *beta, real *eta, void *X_out_d, void *X_in_d, int *n)
void hip_heaviside_mapping_apply_backward(real *beta, real *eta, void *sens_out_d, void *sens_in_d, void *X_in_d, int *n)
void hip_heaviside_mapping_apply(real *beta, real *eta, void *X_out_d, void *X_in_d, int *n)