PaStiX Handbook  6.3.2
pastix_dcuda.h
Go to the documentation of this file.
1 /**
2  * @file pastix_dcuda.h
3  *
4  * PaStiX GPU kernel header.
5  *
6  * @copyright 2011-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
7  * Univ. Bordeaux. All rights reserved.
8  *
9  * @version 6.3.2
10  * @author Mathieu Faverge
11  * @author Pierre Ramet
12  * @author Xavier Lacoste
13  * @date 2023-07-21
14  * @generated from /builds/solverstack/pastix/kernels/pastix_zcuda.h, normal z -> d, Wed Dec 13 12:09:04 2023
15  *
16  */
17 #ifndef _pastix_dcuda_h_
18 #define _pastix_dcuda_h_
19 
20 #if defined(PASTIX_WITH_CUDA)
21 
22 #include <cuda.h>
23 #include <cuda_runtime_api.h>
24 #include <cuComplex.h>
25 
26 /**
27  * @addtogroup kernel_blas_lapack
28  * @{
29  * @name PastixDouble cblk-BLAS GPU kernels
30  * @{
31  */
32 pastix_fixdbl_t gpucblk_dgemmsp( pastix_coefside_t sideA, pastix_trans_t trans,
33  const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk,
34  const double *A, const double *B, double *C,
35  const pastix_lr_t *lowrank, cudaStream_t stream );
36 
37 pastix_fixdbl_t gpublok_dgemmsp( pastix_trans_t trans,
38  const SolverCblk *cblk, SolverCblk *fcblk,
39  pastix_int_t blok_mk, pastix_int_t blok_nk, pastix_int_t blok_mn,
40  const void *A, const void *B, void *C,
41  const pastix_lr_t *lowrank, cudaStream_t stream );
42 
43 pastix_fixdbl_t gpublok_dtrsmsp( pastix_side_t side, pastix_uplo_t uplo,
44  pastix_trans_t trans, pastix_diag_t diag,
45  const SolverCblk *cblk, pastix_int_t blok_m,
46  const void *A, void *C,
47  const pastix_lr_t *lowrank, cudaStream_t stream );
48 
49 pastix_fixdbl_t gpu_dgemmsp_fermi( const SolverMatrix *solvmatr,
50  pastix_uplo_t uplo, pastix_trans_t trans,
51  int *blocktab,
52  const SolverCblk *cblk,
53  const SolverBlok *blok,
54  SolverCblk *fcblk,
55  const double *A,
56  const double *B,
57  double *C,
58  cudaStream_t stream );
59 
60 /**
61  * @}
62  * @}
63  */
64 #endif
65 
66 #endif /* _pastix_dcuda_h_ */
BEGIN_C_DECLS typedef int pastix_int_t
Definition: datatypes.h:51
double pastix_fixdbl_t
Definition: datatypes.h:65
Structure to define the type of function to use for the low-rank kernels and their parameters.
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.
Solver block structure.
Definition: solver.h:137
Solver column block structure.
Definition: solver.h:156
Solver column block structure.
Definition: solver.h:200