示例#1
0
/* Task execution code */
static void SCHED_panel_update(Quark* quark)
{
  int N;
  cuDoubleComplex *A1;
  int LDA;
  int K2;
  int *IPIV;
  cuDoubleComplex *A2;
  int M;
  int K;
  cuDoubleComplex *A3;
  cuDoubleComplex *A4;

  int ione=1;
  cuDoubleComplex mone = MAGMA_Z_NEG_ONE;
  cuDoubleComplex one = MAGMA_Z_ONE;
    
  quark_unpack_args_10(quark, N, A1, LDA, K2, IPIV, A2, M, K, A3, A4);

  lapackf77_zlaswp(&N, A1, &LDA, &ione, &K2, IPIV, &ione); 

  blasf77_ztrsm("l", "l", "n", "u",
    &K2, &N, &one, A2, &LDA, A1, &LDA);

  if (M > 0) {

  blasf77_zgemm("n","n", 
    &M, &N, &K, &mone, A3, &LDA, A1, &LDA, &one, A4, &LDA);

  }

}
void CORE_cgetrf_reclap_quark(Quark* quark)
{
    int M;
    int N;
    PLASMA_Complex32_t *A;
    int LDA;
    int *IPIV;
    PLASMA_sequence *sequence;
    PLASMA_request *request;
    PLASMA_bool check_info;
    int iinfo;

    int info[3];
    int maxthreads;

    quark_unpack_args_10(quark, M, N, A, LDA, IPIV, sequence, request, 
                         check_info, iinfo, maxthreads );

    info[1] = QUARK_Get_RankInTask(quark);
    info[2] = maxthreads;

    CORE_cgetrf_reclap( M, N, A, LDA, IPIV, info );
    if (info[1] == 0 && info[0] != PLASMA_SUCCESS && check_info)
        plasma_sequence_flush(quark, sequence, request, iinfo + info[0] );
}
示例#3
0
void CORE_zbrdalg_quark(Quark *quark)
{
    PLASMA_desc *pA;
    PLASMA_Complex64_t *V;
    PLASMA_Complex64_t *TAU;
    int    uplo;
    int    N, NB;
    int    i, j, m, grsiz;

    quark_unpack_args_10(quark, uplo, N, NB, pA, V, TAU, i, j, m, grsiz);
    CORE_zbrdalg(uplo, N, NB, pA, V, TAU, i, j, m, grsiz);
}
示例#4
0
void CORE_zpltmg_quark(Quark *quark)
{
    int mtxtype;
    int m;
    int n;
    PLASMA_Complex64_t *A;
    int lda;
    int gM;
    int gN;
    int m0;
    int n0;
    unsigned long long int seed;

    quark_unpack_args_10( quark, mtxtype, m, n, A, lda, gM, gN, m0, n0, seed );
    CORE_zpltmg( mtxtype, m, n, A, lda, gM, gN, m0, n0, seed );
}
void CORE_zgetrf_incpiv_quark(Quark *quark)
{
    int m;
    int n;
    int ib;
    PLASMA_Complex64_t *A;
    int lda;
    int *IPIV;
    PLASMA_sequence *sequence;
    PLASMA_request *request;
    PLASMA_bool check_info;
    int iinfo;

    int info;

    quark_unpack_args_10(quark, m, n, ib, A, lda, IPIV, sequence, request, check_info, iinfo);
    CORE_zgetrf_incpiv(m, n, ib, A, lda, IPIV, &info);
    if (info != PLASMA_SUCCESS && check_info)
        plasma_sequence_flush(quark, sequence, request, iinfo+info);
}
示例#6
0
void CORE_zherk_quark(Quark *quark)
{
    int uplo;
    int trans;
    int n;
    int k;
    double alpha;
    PLASMA_Complex64_t *A;
    int lda;
    double beta;
    PLASMA_Complex64_t *C;
    int ldc;

    quark_unpack_args_10(quark, uplo, trans, n, k, alpha, A, lda, beta, C, ldc);
    cblas_zherk(
        CblasColMajor,
        (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans,
        n, k,
        alpha, A, lda,
        beta, C, ldc);
}
示例#7
0
void CORE_zhegst_quark(Quark *quark)
{
    int itype;
    PLASMA_enum uplo;
    int n;
    PLASMA_Complex64_t *A;
    int lda;
    PLASMA_Complex64_t *B;
    int ldb;
    PLASMA_sequence *sequence;
    PLASMA_request *request;
    int iinfo;

    int info;

    quark_unpack_args_10(quark, itype, uplo, n, A, lda, B, ldb, sequence, request, iinfo);
    info = LAPACKE_zhegst_work(
        LAPACK_COL_MAJOR,
        itype,
        lapack_const(uplo),
        n, A, lda, B, ldb);
    if (sequence->status == PLASMA_SUCCESS && info != 0)
      plasma_sequence_flush(quark, sequence, request, iinfo+info);
}