HiCMA
Hierarchical Computations on Manycore Architectures
hcore_zgemm.c File Reference
#include "coreblas/coreblas.h"
#include "coreblas/lapacke.h"
#include <assert.h>

Go to the source code of this file.

Macros

#define CBLAS_SADDR(_val)   (_val)
 

Functions

void hc_printmat (double *A, int m, int n, int ld)
 
void __qra (int _M, int maxrank, double *_CU, int ld_CU, int _Crk, int *pnew_CU_ncols, double *_AU, int ld_AU, int _Ark, double alpha, double beta, double *qrtauA)
 
void __qrb (int _M, int maxrank, double *_CV, int ld_CV, int _Crk, int *pnew_CV_ncols, double *_AV, int ld_AV, int _Ark, double *_BU, int ld_BU, double *_BV, int ld_BV, int _Brk, double *qrtauB, double *AcolBcolT)
 
void __svd (int _M, int maxrank, double *_CU, int ld_CU, double *_CV, int ld_CV, int _Crk, double *_U, int ld_U, double *_V, int ld_V, int *pnew_UVrk, int rank, double acc, double *_rA, double *_rB, double *_T, double *sigma, double *svdsuperb)
 
void __newu (int _M, int ncols_qA, double *_CU, int ld_CU, int _Crk, double *_U, int ld_U, int _Urk, double *qrtauA)
 
void __newv (int _M, int ncols_qB, double *_CV, int ld_CV, int _Crk, double *_V, int ld_V, int _Vrk, double *qrtauB)
 
void HCORE_zgemm (MORSE_enum transA, int transB, int M, int N, double alpha, double *AU, double *AV, double *Ark, int LDA, double *BU, double *BV, double *Brk, int LDB, double beta, double *CU, double *CV, double *Crk, int LDC, int rk, int maxrk, double acc, double *work)
 

Variables

int use_trmm = 1
 
int use_scratch
 
int gemm_print_index = 0
 
int gemm_print_mat = 0
 
int hc_nelm_limit = 512
 

Detailed Description

HiCMA HCORE kernels HiCMA is a software package provided by King Abdullah University of Science and Technology (KAUST)

Version
0.1.1
Author
Kadir Akbudak
Date
2018-11-08 normal z -> c d s

HiCMA HCORE kernels HiCMA is a software package provided by King Abdullah University of Science and Technology (KAUST)

Version
0.1.0
Author
Kadir Akbudak
Date
2017-11-16 normal z -> c d s

Definition in file hcore_zgemm.c.

Macro Definition Documentation

◆ CBLAS_SADDR

#define CBLAS_SADDR (   _val)    (_val)

Definition at line 25 of file hcore_zgemm.c.

Function Documentation

◆ hc_printmat()

void hc_printmat ( double *  A,
int  m,
int  n,
int  ld 
)

Definition at line 32 of file hcore_zgemm.c.

◆ __qra()

void __qra ( int  _M,
int  maxrank,
double *  _CU,
int  ld_CU,
int  _Crk,
int *  pnew_CU_ncols,
double *  _AU,
int  ld_AU,
int  _Ark,
double  alpha,
double  beta,
double *  qrtauA 
)

Definition at line 62 of file hcore_zgemm.c.

◆ __qrb()

void __qrb ( int  _M,
int  maxrank,
double *  _CV,
int  ld_CV,
int  _Crk,
int *  pnew_CV_ncols,
double *  _AV,
int  ld_AV,
int  _Ark,
double *  _BU,
int  ld_BU,
double *  _BV,
int  ld_BV,
int  _Brk,
double *  qrtauB,
double *  AcolBcolT 
)

B2 = ( (iA{2} * iB{2}') * iB{1}');

Definition at line 123 of file hcore_zgemm.c.

◆ __svd()

void __svd ( int  _M,
int  maxrank,
double *  _CU,
int  ld_CU,
double *  _CV,
int  ld_CV,
int  _Crk,
double *  _U,
int  ld_U,
double *  _V,
int  ld_V,
int *  pnew_UVrk,
int  rank,
double  acc,
double *  _rA,
double *  _rB,
double *  _T,
double *  sigma,
double *  svdsuperb 
)

rA START

rA END rB START



rB END SVD START


truncate according to rank

truncate according to acc

SVD END

Definition at line 198 of file hcore_zgemm.c.

◆ __newu()

void __newu ( int  _M,
int  ncols_qA,
double *  _CU,
int  ld_CU,
int  _Crk,
double *  _U,
int  ld_U,
int  _Urk,
double *  qrtauA 
)

Definition at line 385 of file hcore_zgemm.c.

◆ __newv()

void __newv ( int  _M,
int  ncols_qB,
double *  _CV,
int  ld_CV,
int  _Crk,
double *  _V,
int  ld_V,
int  _Vrk,
double *  qrtauB 
)

Definition at line 493 of file hcore_zgemm.c.

◆ HCORE_zgemm()

void HCORE_zgemm ( MORSE_enum  transA,
int  transB,
int  M,
int  N,
double  alpha,
double *  AU,
double *  AV,
double *  Ark,
int  LDA,
double *  BU,
double *  BV,
double *  Brk,
int  LDB,
double  beta,
double *  CU,
double *  CV,
double *  Crk,
int  LDC,
int  rk,
int  maxrk,
double  acc,
double *  work 
)

Performs C = alpha A B + beta C

Definition at line 568 of file hcore_zgemm.c.

Variable Documentation

◆ use_trmm

int use_trmm = 1

Definition at line 27 of file hcore_zgemm.c.

◆ use_scratch

int use_scratch

Definition at line 90 of file time_zgemm_tile.c.

◆ gemm_print_index

int gemm_print_index = 0

Definition at line 29 of file hcore_zgemm.c.

◆ gemm_print_mat

int gemm_print_mat = 0

Definition at line 30 of file hcore_zgemm.c.

◆ hc_nelm_limit

int hc_nelm_limit = 512

Definition at line 31 of file hcore_zgemm.c.