fupermod: Functional Performance Models of heterogeneous processors
Classes | |
struct | fupermod_gemm |
Defines | |
#define | FUPERMOD_MPI_FLOAT MPI_DOUBLE |
Typedefs | |
typedef double | fupermod_float |
Functions | |
fupermod_gemm * | fupermod_gemm_alloc (fupermod_process_conf *conf) |
void | fupermod_gemm_execute (struct fupermod_gemm *gemm, const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const fupermod_float alpha, const fupermod_float *A, const int lda, const fupermod_float *B, const int ldb, const fupermod_float beta, fupermod_float *C, const int ldc) |
void | fupermod_gemm_free (fupermod_gemm *gemm) |
Detailed Description
Main data structures are BLAS operation workspaces, for example fupermod_gemm. A BLAS operation workspace encapsulates the internal state of the operation and provides the execute method, using CBLAS interface.
Tests and examples
Define Documentation
#define FUPERMOD_MPI_FLOAT MPI_DOUBLE |
Double-precision floating-point data type for MPI
Typedef Documentation
typedef double fupermod_float |
Double-precision floating-point data type
Function Documentation
fupermod_gemm* fupermod_gemm_alloc | ( | fupermod_process_conf * | conf | ) |
Allocate GEMM workspace
void fupermod_gemm_execute | ( | struct fupermod_gemm * | gemm, | |
const enum CBLAS_ORDER | Order, | |||
const enum CBLAS_TRANSPOSE | TransA, | |||
const enum CBLAS_TRANSPOSE | TransB, | |||
const int | M, | |||
const int | N, | |||
const int | K, | |||
const fupermod_float | alpha, | |||
const fupermod_float * | A, | |||
const int | lda, | |||
const fupermod_float * | B, | |||
const int | ldb, | |||
const fupermod_float | beta, | |||
fupermod_float * | C, | |||
const int | ldc | |||
) |
Execute GEMM
void fupermod_gemm_free | ( | fupermod_gemm * | gemm | ) |
Free GEMM workspace