PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
core_dgemm.c File Reference
#include "common.h"
Include dependency graph for core_dgemm.c:

Go to the source code of this file.

Functions

void CORE_dgemm (int transA, int transB, int M, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC)
void QUARK_CORE_dgemm (Quark *quark, Quark_Task_Flags *task_flags, int transA, int transB, int m, int n, int k, int nb, double alpha, double *A, int lda, double *B, int ldb, double beta, double *C, int ldc)
void QUARK_CORE_dgemm2 (Quark *quark, Quark_Task_Flags *task_flags, int transA, int transB, int m, int n, int k, int nb, double alpha, double *A, int lda, double *B, int ldb, double beta, double *C, int ldc)
void CORE_dgemm_quark (Quark *quark)
void QUARK_CORE_dgemm_f2 (Quark *quark, Quark_Task_Flags *task_flags, int transA, int transB, int m, int n, int k, int nb, double alpha, double *A, int lda, double *B, int ldb, double beta, double *C, int ldc, double *fake1, int szefake1, int flag1, double *fake2, int szefake2, int flag2)
void CORE_dgemm_f2_quark (Quark *quark)
void QUARK_CORE_dgemm_p2 (Quark *quark, Quark_Task_Flags *task_flags, int transA, int transB, int m, int n, int k, int nb, double alpha, double *A, int lda, double **B, int ldb, double beta, double *C, int ldc)
void CORE_dgemm_p2_quark (Quark *quark)
void QUARK_CORE_dgemm_p3 (Quark *quark, Quark_Task_Flags *task_flags, int transA, int transB, int m, int n, int k, int nb, double alpha, double *A, int lda, double *B, int ldb, double beta, double **C, int ldc)
void CORE_dgemm_p3_quark (Quark *quark)
void QUARK_CORE_dgemm_p2f1 (Quark *quark, Quark_Task_Flags *task_flags, int transA, int transB, int m, int n, int k, int nb, double alpha, double *A, int lda, double **B, int ldb, double beta, double *C, int ldc, double *fake1, int szefake1, int flag1)
void CORE_dgemm_p2f1_quark (Quark *quark)

Detailed Description

PLASMA core_blas kernel PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver

Version:
2.4.5
Author:
Hatem Ltaief
Mathieu Faverge
Jakub Kurzak
Date:
2010-11-15 d Tue Nov 22 14:35:18 2011

Definition in file core_dgemm.c.


Function Documentation

void CORE_dgemm ( int  transA,
int  transB,
int  M,
int  N,
int  K,
double  alpha,
double *  A,
int  LDA,
double *  B,
int  LDB,
double  beta,
double *  C,
int  LDC 
)

Definition at line 28 of file core_dgemm.c.

References cblas_dgemm(), and CblasColMajor.

