fupermod: Functional Performance Models of heterogeneous processors

Wrappers for BLAS libraries

Classes

struct  fupermod_gemm

Defines

#define FUPERMOD_MPI_FLOAT   MPI_DOUBLE

Typedefs

typedef double fupermod_float

Functions

fupermod_gemmfupermod_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