36 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int, c_bool
45 inv_thet, n, zero_initial, strm) &
46 bind(c, name=
'hip_amg_cheby_solve_part1')
47 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int, c_bool
49 type(c_ptr),
value :: r_d, f_d, w_d, x_d, d_d, strm
50 real(c_rp) :: inv_thet
51 logical(c_bool) :: zero_initial
57 tmp1, tmp2, n, strm) bind(c, name='hip_amg_cheby_solve_part2')
58 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
60 type(c_ptr),
value :: r_d, w_d, d_d, x_d, strm
61 real(c_rp) :: tmp1, tmp2
68 inv_thet, n, zero_initial, strm) &
69 bind(c, name=
'cuda_amg_cheby_solve_part1')
70 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int, c_bool
72 type(c_ptr),
value :: r_d, f_d, w_d, x_d, d_d, strm
73 real(c_rp) :: inv_thet
74 logical(c_bool) :: zero_initial
80 tmp1, tmp2, n, strm) bind(c, name='cuda_amg_cheby_solve_part2')
81 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
83 type(c_ptr),
value :: r_d, w_d, d_d, x_d, strm
84 real(c_rp) :: tmp1, tmp2
96 inv_thet, n, zero_initial)
97 type(c_ptr),
intent(inout) :: r_d, f_d, w_d, d_d, x_d
98 real(kind=
rp),
intent(in) :: inv_thet
99 integer,
intent(in) :: n
100 logical,
intent(in) :: zero_initial
101 logical(c_bool) :: zinit
112 call neko_error(
'No device backend configured')
117 type(c_ptr),
intent(inout) :: r_d, w_d, d_d, x_d
118 real(kind=
rp),
intent(in) :: tmp1, tmp2
119 integer,
intent(in) :: n
127 call neko_error(
'No device backend configured')
void cuda_amg_cheby_solve_part2(void *r, void *w, void *d, void *x, real *tmp1, real *tmp2, int *n, cudaStream_t strm)
void cuda_amg_cheby_solve_part1(void *r, void *f, void *w, void *x, void *d, real *inv_thet, int *n, bool *zero_initial, cudaStream_t strm)
Implements device kernels for use with TreeAMG smoothers.
subroutine, public amg_device_cheby_solve_part1(r_d, f_d, w_d, x_d, d_d, inv_thet, n, zero_initial)
subroutine, public amg_device_cheby_solve_part2(r_d, w_d, d_d, x_d, tmp1, tmp2, n)
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.