PaStiX Handbook  6.3.2
pastix_zstarpu.h
Go to the documentation of this file.
1 /**
2  *
3  * @file pastix_zstarpu.h
4  *
5  * Pastix StarPU codelets header
6  *
7  * @copyright 2016-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8  * Univ. Bordeaux. All rights reserved.
9  *
10  * @version 6.3.2
11  * @author Mathieu Faverge
12  * @author Pierre Ramet
13  * @author Vincent Bridonneau
14  * @author Alycia Lisito
15  * @date 2023-12-01
16  *
17  * @generated from /builds/solverstack/pastix/sopalin/starpu/pastix_zstarpu.h, normal z -> z, Wed Dec 13 12:09:03 2023
18  *
19  **/
20 #ifndef _pastix_zstarpu_h_
21 #define _pastix_zstarpu_h_
22 
23 void starpu_task_cblk_zgetrfsp( sopalin_data_t *sopalin_data,
24  SolverCblk *cblk,
25  int prio );
26 void starpu_task_cblk_zhetrfsp( sopalin_data_t *sopalin_data,
27  SolverCblk *cblk,
28  int prio );
29 void starpu_task_cblk_zpotrfsp( sopalin_data_t *sopalin_data,
30  SolverCblk *cblk,
31  int prio );
32 void starpu_task_cblk_zpxtrfsp( sopalin_data_t *sopalin_data,
33  SolverCblk *cblk,
34  int prio );
35 void starpu_task_cblk_zsytrfsp( sopalin_data_t *sopalin_data,
36  SolverCblk *cblk,
37  int prio );
38 
39 void starpu_task_blok_zgetrf( sopalin_data_t *sopalin_data,
40  SolverCblk *cblk,
41  int prio );
42 void starpu_task_blok_zhetrf( sopalin_data_t *sopalin_data,
43  SolverCblk *cblk,
44  int prio );
45 void starpu_task_blok_zpotrf( sopalin_data_t *sopalin_data,
46  SolverCblk *cblk,
47  int prio );
48 void starpu_task_blok_zpxtrf( sopalin_data_t *sopalin_data,
49  SolverCblk *cblk,
50  int prio );
51 void starpu_task_blok_zsytrf( sopalin_data_t *sopalin_data,
52  SolverCblk *cblk,
53  int prio );
54 void starpu_stask_cblk_zdiag( sopalin_data_t *sopalin_data,
55  SolverCblk *cblk,
56  int prio );
57 void starpu_stask_blok_zgemm( sopalin_data_t *sopalin_data,
58  pastix_coefside_t coef,
59  pastix_side_t side,
60  pastix_trans_t trans,
61  const SolverCblk *cblk,
62  const SolverBlok *blok,
63  SolverCblk *fcbk,
64  pastix_int_t prio );
65 void starpu_stask_blok_ztrsm( sopalin_data_t *sopalin_data,
66  pastix_coefside_t coef,
67  pastix_side_t side,
68  pastix_uplo_t uplo,
69  pastix_trans_t trans,
70  pastix_diag_t diag,
71  const SolverCblk *cblk,
72  pastix_int_t prio );
73 
74 void starpu_task_cblk_zgemmsp( sopalin_data_t *sopalin_data,
75  pastix_coefside_t sideA,
76  pastix_coefside_t sideB,
77  pastix_trans_t trans,
78  const SolverCblk *cblk,
79  const SolverBlok *blok,
80  SolverCblk *fcblk,
81  int prio );
82 void starpu_task_cblk_zadd_recv( sopalin_data_t *sopalin_data,
83  pastix_coefside_t side,
84  const SolverCblk *cblk,
85  SolverCblk *fcblk,
86  int prio );
87 void starpu_task_cblk_zadd_fanin( sopalin_data_t *sopalin_data,
88  pastix_coefside_t side,
89  const SolverCblk *cblk,
90  int prio );
91 void starpu_task_blok_zadd_recv( sopalin_data_t *sopalin_data,
92  pastix_coefside_t side,
93  const SolverCblk *cblk,
94  const SolverBlok *blok,
95  SolverCblk *fcblk,
96  SolverBlok *fblok,
97  int prio );
98 void starpu_task_blok_zadd_fanin( sopalin_data_t *sopalin_data,
99  pastix_coefside_t side,
100  const SolverCblk *cblk,
101  const SolverBlok *blok,
102  int prio );
103 void starpu_task_blok_zgemmsp( sopalin_data_t *sopalin_data,
104  pastix_coefside_t sideA,
105  pastix_coefside_t sideB,
106  pastix_trans_t trans,
107  SolverCblk *cblk,
108  SolverCblk *fcblk,
109  const SolverBlok *blokA,
110  const SolverBlok *blokB,
111  int prio );
112 
113 void starpu_task_blok_ztrsmsp( sopalin_data_t *sopalin_data,
114  pastix_coefside_t coef,
115  pastix_side_t side,
116  pastix_uplo_t uplo,
117  pastix_trans_t trans,
118  pastix_diag_t diag,
119  const SolverCblk *cblk,
120  SolverBlok *blok,
121  int prio );
122 
123 void starpu_task_blok_zscalo( sopalin_data_t *sopalin_data,
124  pastix_trans_t trans,
125  const SolverCblk *cblk,
126  SolverBlok *blok,
127  int prio );
128 
129 void starpu_task_zadd_1dp_fanin( sopalin_data_t *sopalin_data,
130  pastix_coefside_t side,
131  const SolverCblk *cblk,
132  int prio );
133 void starpu_task_zadd_1dp_recv( sopalin_data_t *sopalin_data,
134  pastix_coefside_t side,
135  const SolverCblk *cblk,
136  int prio );
137 void starpu_task_zadd_2d_fanin( sopalin_data_t *sopalin_data,
138  pastix_coefside_t side,
139  const SolverCblk *cblk,
140  int prio );
141 void starpu_task_zadd_2d_recv( sopalin_data_t *sopalin_data,
142  pastix_coefside_t side,
143  const SolverCblk *cblk,
144  int prio );
145 void starpu_task_zadd_fanin( sopalin_data_t *sopalin_data,
146  pastix_coefside_t side,
147  const SolverCblk *cblk,
148  int prio );
149 void starpu_task_zadd_recv( sopalin_data_t *sopalin_data,
150  pastix_coefside_t side,
151  const SolverCblk *cblk,
152  int prio );
153 
154 void starpu_zdiag ( pastix_data_t *pastix_data,
155  sopalin_data_t *sopalin_data,
156  int nrhs,
157  pastix_complex64_t *b,
158  int ldb );
159 void starpu_zpotrf( pastix_data_t *pastix_data,
160  sopalin_data_t *sopalin_data );
161 void starpu_zpxtrf( pastix_data_t *pastix_data,
162  sopalin_data_t *sopalin_data );
163 void starpu_zgetrf( pastix_data_t *pastix_data,
164  sopalin_data_t *sopalin_data );
165 void starpu_zhetrf( pastix_data_t *pastix_data,
166  sopalin_data_t *sopalin_data );
167 void starpu_zsytrf( pastix_data_t *pastix_data,
168  sopalin_data_t *sopalin_data );
169 void starpu_ztrsm ( pastix_data_t *pastix_data,
170  const args_solve_t *enums,
171  sopalin_data_t *sopalin_data,
172  pastix_rhs_t b );
173 
174 #endif /* _pastix_zstarpu_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_cblk_zgetrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_cblk_zpxtrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_zgetrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_cblk_zhetrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_zscalo(sopalin_data_t *sopalin_data, pastix_trans_t trans, const SolverCblk *cblk, SolverBlok *blok, int prio)
TODO.
void starpu_task_cblk_zadd_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...
void starpu_task_cblk_zgemmsp(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_zadd_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_blok_zpotrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_zhetrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_zadd_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_cblk_zadd_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_stask_blok_zgemm(sopalin_data_t *sopalin_data, 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_ztrsmsp(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_zsytrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_cblk_zsytrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_zpxtrf(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
void starpu_task_blok_zgemmsp(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_zpotrfsp(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
TODO.
Main PaStiX data structure.
Definition: pastixdata.h:67
Main PaStiX RHS structure.
Definition: pastixdata.h:150
void starpu_stask_cblk_zdiag(sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
Submit a task to perform a diagonal solve related to one cblk to all the right hand side.
void starpu_zdiag(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data, int nrhs, pastix_complex64_t *b, int ldb)
Apply the diagonal solve (StarPU version)
Definition: starpu_zdiag.c:88
void starpu_zgetrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LU factorization using StarPU runtime.
void starpu_zhetrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LDL^h factorization using StarPU runtime.
void starpu_zpotrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse Cholesky factorization using StarPU runtime.
void starpu_zpxtrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LL^t factorization using StarPU runtime.
void starpu_zsytrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LDL^t factorization using StarPU runtime.
void starpu_ztrsm(pastix_data_t *pastix_data, const args_solve_t *enums, sopalin_data_t *sopalin_data, pastix_rhs_t b)
Apply the TRSM solve (StarPU version).
Definition: starpu_ztrsm.c:296
void starpu_stask_blok_ztrsm(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, pastix_int_t prio)
Submit a task to do a trsm related to a diagonal block of the matrix A.
void starpu_task_zadd_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.
void starpu_task_zadd_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_zadd_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_zadd_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_zadd_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_zadd_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.
Arguments for the solve.
Definition: solver.h:85
Solver block structure.
Definition: solver.h:137
Solver column block structure.
Definition: solver.h:156