Macros |
| #define | PRECISION_z |
| #define | magma_zdesc_alloc(descA, mb, nb, lm, ln, i, j, m, n, free) |
| #define | magma_zdesc_alloc2(descA, mb, nb, lm, ln, i, j, m, n) |
| #define | magma_zooplap2tile(descA, A, mb, nb, lm, ln, i, j, m, n, free) |
| #define | magma_ziplap2tile(descA, A, mb, nb, lm, ln, i, j, m, n) |
| #define | magma_zooptile2lap(descA, A, mb, nb, lm, ln) |
| #define | magma_ziptile2lap(descA, A, mb, nb, lm, ln) |
Functions |
| void | magma_pzlapack_to_tile (PLASMA_Complex64_t *Af77, int lda, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pztile_to_lapack (magma_desc_t *A, PLASMA_Complex64_t *Af77, int lda, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pztile_zero (magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzaxpy (PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzgelqf (magma_desc_t *A, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzgelqfrh (magma_desc_t *A, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzgemm (MAGMA_enum transA, MAGMA_enum transB, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzgeqrf (magma_desc_t *A, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzgeqrfrh (magma_desc_t *A, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzgetmi2 (MAGMA_enum idep, MAGMA_enum odep, MAGMA_enum storev, int m, int n, int mb, int nb, PLASMA_Complex64_t *A, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzgetrf (magma_desc_t *A, magma_desc_t *L, int *IPIV, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzhemm (MAGMA_enum side, MAGMA_enum uplo, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzherk (MAGMA_enum uplo, MAGMA_enum trans, double alpha, magma_desc_t *A, double beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzher2k (MAGMA_enum uplo, MAGMA_enum trans, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, double beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzlacpy (MAGMA_enum uplo, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzlag2c (magma_desc_t *A, magma_desc_t *SB, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzlange (MAGMA_enum norm, magma_desc_t *A, double *work, double *result, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzlanhe (MAGMA_enum norm, MAGMA_enum uplo, magma_desc_t *A, double *work, double *result, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzlansy (MAGMA_enum norm, MAGMA_enum uplo, magma_desc_t *A, double *work, double *result, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzlauum (MAGMA_enum uplo, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzplghe (double bump, magma_desc_t *A, unsigned long long int seed, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzplgsy (PLASMA_Complex64_t bump, magma_desc_t *A, unsigned long long int seed, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzplrnt (magma_desc_t *A, unsigned long long int seed, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzpotrf (MAGMA_enum uplo, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzshift (int, int, int, PLASMA_Complex64_t *, int *, int, int, magma_sequence_t *, magma_request_t *) |
| void | magma_pzsymm (MAGMA_enum side, MAGMA_enum uplo, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzsyrk (MAGMA_enum uplo, MAGMA_enum trans, PLASMA_Complex64_t alpha, magma_desc_t *A, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzsyr2k (MAGMA_enum uplo, MAGMA_enum trans, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, PLASMA_Complex64_t beta, magma_desc_t *C, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pztrmm (MAGMA_enum side, MAGMA_enum uplo, MAGMA_enum transA, MAGMA_enum diag, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pztrsm (MAGMA_enum side, MAGMA_enum uplo, MAGMA_enum transA, MAGMA_enum diag, PLASMA_Complex64_t alpha, magma_desc_t *A, magma_desc_t *B, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pztrsmpl (magma_desc_t *A, magma_desc_t *B, magma_desc_t *L, int *IPIV, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pztrtri (MAGMA_enum uplo, MAGMA_enum diag, magma_desc_t *A, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzungqr (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzungqrrh (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzunglq (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzunglqrh (magma_desc_t *A, magma_desc_t *Q, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzunmqr (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzunmqrrh (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzunmlq (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, magma_sequence_t *sequence, magma_request_t *request) |
| void | magma_pzunmlqrh (MAGMA_enum side, MAGMA_enum trans, magma_desc_t *A, magma_desc_t *B, magma_desc_t *T, int BS, magma_sequence_t *sequence, magma_request_t *request) |
MAGMA auxiliary routines MAGMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
- Version:
- 2.3.1
- Author:
- Jakub Kurzak
-
Mathieu Faverge
- Date:
- 2010-11-15 normal z -> c d s
Definition in file compute_z.h.
Parallel tile LU factorization - dynamic scheduling
Definition at line 31 of file pzgetrf.c.
References A, magma_desc_s::desc, DIAG, IPIV, L, magma_context_self(), magma_desc_mat_free(), MAGMA_IB, magma_sequence_wait(), MAGMA_SUCCESS, magma_zdesc_alloc2, min, morse_options_finalize(), morse_options_init(), morse_options_ws_alloc(), morse_options_ws_free(), MORSE_zgessm(), MORSE_zgetrl(), MORSE_zlacpy(), MORSE_zssssm(), MORSE_ztstrf(), MorseOption_s::nb, and magma_sequence_s::status.
{
PLASMA_desc
A = dA->
desc;
PLASMA_desc
L = dL->
desc;
#if !defined(MORSE_NON_EXPLICIT_COPY)
#endif
int k, m, n;
int tempkm, tempkn, tempmm, tempnn;
int ib;
int maxk =
min(A.mt, A.nt);
size_t h_work_size;
size_t d_work_size;
return;
#if !defined(MORSE_NON_EXPLICIT_COPY)
#endif
h_work_size = sizeof(PLASMA_Complex64_t)*( 2*ib + 2*L.nb )*2*A.mb;
d_work_size = sizeof(PLASMA_Complex64_t)*( ib )*2*A.mb;
for (k = 0; k < maxk; k++) {
tempkm = k == A.mt-1 ? A.m-k*A.mb : A.mb;
tempkn = k == A.nt-1 ? A.n-k*A.nb : A.nb;
&options,
tempkm, tempkn, ib,
k == A.mt-1, A.nb*k);
#if !defined(MORSE_NON_EXPLICIT_COPY)
if ( k < (A.nt-1) ) {
&options,
PlasmaUpperLower, tempkm, tempkn,
}
#endif
for (n = k+1; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
tempkm, tempnn, tempkm, ib,
}
for (m = k+1; m < A.mt; m++) {
tempmm = m == A.mt-1 ? A.m-m*A.mb : A.mb;
&options,
tempmm, tempkn, ib, L.
nb,
A(k, k),
m == A.mt-1, A.nb*k);
for (n = k+1; n < A.nt; n++) {
tempnn = n == A.nt-1 ? A.n-n*A.nb : A.nb;
&options,
A.
nb, tempnn, tempmm, tempnn, A.nb, ib,
A(k, n),
}
}
}
#if !defined(MORSE_NON_EXPLICIT_COPY)
#endif
}