{
(CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB,
M, N, K,
(alpha), A, LDA,
B, LDB,
(beta), C, LDC);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void CORE_dgemm_f2_quark ( Quark quark)

Definition at line 171 of file core_dgemm.c.

References A, B, C, cblas_dgemm(), CblasColMajor, and quark_unpack_args_15.

{
int transA;
int transB;
int M;
int N;
int K;
double alpha;
double *A;
int LDA;
double *B;
int LDB;
double beta;
double *C;
int LDC;
void *fake1, *fake2;
quark_unpack_args_15(quark, transA, transB, M, N, K, alpha,
A, LDA, B, LDB, beta, C, LDC, fake1, fake2);
(CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB,
M, N, K,
(alpha), A, LDA,
B, LDB,
(beta), C, LDC);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void CORE_dgemm_p2_quark ( Quark quark)

Definition at line 234 of file core_dgemm.c.

References A, B, C, cblas_dgemm(), CblasColMajor, and quark_unpack_args_13.

{
int transA;
int transB;
int M;
int N;
int K;
double alpha;
double *A;
int LDA;
double **B;
int LDB;
double beta;
double *C;
int LDC;
quark_unpack_args_13(quark, transA, transB, M, N, K, alpha,
A, LDA, B, LDB, beta, C, LDC);
(CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB,
M, N, K,
(alpha), A, LDA,
*B, LDB,
(beta), C, LDC);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void CORE_dgemm_p2f1_quark ( Quark quark)

Definition at line 360 of file core_dgemm.c.

References A, B, C, cblas_dgemm(), CblasColMajor, and quark_unpack_args_14.

{
int transA;
int transB;
int M;
int N;
int K;
double alpha;
double *A;
int LDA;
double **B;
int LDB;
double beta;
double *C;
int LDC;
void *fake1;
quark_unpack_args_14(quark, transA, transB, M, N, K, alpha,
A, LDA, B, LDB, beta, C, LDC, fake1);
(CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB,
M, N, K,
(alpha), A, LDA,
*B, LDB,
(beta), C, LDC);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void CORE_dgemm_p3_quark ( Quark quark)

Definition at line 296 of file core_dgemm.c.

References A, B, C, cblas_dgemm(), CblasColMajor, and quark_unpack_args_13.

{
int transA;
int transB;
int M;
int N;
int K;
double alpha;
double *A;
int LDA;
double *B;
int LDB;
double beta;
double **C;
int LDC;
quark_unpack_args_13(quark, transA, transB, M, N, K, alpha,
A, LDA, B, LDB, beta, C, LDC);
(CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB,
M, N, K,
(alpha), A, LDA,
B, LDB,
(beta), *C, LDC);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void CORE_dgemm_quark ( Quark quark)

Definition at line 106 of file core_dgemm.c.

References A, B, C, cblas_dgemm(), CblasColMajor, and quark_unpack_args_13.

{
int transA;
int transB;
int m;
int n;
int k;
double alpha;
double *A;
int lda;
double *B;
int ldb;
double beta;
double *C;
int ldc;
quark_unpack_args_13(quark, transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
(CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB,
m, n, k,
(alpha), A, lda,
B, ldb,
(beta), C, ldc);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void QUARK_CORE_dgemm ( Quark quark,
Quark_Task_Flags task_flags,
int  transA,
int  transB,
int  m,
int  n,
int  k,
int  nb,
double  alpha,
double *  A,
int  lda,
double *  B,
int  ldb,
double  beta,
double *  C,
int  ldc 
)

Definition at line 46 of file core_dgemm.c.

References CORE_dgemm_quark(), DAG_CORE_GEMM, INOUT, INPUT, QUARK_Insert_Task(), and VALUE.

{
QUARK_Insert_Task(quark, CORE_dgemm_quark, task_flags,
sizeof(PLASMA_enum), &transA, VALUE,
sizeof(PLASMA_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(double), &alpha, VALUE,
sizeof(double)*nb*nb, A, INPUT,
sizeof(int), &lda, VALUE,
sizeof(double)*nb*nb, B, INPUT,
sizeof(int), &ldb, VALUE,
sizeof(double), &beta, VALUE,
sizeof(double)*nb*nb, C, INOUT,
sizeof(int), &ldc, VALUE,
0);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void QUARK_CORE_dgemm2 ( Quark quark,
Quark_Task_Flags task_flags,
int  transA,
int  transB,
int  m,
int  n,
int  k,
int  nb,
double  alpha,
double *  A,
int  lda,
double *  B,
int  ldb,
double  beta,
double *  C,
int  ldc 
)

Definition at line 74 of file core_dgemm.c.

References CORE_dgemm_quark(), DAG_CORE_GEMM, GATHERV, INOUT, INPUT, LOCALITY, QUARK_Insert_Task(), and VALUE.

{
QUARK_Insert_Task(quark, CORE_dgemm_quark, task_flags,
sizeof(PLASMA_enum), &transA, VALUE,
sizeof(PLASMA_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(double), &alpha, VALUE,
sizeof(double)*nb*nb, A, INPUT,
sizeof(int), &lda, VALUE,
sizeof(double)*nb*nb, B, INPUT,
sizeof(int), &ldb, VALUE,
sizeof(double), &beta, VALUE,
sizeof(double)*nb*nb, C, INOUT | LOCALITY | GATHERV,
sizeof(int), &ldc, VALUE,
0);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void QUARK_CORE_dgemm_f2 ( Quark quark,
Quark_Task_Flags task_flags,
int  transA,
int  transB,
int  m,
int  n,
int  k,
int  nb,
double  alpha,
double *  A,
int  lda,
double *  B,
int  ldb,
double  beta,
double *  C,
int  ldc,
double *  fake1,
int  szefake1,
int  flag1,
double *  fake2,
int  szefake2,
int  flag2 
)

Definition at line 135 of file core_dgemm.c.

References CORE_dgemm_f2_quark(), DAG_CORE_GEMM, INOUT, INPUT, LOCALITY, QUARK_Insert_Task(), and VALUE.

{
sizeof(PLASMA_enum), &transA, VALUE,
sizeof(PLASMA_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(double), &alpha, VALUE,
sizeof(double)*nb*nb, A, INPUT,
sizeof(int), &lda, VALUE,
sizeof(double)*nb*nb, B, INPUT,
sizeof(int), &ldb, VALUE,
sizeof(double), &beta, VALUE,
sizeof(double)*nb*nb, C, INOUT | LOCALITY,
sizeof(int), &ldc, VALUE,
sizeof(double)*szefake1, fake1, flag1,
sizeof(double)*szefake2, fake2, flag2,
0);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void QUARK_CORE_dgemm_p2 ( Quark quark,
Quark_Task_Flags task_flags,
int  transA,
int  transB,
int  m,
int  n,
int  k,
int  nb,
double  alpha,
double *  A,
int  lda,
double **  B,
int  ldb,
double  beta,
double *  C,
int  ldc 
)

Definition at line 202 of file core_dgemm.c.

References CORE_dgemm_p2_quark(), DAG_CORE_GEMM, INOUT, INPUT, LOCALITY, QUARK_Insert_Task(), and VALUE.

{
sizeof(PLASMA_enum), &transA, VALUE,
sizeof(PLASMA_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(double), &alpha, VALUE,
sizeof(double)*lda*nb, A, INPUT,
sizeof(int), &lda, VALUE,
sizeof(double*), B, INPUT,
sizeof(int), &ldb, VALUE,
sizeof(double), &beta, VALUE,
sizeof(double)*ldc*nb, C, INOUT | LOCALITY,
sizeof(int), &ldc, VALUE,
0);
}

Here is the call graph for this function:

void QUARK_CORE_dgemm_p2f1 ( Quark quark,
Quark_Task_Flags task_flags,
int  transA,
int  transB,
int  m,
int  n,
int  k,
int  nb,
double  alpha,
double *  A,
int  lda,
double **  B,
int  ldb,
double  beta,
double *  C,
int  ldc,
double *  fake1,
int  szefake1,
int  flag1 
)

Definition at line 326 of file core_dgemm.c.

References CORE_dgemm_p2f1_quark(), DAG_CORE_GEMM, INOUT, INPUT, LOCALITY, QUARK_Insert_Task(), and VALUE.

{
sizeof(PLASMA_enum), &transA, VALUE,
sizeof(PLASMA_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(double), &alpha, VALUE,
sizeof(double)*lda*nb, A, INPUT,
sizeof(int), &lda, VALUE,
sizeof(double*), B, INPUT,
sizeof(int), &ldb, VALUE,
sizeof(double), &beta, VALUE,
sizeof(double)*ldc*nb, C, INOUT | LOCALITY,
sizeof(int), &ldc, VALUE,
sizeof(double)*szefake1, fake1, flag1,
0);
}

Here is the call graph for this function:

void QUARK_CORE_dgemm_p3 ( Quark quark,
Quark_Task_Flags task_flags,
int  transA,
int  transB,
int  m,
int  n,
int  k,
int  nb,
double  alpha,
double *  A,
int  lda,
double *  B,
int  ldb,
double  beta,
double **  C,
int  ldc 
)

Definition at line 264 of file core_dgemm.c.

References CORE_dgemm_p3_quark(), DAG_CORE_GEMM, INOUT, INPUT, LOCALITY, QUARK_Insert_Task(), and VALUE.

{
sizeof(PLASMA_enum), &transA, VALUE,
sizeof(PLASMA_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(double), &alpha, VALUE,
sizeof(double)*lda*nb, A, INPUT,
sizeof(int), &lda, VALUE,
sizeof(double)*ldb*nb, B, INPUT,
sizeof(int), &ldb, VALUE,
sizeof(double), &beta, VALUE,
sizeof(double*), C, INOUT | LOCALITY,
sizeof(int), &ldc, VALUE,
0);
}

Here is the call graph for this function: