Skip to content

Commit

Permalink
tester: print metadata: PLASMA version, threads, BLAS version
Browse files Browse the repository at this point in the history
  • Loading branch information
mgates3 committed Feb 1, 2025
1 parent 6b5cdcf commit 3b6979e
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 7 deletions.
65 changes: 60 additions & 5 deletions test/test.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <omp.h>

#if defined( PLASMA_WITH_BLIS )
#include <blis/blis.h>
#elif defined( PLASMA_WITH_MKL )
#include <mkl.h>
#elif defined( PLASMA_WITH_OPENBLAS )
#include <cblas.h>
#endif

/******************************************************************************/
typedef void (*test_func_ptr)(param_value_t param[], bool run);
Expand Down Expand Up @@ -515,7 +524,7 @@ int main(int argc, char **argv)

// Print labels.
param_snap(param, pval);
print_header(routine, pval);
print_header(argc, argv, routine, pval);

// Iterate over parameters and run tests
plasma_init();
Expand All @@ -531,6 +540,10 @@ int main(int argc, char **argv)
} while (outer ? param_step_outer(param, 0) : param_step_inner(param));
plasma_finalize();

if (repeat == 1) {
printf( "\n" );
}

if (err) {
printf( "%% %d tests failed\n", err );
}
Expand Down Expand Up @@ -637,15 +650,57 @@ void print_usage(int label)
*
* @brief Prints column headers.
*
* @param[in] argc - args from main
* @param[in] argv - args from main
* @param[in] name - routine name
* @param[in,out] pval - array of parameter values
* @param[in] pval - array of parameter values
*
******************************************************************************/
void print_header(const char *name, param_value_t pval[])
void print_header(int argc, char* const* argv, const char *name, param_value_t pval[])
{
run_routine(name, pval, false);

printf("\n");
printf( "%% PLASMA %d.%d.%d, OpenMP num threads %d",
PLASMA_VERSION_MAJOR,
PLASMA_VERSION_MINOR,
PLASMA_VERSION_PATCH,
omp_get_max_threads() );

// Print CPU BLAS library and version, if known.
#if defined( PLASMA_WITH_ACCELERATE )
printf( ", Apple Accelerate" );
#elif defined( PLASMA_WITH_BLIS )
printf( ", %s", bli_info_get_version_str() );
#elif defined( PLASMA_WITH_ESSL )
printf( ", IBM ESSL" );
#elif defined( PLASMA_WITH_MKL )
MKLVersion mkl_version;
mkl_get_version( &mkl_version );
printf( ", Intel MKL %d.%d.%d",
mkl_version.MajorVersion,
mkl_version.MinorVersion,
mkl_version.UpdateVersion );
#elif defined( PLASMA_WITH_OPENBLAS )
printf( ", %s", OPENBLAS_VERSION );
#else
printf( ", unknown BLAS" );
#endif

// Print date and time.
char buf[ 1024 ];
time_t now = time( NULL );
strftime( buf, sizeof(buf), "%F %T", localtime( &now ) );
printf( ", %s\n", buf );

// Print input line.
int len = sizeof( buf );
int i = snprintf( buf, len, "%% input:" );
for (int arg = 0; arg < argc; ++arg) {
i += snprintf( &buf[ i ], len - i, " %s", argv[ arg ] );
}
printf( "%s\n\n", buf );

// Print column headers.
for (int i = 0; i < PARAM_SIZEOF; ++i) {
if (pval[i].used) {
switch (i) {
Expand Down Expand Up @@ -840,7 +895,7 @@ void param_init(param_t param[])
* @param[in,out] param - array of parameter iterators
*
******************************************************************************/
void param_read(int argc, char **argv, param_t param[])
void param_read(int argc, char* const* argv, param_t param[])
{
int err = 0;
const char *routine = argv[1];
Expand Down
4 changes: 2 additions & 2 deletions test/test.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,11 @@ static const int InfoSpacing = 11;
void print_main_usage(const char *program_name);
void print_routine_usage(const char *program_name, const char *name, param_value_t pval[]);
void print_usage(int label);
void print_header(const char *name, param_value_t param[]);
void print_header(int argc, char* const* argv, const char *name, param_value_t param[]);
int test_routine(const char *name, param_value_t param[], bool test);
void run_routine(const char *name, param_value_t pval[], bool run);
void param_init(param_t param[]);
void param_read(int argc, char **argv, param_t param[]);
void param_read(int argc, char* const* argv, param_t param[]);
int param_starts_with(const char *str, const char *prefix);
int scan_irange(const char **strp, int *start, int *end, int *step);
int scan_drange(const char **strp, double *start, double *end, double *step);
Expand Down

0 comments on commit 3b6979e

Please sign in to comment.