Add AOCL DTL logging.

Added logging for syr,syr2,syrk,syr2k,trmm,trmv,trsv.

	AMD-Internal: [CPUPL-1256]

Change-Id: I628ef5d48796cfc68ec68886b8c1b0555261b3d1
This commit is contained in:
mkurumel
2020-11-05 15:16:05 +05:30
parent bded7f9392
commit 39f7a4eecf
9 changed files with 427 additions and 2 deletions

View File

@@ -1020,4 +1020,278 @@ void AOCL_DTL_log_nrm2_sizes( int8 loglevel,
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
//Level-2
void AOCL_DTL_log_syr2_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_int m,
const void* alpha,
const f77_int incx,
const f77_int incy,
const f77_int lda,
const char* filename,
const char* function_name,
int line)
{
char buffer[256];
double alpha_real, alpha_imag;
if(dt_type == 's' || dt_type == 'S' )
{
alpha_real = *(float*)alpha;
alpha_imag = 0.0;
}
else if(dt_type == 'd' || dt_type == 'D' )
{
alpha_real = *(double*) alpha;
alpha_imag = 0.0;
}
else if(dt_type == 'c' || dt_type == 'C' )
{
alpha_real = (float)(((scomplex*)alpha)->real);
alpha_imag = (float)(((scomplex*)alpha)->imag);
}
else if(dt_type == 'z' || dt_type == 'Z' )
{
alpha_real = ((dcomplex*)alpha)->real;
alpha_imag = ((dcomplex*)alpha)->imag;
}
// { uploa, m, alpha_real, alpha_imag, incx, incy, lda}
sprintf(buffer, " %c %c %ld %lf %lf %lu %lu %lu",
dt_type, uploa, (dim_t)m, alpha_real, alpha_imag, (dim_t)incx, (dim_t)incy, (dim_t)lda);
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
void AOCL_DTL_log_syr2k_sizes(int8 loglevel,
char dt_type,
const f77_char uploc,
const f77_char transa,
const f77_int m,
const f77_int k,
const void* alpha,
const f77_int lda,
const f77_int ldb,
const void* beta,
const f77_int ldc,
const char* filename,
const char* function_name,
int line)
{
char buffer[256];
double alpha_real, alpha_imag, beta_real, beta_imag;
if(dt_type == 's' || dt_type == 'S' )
{
alpha_real = *(float*)alpha;
alpha_imag = 0.0;
beta_real = *(float*)beta;
beta_imag = 0.0;
}
else if(dt_type == 'd' || dt_type == 'D' )
{
alpha_real = *(double*) alpha;
alpha_imag = 0.0;
beta_real = *(double*) beta;
beta_imag = 0.0;
}
else if(dt_type == 'c' || dt_type == 'C' )
{
alpha_real = (float)(((scomplex*)alpha)->real);
alpha_imag = (float)(((scomplex*)alpha)->imag);
beta_real = (float)(((scomplex*)beta)->real);
beta_imag = (float)(((scomplex*)beta)->imag);
}
else if(dt_type == 'z' || dt_type == 'Z' )
{
alpha_real = ((dcomplex*)alpha)->real;
alpha_imag = ((dcomplex*)alpha)->imag;
beta_real = ((dcomplex*)beta)->real;
beta_imag = ((dcomplex*)beta)->imag;
}
// { uploc, transa, m, k, alpha_real, alpha_imag, lda, ldb, beta_real, beta_imag, ldc}
sprintf(buffer, " %c %c %c %ld %ld %lf %lf %lu %lu %lf %lf %lu",
dt_type, uploc, transa, (dim_t)m, (dim_t)k, alpha_real, alpha_imag, (dim_t)lda, (dim_t)ldb, beta_real, beta_imag ,(dim_t)ldc);
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
void AOCL_DTL_log_syr_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_int m,
const void* alpha,
const f77_int incx,
const f77_int lda,
const char* filename,
const char* function_name,
int line)
{
char buffer[256];
double alpha_real, alpha_imag;
if(dt_type == 's' || dt_type == 'S' )
{
alpha_real = *(float*)alpha;
alpha_imag = 0.0;
}
else if(dt_type == 'd' || dt_type == 'D' )
{
alpha_real = *(double*) alpha;
alpha_imag = 0.0;
}
else if(dt_type == 'c' || dt_type == 'C' )
{
alpha_real = (float)(((scomplex*)alpha)->real);
alpha_imag = (float)(((scomplex*)alpha)->imag);
}
else if(dt_type == 'z' || dt_type == 'Z' )
{
alpha_real = ((dcomplex*)alpha)->real;
alpha_imag = ((dcomplex*)alpha)->imag;
}
// {S, D,C, Z} { uploa, m, alpha_real, alpha_imag, incx, lda}
sprintf(buffer, " %c %c %ld %lf %lf %lu %lu",
dt_type, uploa, (dim_t)m, alpha_real, alpha_imag, (dim_t)incx, (dim_t)lda);
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
void AOCL_DTL_log_syrk_sizes(int8 loglevel,
char dt_type,
const f77_char uploc,
const f77_char transa,
const f77_int m,
const f77_int k,
const void* alpha,
const f77_int lda,
const void* beta,
const f77_int ldc,
const char* filename,
const char* function_name,
int line)
{
char buffer[256];
double alpha_real, alpha_imag, beta_real, beta_imag;
if(dt_type == 's' || dt_type == 'S' )
{
alpha_real = *(float*)alpha;
alpha_imag = 0.0;
beta_real = *(float*)beta;
beta_imag = 0.0;
}
else if(dt_type == 'd' || dt_type == 'D' )
{
alpha_real = *(double*) alpha;
alpha_imag = 0.0;
beta_real = *(double*) beta;
beta_imag = 0.0;
}
else if(dt_type == 'c' || dt_type == 'C' )
{
alpha_real = (float)(((scomplex*)alpha)->real);
alpha_imag = (float)(((scomplex*)alpha)->imag);
beta_real = (float)(((scomplex*)beta)->real);
beta_imag = (float)(((scomplex*)beta)->imag);
}
else if(dt_type == 'z' || dt_type == 'Z' )
{
alpha_real = ((dcomplex*)alpha)->real;
alpha_imag = ((dcomplex*)alpha)->imag;
beta_real = ((dcomplex*)beta)->real;
beta_imag = ((dcomplex*)beta)->imag;
}
// {S, D,C, Z} { uploc, transa, m, k, alpha_real, alpha_imag, lda, beta_real, beta_imag, ldc}
sprintf(buffer, " %c %c %c %ld %ld %lf %lf %lu %lf %lf %lu",
dt_type, uploc, transa, (dim_t)m, (dim_t)k, alpha_real, alpha_imag, (dim_t)lda, beta_real, beta_imag, (dim_t)ldc);
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
void AOCL_DTL_log_trmm_sizes(int8 loglevel,
char dt_type,
const f77_char side,
const f77_char uploa,
const f77_char transa,
const f77_char diaga,
const f77_int m,
const f77_int n,
const void* alpha,
const f77_int lda,
const f77_int ldb,
const char* filename,
const char* function_name,
int line)
{
char buffer[256];
double alpha_real, alpha_imag;
if(dt_type == 's' || dt_type == 'S' )
{
alpha_real = *(float*)alpha;
alpha_imag = 0.0;
}
else if(dt_type == 'd' || dt_type == 'D' )
{
alpha_real = *(double*) alpha;
alpha_imag = 0.0;
}
else if(dt_type == 'c' || dt_type == 'C' )
{
alpha_real = (float)(((scomplex*)alpha)->real);
alpha_imag = (float)(((scomplex*)alpha)->imag);
}
else if(dt_type == 'z' || dt_type == 'Z' )
{
alpha_real = ((dcomplex*)alpha)->real;
alpha_imag = ((dcomplex*)alpha)->imag;
}
// {S, D,C, Z} { side, uploa, transa, diaga, m, n, alpha_real, alpha_imag, lda, ldb}
sprintf(buffer, " %c %c %c %c %c %ld %ld %lf %lf %lu %lu",
dt_type, side, uploa, transa, diaga, (dim_t)m, (dim_t)n, alpha_real, alpha_imag, (dim_t)lda, (dim_t)ldb);
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
void AOCL_DTL_log_trmv_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_char transa,
const f77_char diaga,
const f77_int m,
const f77_int lda,
const f77_int incx,
const char* filename,
const char* function_name,
int line)
{
char buffer[256];
// {S, D,C, Z} { side, uploa, transa, diaga, m, lda, incx}
sprintf(buffer, " %c %c %c %c %ld %lu %lu",
dt_type, uploa, transa, diaga, (dim_t)m, (dim_t)lda, (dim_t)incx);
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
void AOCL_DTL_log_trsv_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_char transa,
const f77_char diaga,
const f77_int m,
const f77_int lda,
const f77_int incx,
const char* filename,
const char* function_name,
int line)
{
char buffer[256];
// {S, D,C, Z} { side, uploa, transa, diaga, m, lda, incx}
sprintf(buffer, " %c %c %c %c %ld %lu %lu",
dt_type, uploa, transa, diaga, (dim_t)m, (dim_t)lda, (dim_t)incx);
DTL_Trace(loglevel, TRACE_TYPE_LOG, function_name, function_name, line, buffer);
}
#endif

View File

@@ -266,7 +266,99 @@ void AOCL_DTL_log_dotv_sizes( int8 loglevel,
int line
);
// Level-3 Macros
//Level-2 logging
void AOCL_DTL_log_syr_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_int m,
const void* alpha,
const f77_int incx,
const f77_int lda,
const char* filename,
const char* function_name,
int line);
void AOCL_DTL_log_syr2_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_int m,
const void* alpha,
const f77_int incx,
const f77_int incy,
const f77_int lda,
const char* filename,
const char* function_name,
int line);
void AOCL_DTL_log_trmv_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_char transa,
const f77_char diaga,
const f77_int m,
const f77_int lda,
const f77_int incx,
const char* filename,
const char* function_name,
int line);
void AOCL_DTL_log_trsv_sizes(int8 loglevel,
char dt_type,
const f77_char uploa,
const f77_char transa,
const f77_char diaga,
const f77_int m,
const f77_int lda,
const f77_int incx,
const char* filename,
const char* function_name,
int line);
// Level-3 Logging
void AOCL_DTL_log_syrk_sizes(int8 loglevel,
char dt_type,
const f77_char uploc,
const f77_char transa,
const f77_int m,
const f77_int k,
const void* alpha,
const f77_int lda,
const void* beta,
const f77_int ldc,
const char* filename,
const char* function_name,
int line);
void AOCL_DTL_log_syr2k_sizes(int8 loglevel,
char dt_type,
const f77_char uploc,
const f77_char transa,
const f77_int m,
const f77_int k,
const void* alpha,
const f77_int lda,
const f77_int ldb,
const void* beta,
const f77_int ldc,
const char* filename,
const char* function_name,
int line);
void AOCL_DTL_log_trmm_sizes(int8 loglevel,
char dt_type,
const f77_char side,
const f77_char uploa,
const f77_char transa,
const f77_char diaga,
const f77_int m,
const f77_int n,
const void* alpha,
const f77_int lda,
const f77_int ldb,
const char* filename,
const char* function_name,
int line);
#define AOCL_DTL_LOG_GEMM_INPUTS(loglevel, alpha, a, b, beta, c) \
AOCL_DTL_log_gemm_sizes(loglevel, alpha, a, b, beta, c, __FILE__, __FUNCTION__, __LINE__);
@@ -347,6 +439,33 @@ void AOCL_DTL_log_dotv_sizes( int8 loglevel,
#define AOCL_DTL_LOG_DOTV_INPUTS(loglevel, dt_type, transa, n, incx, incy) \
AOCL_DTL_log_dotv_sizes(loglevel, dt_type, transa, n, incx, incy, __FILE__, __FUNCTION__, __LINE__); \
#define AOCL_DTL_LOG_SYR2_INPUTS(loglevel, dt_type, uploa, m, alpha, incx, incy, lda) \
AOCL_DTL_log_syr2_sizes(loglevel, dt_type, uploa, m, alpha, incx, incy, lda, __FILE__,\
__FUNCTION__,__LINE__);
#define AOCL_DTL_LOG_SYR2K_INPUTS(loglevel, dt_type, uploc, transa, m, k, alpha, lda, ldb, beta, ldc) \
AOCL_DTL_log_syr2k_sizes(loglevel, dt_type, uploc, transa, m, k, alpha, lda, ldb, beta,\
ldc, __FILE__, __FUNCTION__,__LINE__);
#define AOCL_DTL_LOG_SYR_INPUTS(loglevel, dt_type, uploa, m, alpha, incx, lda) \
AOCL_DTL_log_syr_sizes(loglevel, dt_type, uploa, m, alpha, incx, lda,\
__FILE__,__FUNCTION__,__LINE__);
#define AOCL_DTL_LOG_SYRK_INPUTS(loglevel, dt_type, uploc, transa, m, k, alpha, lda, beta, ldc) \
AOCL_DTL_log_syrk_sizes(loglevel, dt_type, uploc, transa, m, k, alpha, lda, beta, ldc, __FILE__,\
__FUNCTION__,__LINE__);
#define AOCL_DTL_LOG_TRMM_INPUTS(loglevel, dt_type, side, uploa, transa, diaga, m, n, alpha, lda, ldb) \
AOCL_DTL_log_trmm_sizes(loglevel, dt_type, side, uploa, transa, diaga, m, n, alpha, lda, ldb, __FILE__,\
__FUNCTION__,__LINE__);
#define AOCL_DTL_LOG_TRMV_INPUTS(loglevel, dt_type, uploa, transa, diaga, m, lda, incx) \
AOCL_DTL_log_trmv_sizes(loglevel, dt_type, uploa, transa, diaga, m, lda, incx,\
__FILE__,__FUNCTION__,__LINE__);
#define AOCL_DTL_LOG_TRSV_INPUTS(loglevel, dt_type, uploa, transa, diaga, m, lda, incx ) \
AOCL_DTL_log_trsv_sizes(loglevel, dt_type, uploa, transa, diaga, m, lda, incx,\
__FILE__,__FUNCTION__,__LINE__);
#else
#define AOCL_DTL_LOG_GEMM_INPUTS(loglevel, alpha, a, b, beta, c)
@@ -393,6 +512,20 @@ void AOCL_DTL_log_dotv_sizes( int8 loglevel,
#define AOCL_DTL_LOG_DOTV_INPUTS(loglevel, dt_type, transa, n, incx, incy)
#define AOCL_DTL_LOG_SYR2_INPUTS(loglevel, dt_type, uploa, m, alpha, incx, incy, lda)
#define AOCL_DTL_LOG_SYR2K_INPUTS(loglevel, dt_type, uploc, transa, m, k, alpha, lda, ldb, beta, ldc)
#define AOCL_DTL_LOG_SYR_INPUTS(loglevel, dt_type, uploa, m, alpha, incx, lda)
#define AOCL_DTL_LOG_SYRK_INPUTS(loglevel, dt_type, uploc, transa, m, k, alpha, lda, beta, ldc)
#define AOCL_DTL_LOG_TRMM_INPUTS(loglevel, dt_type, side, uploa, transa, diaga, m, n, alpha, lda, ldb)
#define AOCL_DTL_LOG_TRMV_INPUTS(loglevel, dt_type, uploa, transa, diaga, m, lda, incx)
#define AOCL_DTL_LOG_TRSV_INPUTS(loglevel, dt_type, uploa, transa, diaga, m, lda, incx )
#endif

View File

@@ -52,6 +52,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_SYR_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(uploa),\
*m, (void*)alpha, *incx, *lda) \
uplo_t blis_uploa; \
dim_t m0; \
ftype* x0; \

View File

@@ -53,6 +53,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_SYR2_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(uploa),\
*m, (void*)alpha, *incx, *incy, *lda) \
uplo_t blis_uploa; \
dim_t m0; \
ftype* x0; \
@@ -115,4 +117,3 @@ void PASTEF77(ch,blasname) \
#ifdef BLIS_ENABLE_BLAS
INSERT_GENTFUNCRO_BLAS( syr2, syr2 )
#endif

