PaStiX Handbook  6.4.0
pastix_cstarpu.h
Go to the documentation of this file.
1 /**
2  *
3  * @file pastix_cstarpu.h
4  *
5  * Pastix StarPU codelets header
6  *
7  * @copyright 2016-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8  * Univ. Bordeaux. All rights reserved.
9  *
10  * @version 6.4.0
11  * @author Mathieu Faverge
12  * @author Pierre Ramet
13  * @author Vincent Bridonneau
14  * @author Alycia Lisito
15  * @date 2024-07-05
16  *
17  * @generated from /builds/solverstack/pastix/sopalin/starpu/pastix_zstarpu.h, normal z -> c, Tue Oct 8 14:17:09 2024
18  *
19  **/
20 #ifndef _pastix_cstarpu_h_
21 #define _pastix_cstarpu_h_
22 
23 void starpu_task_cblk_cgetrfsp( sopalin_data_t *sopalin_data,
24  SolverCblk *cblk,
25  int prio );
26 void starpu_task_cblk_chetrfsp( sopalin_data_t *sopalin_data,
27  SolverCblk *cblk,
28  int prio );
29 void starpu_task_cblk_cpotrfsp( sopalin_data_t *sopalin_data,
30  SolverCblk *cblk,
31  int prio );
32 void starpu_task_cblk_cpxtrfsp( sopalin_data_t *sopalin_data,
33  SolverCblk *cblk,
34  int prio );
35 void starpu_task_cblk_csytrfsp( sopalin_data_t *sopalin_data,
36  SolverCblk *cblk,
37  int prio );
38 
39 void starpu_task_blok_cgetrf( sopalin_data_t *sopalin_data,
40  SolverCblk *cblk,
41  int prio );
42 void starpu_task_blok_chetrf( sopalin_data_t *sopalin_data,
43  SolverCblk *cblk,
44  int prio );
45 void starpu_task_blok_cpotrf( sopalin_data_t *sopalin_data,
46  SolverCblk *cblk,
47  int prio );
48 void starpu_task_blok_cpxtrf( sopalin_data_t *sopalin_data,
49  SolverCblk *cblk,
50  int prio );
51 void starpu_task_blok_csytrf( sopalin_data_t *sopalin_data,
52  SolverCblk *cblk,
53  int prio );
54 void starpu_stask_cblk_cdiag( sopalin_data_t *sopalin_data,
55  pastix_rhs_t rhsb,
56  SolverCblk *cblk,
57  int prio );
58 void starpu_stask_blok_cgemm( sopalin_data_t *sopalin_data,
59  pastix_rhs_t rhsb,
60  pastix_coefside_t coef,
61  pastix_side_t side,
62  pastix_trans_t trans,
63  const SolverCblk *cblk,
64  const SolverBlok *blok,
65  SolverCblk *fcbk,
66  pastix_int_t prio );
67 void starpu_stask_blok_ctrsm( sopalin_data_t *sopalin_data,
68  pastix_rhs_t rhsb,
69  pastix_coefside_t coef,
70  pastix_side_t side,
71  pastix_uplo_t uplo,
72  pastix_trans_t trans,
73  pastix_diag_t diag,
74  const SolverCblk *cblk,
75  pastix_int_t prio );
76 
77 void starpu_task_cblk_cgemmsp( sopalin_data_t *sopalin_data,
78  pastix_coefside_t sideA,
79  pastix_coefside_t sideB,
80  pastix_trans_t trans,
81  const SolverCblk *cblk,
82  const SolverBlok *blok,
83  SolverCblk *fcblk,
84  int prio );
85 void starpu_task_cblk_cadd_recv( sopalin_data_t *sopalin_data,
86  pastix_coefside_t side,
87  const SolverCblk *cblk,
88  SolverCblk *fcblk,
89  int prio );
90 void starpu_task_cblk_cadd_fanin( sopalin_data_t *sopalin_data,
91  pastix_coefside_t side,
92  const SolverCblk *cblk,
93  int prio );
94 void starpu_task_blok_cadd_recv( sopalin_data_t *sopalin_data,
95  pastix_coefside_t side,
96  const SolverCblk *cblk,
97  const SolverBlok *blok,
98  SolverCblk *fcblk,
99  SolverBlok *fblok,
100  int prio );
101 void starpu_task_blok_cadd_fanin( sopalin_data_t *sopalin_data,
102  pastix_coefside_t side,
103  const SolverCblk *cblk,
104  const SolverBlok *blok,
105  int prio );
106 void starpu_task_blok_cgemmsp( sopalin_data_t *sopalin_data,
107  pastix_coefside_t sideA,
108  pastix_coefside_t sideB,
109  pastix_trans_t trans,
110  SolverCblk *cblk,
111  SolverCblk *fcblk,
112  const SolverBlok *blokA,
113  const SolverBlok *blokB,
114  int prio );
115 
116 void starpu_task_blok_ctrsmsp( sopalin_data_t *sopalin_data,
117  pastix_coefside_t coef,
118  pastix_side_t side,
119  pastix_uplo_t uplo,
120  pastix_trans_t trans,
121  pastix_diag_t diag,
122  const SolverCblk *cblk,
123  SolverBlok *blok,
124  int prio );
125 
126 void starpu_task_blok_cscalo( sopalin_data_t *sopalin_data,
127  pastix_trans_t trans,
128  const SolverCblk *cblk,
129  SolverBlok *blok,
130  int prio );
131 
132 void starpu_task_cadd_1dp_fanin( sopalin_data_t *sopalin_data,
133  pastix_coefside_t side,
134  const SolverCblk *cblk,
135  int prio );
136 void starpu_task_cadd_1dp_recv( sopalin_data_t *sopalin_data,
137  pastix_coefside_t side,
138  const SolverCblk *cblk,
139  int prio );
140 void starpu_task_cadd_2d_fanin( sopalin_data_t *sopalin_data,
141  pastix_coefside_t side,
142  const SolverCblk *cblk,
143  int prio );
144 void starpu_task_cadd_2d_recv( sopalin_data_t *sopalin_data,
145  pastix_coefside_t side,
146  const SolverCblk *cblk,
147  int prio );
148 void starpu_task_cadd_fanin( sopalin_data_t *sopalin_data,
149  pastix_coefside_t side,
150  const SolverCblk *cblk,
151  int prio );
152 void starpu_task_cadd_recv( sopalin_data_t *sopalin_data,
153  pastix_coefside_t side,
154  const SolverCblk *cblk,
155  int prio );
156 void starpu_stask_blok_cadd_fwd_recv( sopalin_data_t *sopalin_data,
157  pastix_rhs_t rhsb,
158  const SolverCblk *cblk,
159  SolverCblk *fcblk,
160  int prio );
161 
162 void starpu_stask_blok_ccpy_bwd_recv( sopalin_data_t *sopalin_data,
163  pastix_rhs_t rhsb,
164  SolverCblk *cblk,
165  const SolverCblk *fcblk,
166  int prio );
167 
168 void starpu_cdiag ( pastix_data_t *pastix_data,
169  sopalin_data_t *sopalin_data,
170  pastix_rhs_t rhsb );
171 void starpu_cpotrf( pastix_data_t *pastix_data,
172  sopalin_data_t *sopalin_data );
173 void starpu_cpxtrf( pastix_data_t *pastix_data,
174  sopalin_data_t *sopalin_data );
175 void starpu_cgetrf( pastix_data_t *pastix_data,
176  sopalin_data_t *sopalin_data );
177 void starpu_chetrf( pastix_data_t *pastix_data,
178  sopalin_data_t *sopalin_data );
179 void starpu_csytrf( pastix_data_t *pastix_data,
180  sopalin_data_t *sopalin_data );
181 void starpu_ctrsm ( pastix_data_t *pastix_data,
182  const args_solve_t *enums,
183  sopalin_data_t *sopalin_data,
184  pastix_rhs_t rhsb );
185 
186 #endif /* _pastix_cstarpu_h_ */
BEGIN_C_DECLS typedef int pastix_int_t
Definition: datatypes.h:51
enum pastix_diag_e pastix_diag_t
Diagonal.
enum pastix_uplo_e pastix_uplo_t
Upper/Lower part.
enum pastix_side_e pastix_side_t
Side of the operation.
enum pastix_trans_e pastix_trans_t
Transpostion.
enum pastix_coefside_e pastix_coefside_t
Data blocks used in the kernel.
void starpu_task_blok_chetrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_cpxtrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_stask_blok_ccpy_bwd_recv(sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, SolverCblk *cblk, const SolverCblk *fcblk, int prio)
Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV ...
void starpu_task_cblk_cpxtrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_cpotrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_cadd_recv(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, SolverBlok *fblok, int prio)
Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV ...
void starpu_task_cblk_cadd_recv(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV ...
void starpu_task_blok_cscalo(sopalin_data_t *sopalin_data, pastix_trans_t trans, const SolverCblk *cblk, SolverBlok *blok, int prio)
TODO.
void starpu_stask_blok_cadd_fwd_recv(sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV ...
void starpu_task_cblk_cgetrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_cblk_csytrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_cadd_fanin(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, int prio)
Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emi...
void starpu_task_blok_ctrsmsp(sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
StarPU GPU implementation.
void starpu_task_blok_cgetrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_cblk_cgemmsp(sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
StarPU GPU implementation.
void starpu_task_blok_csytrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_cblk_cpotrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_stask_blok_cgemm(sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, pastix_coefside_t coef, pastix_side_t side, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, pastix_int_t prio)
Submit a task to perform a gemm.
void starpu_task_blok_cgemmsp(sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
StarPU GPU implementation.
void starpu_task_cblk_chetrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_cblk_cadd_fanin(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emi...
Main PaStiX data structure.
Definition: pastixdata.h:68
Main PaStiX RHS structure.
Definition: pastixdata.h:155
void starpu_stask_cblk_cdiag(sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, SolverCblk *cblk, int prio)
Submit a task to perform a diagonal solve related to one cblk to all the right hand side.
void starpu_cdiag(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data, pastix_rhs_t rhsb)
Apply the diagonal solve (StarPU version)
Definition: starpu_cdiag.c:88
void starpu_cgetrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LU factorization using StarPU runtime.
void starpu_chetrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LDL^h factorization using StarPU runtime.
void starpu_cpotrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse Cholesky factorization using StarPU runtime.
void starpu_cpxtrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LL^t factorization using StarPU runtime.
void starpu_csytrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LDL^t factorization using StarPU runtime.
void starpu_stask_blok_ctrsm(sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, pastix_int_t prio)
Submit a task to do a trsm related to a diagonal block of the matrix A.
void starpu_ctrsm(pastix_data_t *pastix_data, const args_solve_t *enums, sopalin_data_t *sopalin_data, pastix_rhs_t rhsb)
Apply the TRSM solve (StarPU version).
Definition: starpu_ctrsm.c:362
void starpu_task_cadd_recv(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
Submits starpu zadd task to send the recv cblk.
void starpu_task_cadd_1dp_recv(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
Submits starpu zadd task to receive and add the recv cblk.
void starpu_task_cadd_fanin(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
Submits starpu zadd task to send the fanin cblk.
void starpu_task_cadd_2d_fanin(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
Submits starpu zadd task to send the fanin block.
void starpu_task_cadd_1dp_fanin(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
Submits starpu zadd task to send the fanin cblk.
void starpu_task_cadd_2d_recv(sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
Submits starpu zadd task to receive and add the recv block.
Arguments for the solve.
Definition: solver.h:88
Solver block structure.
Definition: solver.h:141
Solver column block structure.
Definition: solver.h:161