26 #if defined(LASs_WITH_MKL) 28 #include <mkl_lapacke.h> 33 #include "../mmsparse/mm_io.h" 35 #include "lass_types.h" 44 int ddss_dgemm(
enum DDSS_TRANS TRANS_A,
enum DDSS_TRANS TRANS_B,
46 double ALPHA,
double *A,
int LDA,
48 double BETA,
double *C,
int LDC );
50 int ddss_dsymm(
enum DDSS_SIDE SIDE,
enum DDSS_UPLO UPLO,
52 double ALPHA,
double *A,
int LDA,
54 double BETA,
double *C,
int LDC );
56 int ddss_dtrsm(
enum DDSS_SIDE SIDE,
enum DDSS_UPLO UPLO,
57 enum DDSS_TRANS TRANS_A,
enum DDSS_DIAG DIAG,
59 const double ALPHA,
double *A,
int LDA,
62 int ddss_dtrmm(
enum DDSS_SIDE SIDE,
enum DDSS_UPLO UPLO,
63 enum DDSS_TRANS TRANS_A,
enum DDSS_DIAG DIAG,
65 const double ALPHA,
double *A,
int LDA,
68 int ddss_dsyrk(
enum DDSS_UPLO UPLO,
enum DDSS_TRANS TRANS_A,
70 const double ALPHA,
double *A,
int LDA,
71 const double BETA,
double *C,
int LDC );
73 int ddss_dsyr2k(
enum DDSS_UPLO UPLO,
enum DDSS_TRANS TRANS,
75 const double ALPHA,
double *A,
int LDA,
77 const double BETA,
double *C,
int LDC );
101 double *A,
int LDA );
106 double *B,
int LDB );
110 enum LASS_RETURN
kdgemm(
enum DDSS_TRANS TRANS_A,
enum DDSS_TRANS TRANS_B,
112 const double ALPHA,
double *A,
int LDA,
114 const double BETA,
double *C,
int LDC );
116 enum LASS_RETURN
kdsymm(
enum DDSS_SIDE SIDE,
enum DDSS_UPLO UPLO,
118 const double ALPHA,
double *A,
int LDA,
120 const double BETA,
double *C,
int LDC );
122 enum LASS_RETURN
kdtrsm(
enum DDSS_SIDE SIDE,
enum DDSS_UPLO UPLO,
123 enum DDSS_TRANS TRANS_A,
enum DDSS_DIAG DIAG,
125 const double ALPHA,
double *A,
int LDA,
126 double *B,
int LDB );
128 enum LASS_RETURN
kdtrmm(
enum DDSS_SIDE SIDE,
enum DDSS_UPLO UPLO,
129 enum DDSS_TRANS TRANS_A,
enum DDSS_DIAG DIAG,
131 const double ALPHA,
double *A,
int LDA,
132 double *B,
int LDB );
134 enum LASS_RETURN
kdsyrk(
enum DDSS_UPLO UPLO,
enum DDSS_TRANS TRANS_A,
136 const double ALPHA,
double* A,
int LDA,
137 const double BETA,
double *C,
int LDC );
139 enum LASS_RETURN
kdsyr2k(
enum DDSS_UPLO UPLO,
enum DDSS_TRANS TRANS,
141 const double ALPHA,
double *A,
int LDA,
143 const double BETA,
double *C,
int LDC );
149 double *A,
int LDA );
151 enum LASS_RETURN
kdnpgesv(
int N,
int NRHS,
153 double *B,
int LDB );
160 enum LASS_RETURN
kdtpgesv(
int N,
int NRHS,
163 double *B,
int LDB );
165 enum LASS_RETURN
kdpotrf(
enum DDSS_UPLO UPLO,
167 double *A,
int LDA );
169 enum LASS_RETURN
kdposv(
enum DDSS_UPLO UPLO,
172 double *B,
int LDB );
176 enum LASS_RETURN
dnpgetrf(
int M,
int N,
double *A,
int LDA );
185 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE] );
188 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE],
enum DDSS_UPLO UPLO );
191 double *TILE_A,
int MID,
int NID );
196 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE] );
199 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE] );
202 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE],
enum DDSS_UPLO UPLO );
205 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE],
enum DDSS_UPLO UPLO );
208 double *TILE_A,
int MID,
int NID );
219 int dsss_dgtsv(
int N,
220 double *DL,
double *D,
double *DU,
225 int dsss_dspmv(
int M,
int N,
227 const double *VAL_A,
const int *ROW_PTR_A,
const int *COL_IND_A,
234 enum LASS_RETURN kdgtsv(
int N,
235 double *DL,
double *D,
double *DU,
240 enum LASS_RETURN kdspmv (
int M,
int N,
242 const double *VAL_A,
const int *ROW_PTR_A,
const int *COL_IND_A,
249 void dgtsvseq(
int N,
250 double *DL,
double *D,
double *DU,
257 const double *VAL_A,
const int *ROW_PTR_A,
const int *COL_IND_A,
int ddss_tile_size(int M, int MT)
void ddss_dflat2tiled(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])
int ddss_dsyrk(enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS_A, int N, int K, const double ALPHA, double *A, int LDA, const double BETA, double *C, int LDC)
enum LASS_RETURN kdtpgesv(int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB)
void ddss_dscatter_tile(int M, int N, double *A, int LDA, double *TILE_A, int MID, int NID)
int ddss_dnpgetrf(int M, int N, double *A, int LDA)
enum LASS_RETURN kdtrmm(enum DDSS_SIDE SIDE, enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS_A, enum DDSS_DIAG DIAG, int M, int N, const double ALPHA, double *A, int LDA, double *B, int LDB)
int ddss_dsymm(enum DDSS_SIDE SIDE, enum DDSS_UPLO UPLO, int M, int N, double ALPHA, double *A, int LDA, double *B, int LDB, double BETA, double *C, int LDC)
enum LASS_RETURN kdnpgesv(int N, int NRHS, double *A, int LDA, double *B, int LDB)
int ddss_dgemm(enum DDSS_TRANS TRANS_A, enum DDSS_TRANS TRANS_B, int M, int N, int K, double ALPHA, double *A, int LDA, double *B, int LDB, double BETA, double *C, int LDC)
enum LASS_RETURN kdtpgetrf(int M, int N, double *A, int LDA, int *ipiv)
void ddss_dtiled2flat(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])
int ddss_dpotrf(enum DDSS_UPLO UPLO, int N, double *A, int LDA)
void ddss_dtiled2flat_nb(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])
enum LASS_RETURN kdposv(enum DDSS_UPLO UPLO, int N, int NRHS, double *A, int LDA, double *B, int LDB)
int ddss_dtrsm(enum DDSS_SIDE SIDE, enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS_A, enum DDSS_DIAG DIAG, int M, int N, const double ALPHA, double *A, int LDA, double *B, int LDB)
void dspmvseq(int M, int N, double ALPHA, const double *VAL_A, const int *ROW_PTR_A, const int *COL_IND_A, const double *X, double BETA, double *Y)
void ddss_dgather_tile(int M, int N, double *A, int LDA, double *TILE_A, int MID, int NID)
int ddss_dsyr2k(enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS, int N, int K, const double ALPHA, double *A, int LDA, double *B, int LDB, const double BETA, double *C, int LDC)
enum LASS_RETURN kdsyrk(enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS_A, int N, int K, const double ALPHA, double *A, int LDA, const double BETA, double *C, int LDC)
int ddss_dnpgesv(int N, int NRHS, double *A, int LDA, double *B, int LDB)
enum LASS_RETURN kdtrsm(enum DDSS_SIDE SIDE, enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS_A, enum DDSS_DIAG DIAG, int M, int N, const double ALPHA, double *A, int LDA, double *B, int LDB)
enum LASS_RETURN kdgemm(enum DDSS_TRANS TRANS_A, enum DDSS_TRANS TRANS_B, int M, int N, int K, const double ALPHA, double *A, int LDA, double *B, int LDB, const double BETA, double *C, int LDC)
void ddss_dsymtiled2flat(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)
enum LASS_RETURN kdnpgetrf(int M, int N, double *A, int LDA)
int ddss_dposv(enum DDSS_UPLO UPLO, int N, int NRHS, double *A, int LDA, double *B, int LDB)
enum LASS_RETURN kdpotrf(enum DDSS_UPLO UPLO, int N, double *A, int LDA)
enum LASS_RETURN dnpgetrf(int M, int N, double *A, int LDA)
int ddss_dtrmm(enum DDSS_SIDE SIDE, enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS_A, enum DDSS_DIAG DIAG, int M, int N, const double ALPHA, double *A, int LDA, double *B, int LDB)
void ddss_dsymflat2tiled(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)
int ddss_dtpgesv(int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB)
void ddss_dsymtiled2flat_nb(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)
enum LASS_RETURN kdsymm(enum DDSS_SIDE SIDE, enum DDSS_UPLO UPLO, int M, int N, const double ALPHA, double *A, int LDA, double *B, int LDB, const double BETA, double *C, int LDC)
enum LASS_RETURN kdsyr2k(enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS, int N, int K, const double ALPHA, double *A, int LDA, double *B, int LDB, const double BETA, double *C, int LDC)
int ddss_dtpgetrf(int M, int N, double *A, int LDA, int *ipiv)