View File

@@ -59,6 +59,7 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_SYR2K_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *uploc, *transa, *m, *k, (void*)alpha, *lda, *ldb, (void*)beta, *ldc ) \
uplo_t blis_uploc; \
trans_t blis_transa; \
dim_t m0, k0; \
@@ -149,6 +150,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_SYR2K_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(uploc),\
*MKSTR(transa), *m, *k, (void*)alpha, *lda, *ldb, (void*)beta, *ldc ) \
uplo_t blis_uploc; \
trans_t blis_transa; \
dim_t m0, k0; \

View File

@@ -58,6 +58,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_SYRK_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(uploc),\
*MKSTR(transa), *m, *k, *alpha, *lda, (void*)beta, *ldc) \
uplo_t blis_uploc; \
trans_t blis_transa; \
dim_t m0, k0; \
@@ -141,6 +143,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_SYRK_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(uploc),\
*MKSTR(transa), *m, *k, (void*)alpha, *lda, (void*)beta, *ldc) \
uplo_t blis_uploc; \
trans_t blis_transa; \
dim_t m0, k0; \

View File

@@ -59,6 +59,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_TRMM_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(side), \
*MKSTR(uploa), *MKSTR(transa), *MKSTR(diaga), *m, *n, *alpha, *lda, *ldb) \
side_t blis_side; \
uplo_t blis_uploa; \
trans_t blis_transa; \
@@ -141,6 +143,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_TRMM_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(side), *MKSTR(uploa),\
*MKSTR(transa), *MKSTR(diaga), *m, *n, (void*)alpha, *lda, *ldb) \
side_t blis_side; \
uplo_t blis_uploa; \
trans_t blis_transa; \

View File

@@ -53,6 +53,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_TRMV_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(uploa), \
*MKSTR(transa), *MKSTR(diaga), *m, *lda, *incx) \
uplo_t blis_uploa; \
trans_t blis_transa; \
diag_t blis_diaga; \

View File

@@ -53,6 +53,8 @@ void PASTEF77(ch,blasname) \
) \
{ \
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1) \
AOCL_DTL_LOG_TRSV_INPUTS(AOCL_DTL_LEVEL_TRACE_1, *MKSTR(ch), *MKSTR(uploa), \
*MKSTR(transa), *MKSTR(diaga), *m, *lda, *incx) \
uplo_t blis_uploa; \
trans_t blis_transa; \
diag_t blis_diaga; \