|
PLASMA 2.3.1
|
00001 00017 /***************************************************************************/ 00020 #define plasma_sdesc_alloc( descA, mb, nb, lm, ln, i, j, m, n, free) \ 00021 descA = plasma_desc_init( \ 00022 PlasmaRealFloat, (mb), (nb), ((mb)*(nb)), \ 00023 (m), (n), (i), (j), (m), (n)); \ 00024 if ( plasma_desc_mat_alloc( &(descA) ) ) { \ 00025 plasma_error( __func__, "plasma_shared_alloc() failed"); \ 00026 {free;}; \ 00027 return PLASMA_ERR_OUT_OF_RESOURCES; \ 00028 } 00029 00030 #define plasma_sooplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n, free) \ 00031 descA = plasma_desc_init( \ 00032 PlasmaRealFloat, (mb), (nb), ((mb)*(nb)), \ 00033 (lm), (ln), (i), (j), (m), (n)); \ 00034 if ( plasma_desc_mat_alloc( &(descA) ) ) { \ 00035 plasma_error( __func__, "plasma_shared_alloc() failed"); \ 00036 {free;}; \ 00037 return PLASMA_ERR_OUT_OF_RESOURCES; \ 00038 } \ 00039 plasma_parallel_call_5( \ 00040 plasma_pslapack_to_tile, \ 00041 float*, (A), \ 00042 int, (lm), \ 00043 PLASMA_desc, (descA), \ 00044 PLASMA_sequence*, sequence, \ 00045 PLASMA_request*, &request); 00046 00047 #define plasma_siplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n) \ 00048 descA = plasma_desc_init( \ 00049 PlasmaRealFloat, (mb), (nb), ((mb)*(nb)), \ 00050 (lm), (ln), (i), (j), (m), (n)); \ 00051 descA.mat = A; \ 00052 PLASMA_sgecfi_Async((lm), (ln), (A), PlasmaCM, (mb), (nb), \ 00053 PlasmaCCRB, (mb), (nb), sequence, &request); 00054 00055 00056 00057 #define plasma_sooptile2lap( descA, A, mb, nb, lm, ln) \ 00058 plasma_parallel_call_5(plasma_pstile_to_lapack, \ 00059 PLASMA_desc, (descA), \ 00060 float*, (A), \ 00061 int, (lm), \ 00062 PLASMA_sequence*, sequence, \ 00063 PLASMA_request*, &request); 00064 00065 #define plasma_siptile2lap( descA, A, mb, nb, lm, ln) \ 00066 PLASMA_sgecfi_Async((lm), (ln), (A), PlasmaCCRB, (mb), (nb), \ 00067 PlasmaCM, (mb), (nb), sequence, &request); 00068 00069 /***************************************************************************/ 00072 void plasma_psaxpy (plasma_context_t *plasma); 00073 void plasma_psgelqf (plasma_context_t *plasma); 00074 void plasma_psgemm (plasma_context_t *plasma); 00075 void plasma_psgeqrf (plasma_context_t *plasma); 00076 void plasma_psgerbb (plasma_context_t *plasma); 00077 void plasma_psgetmi2(plasma_context_t *plasma); 00078 void plasma_psgetrf_incpiv(plasma_context_t *plasma); 00079 #ifdef COMPLEX 00080 void plasma_pssymm (plasma_context_t *plasma); 00081 void plasma_pssyrk (plasma_context_t *plasma); 00082 void plasma_pssyr2k (plasma_context_t *plasma); 00083 #endif 00084 void plasma_pslacpy (plasma_context_t *plasma); 00085 void plasma_pslag2d (plasma_context_t *plasma); 00086 void plasma_pslange (plasma_context_t *plasma); 00087 #ifdef COMPLEX 00088 void plasma_pslansy (plasma_context_t *plasma); 00089 #endif 00090 void plasma_pslansy (plasma_context_t *plasma); 00091 void plasma_pspack (plasma_context_t *plasma); 00092 void plasma_psplgsy (plasma_context_t *plasma); 00093 void plasma_psplgsy (plasma_context_t *plasma); 00094 void plasma_psplrnt (plasma_context_t *plasma); 00095 void plasma_pspotrf (plasma_context_t *plasma); 00096 void plasma_psshift (plasma_context_t *plasma); 00097 void plasma_pssymm (plasma_context_t *plasma); 00098 void plasma_pssyrk (plasma_context_t *plasma); 00099 void plasma_pssyr2k (plasma_context_t *plasma); 00100 void plasma_pstrmm (plasma_context_t *plasma); 00101 void plasma_pstrsm (plasma_context_t *plasma); 00102 void plasma_pstrsmpl(plasma_context_t *plasma); 00103 void plasma_psorglq (plasma_context_t *plasma); 00104 void plasma_psorgqr (plasma_context_t *plasma); 00105 void plasma_psorgqrrh(plasma_context_t *plasma); 00106 void plasma_psormlq (plasma_context_t *plasma); 00107 void plasma_psormqr (plasma_context_t *plasma); 00108 void plasma_psunpack(plasma_context_t *plasma); 00109 00110 /***************************************************************************/ 00113 int plasma_sshift(plasma_context_t *plasma, int m, int n, float *A, 00114 int nprob, int me, int ne, int L, 00115 PLASMA_sequence *sequence, PLASMA_request *request); 00116 00117 /***************************************************************************/ 00120 void plasma_psaxpy_quark(float alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request); 00121 void plasma_psbarrier_tl2pnl_quark(PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request); 00122 void plasma_psbarrier_pnl2tl_quark(PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request); 00123 void plasma_psgelqf_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00124 void plasma_psgelqfrh_quark(PLASMA_desc A, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request); 00125 void plasma_psgemm_quark(PLASMA_enum transA, PLASMA_enum transB, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request); 00126 void plasma_psgeqrf_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00127 void plasma_psgeqrfrh_quark(PLASMA_desc A, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request); 00128 void plasma_psgerbh_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00129 void plasma_psgerbb_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00130 void plasma_psgerbbrh_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00131 void plasma_psgetmi2_quark(PLASMA_enum idep, PLASMA_enum odep, PLASMA_enum storev, int m, int n, int mb, int nb, float *A, PLASMA_sequence *sequence, PLASMA_request *request); 00132 void plasma_psgetrf_incpiv_quark(PLASMA_desc A, PLASMA_desc L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request); 00133 void plasma_psgetrf_reclap_quark(PLASMA_desc A, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request); 00134 void plasma_psgetrf_rectil_quark(PLASMA_desc A, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request); 00135 #ifdef COMPLEX 00136 void plasma_pssygst_quark(PLASMA_enum itype, PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request); 00137 void plasma_pssymm_quark(PLASMA_enum side, PLASMA_enum uplo, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request); 00138 void plasma_pssyrk_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request); 00139 void plasma_pssyr2k_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request); 00140 void plasma_pssyrbt_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00141 void plasma_psgbrdb_quark(PLASMA_enum uplo, PLASMA_desc A, float *D, float *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00142 void plasma_pssbrdt_quark(PLASMA_enum uplo, PLASMA_desc A, float *D, float *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00143 #endif 00144 void plasma_pslacpy_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request); 00145 void plasma_pslag2d_quark(PLASMA_desc A, PLASMA_desc SB, PLASMA_sequence *sequence, PLASMA_request *request); 00146 void plasma_pslange_quark(PLASMA_enum norm, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request); 00147 #ifdef COMPLEX 00148 void plasma_pslansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request); 00149 #endif 00150 void plasma_pslansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request); 00151 void plasma_pslaset_quark( PLASMA_enum uplo, float alpha, float beta, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request); 00152 void plasma_pslaset2_quark(PLASMA_enum uplo, float alpha, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request); 00153 void plasma_pslaswp_quark(PLASMA_desc B, int *IPIV, int inc, PLASMA_sequence *sequence, PLASMA_request *request); 00154 void plasma_pslauum_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request); 00155 void plasma_psplgsy_quark(float bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request); 00156 void plasma_psplgsy_quark(float bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request ); 00157 void plasma_psplrnt_quark(PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request ); 00158 void plasma_pspotrf_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request); 00159 void plasma_psshift_quark(int, int, int, float *, int *, int, int, PLASMA_sequence*, PLASMA_request*); 00160 void plasma_pssymm_quark(PLASMA_enum side, PLASMA_enum uplo, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request); 00161 void plasma_pssyrk_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request); 00162 void plasma_pssyr2k_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request); 00163 void plasma_pstrmm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, float alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request); 00164 void plasma_pstrsm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, float alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request); 00165 void plasma_pstrsmpl_quark(PLASMA_desc A, PLASMA_desc B, PLASMA_desc L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request); 00166 void plasma_pstrtri_quark(PLASMA_enum uplo, PLASMA_enum diag, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request); 00167 void plasma_psorgbr_quark(PLASMA_enum side, PLASMA_desc A, PLASMA_desc O, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00168 void plasma_psorgbrrh_quark(PLASMA_enum side, PLASMA_desc A, PLASMA_desc O, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00169 void plasma_psorgqr_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00170 void plasma_psorgqrrh_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request); 00171 void plasma_psorglq_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00172 void plasma_psorglqrh_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request); 00173 void plasma_psorgtr_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00174 void plasma_psormqr_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00175 void plasma_psormqrrh_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request); 00176 void plasma_psormlq_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request); 00177 void plasma_psormlqrh_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
1.7.3