mirror of
https://github.com/amd/blis.git
synced 2026-05-24 18:34:40 +00:00
Gtestsuite : Fixing issue on Windows OS
1. Fixed issue related to linking reference library. 2. Clean-up of how reference library variables are set. 2. Compilation error related to std::max() and std::min(). AMD-Internal: [CPUPL-4879] Change-Id: I427a4a4c0ea56a340a8bbd1a6649252e9680b937
This commit is contained in:
@@ -151,93 +151,79 @@ option(TEST_UPPERCASE_ARGS "Test upper case character arguments" OFF)
|
||||
# Option to enable testing with thresholds set to zero.
|
||||
option(THRESHOLD_ZERO "Set thresholds to zero" OFF)
|
||||
|
||||
if(LINUX)
|
||||
if(REF_LIB)
|
||||
get_filename_component(REFLIB_PATH ${REF_LIB}/.. ABSOLUTE)
|
||||
get_filename_component(library ${REF_LIB} NAME)
|
||||
find_library(reflib NAMES ${library} PATHS ${REFLIB_PATH} NO_DEFAULT_PATH)
|
||||
if(${reflib} STREQUAL reflib-NOTFOUND)
|
||||
message(FATAL_ERROR "Reference Library not found : " ${REF_LIB})
|
||||
else()
|
||||
message(STATUS "Found Reference Library : " ${reflib})
|
||||
endif()
|
||||
if(REF_LIB)
|
||||
get_filename_component(REFLIB_PATH ${REF_LIB}/.. ABSOLUTE)
|
||||
get_filename_component(library ${REF_LIB} NAME)
|
||||
find_library(reflib NAMES ${library} PATHS ${REFLIB_PATH} NO_DEFAULT_PATH)
|
||||
if(${reflib} STREQUAL reflib-NOTFOUND)
|
||||
message(FATAL_ERROR "Reference Library not found : " ${REF_LIB})
|
||||
else()
|
||||
# Set the possible values of theading libraries for cmake-gui
|
||||
set_property(CACHE REF_CBLAS PROPERTY STRINGS "OpenBLAS" "Netlib" "MKL")
|
||||
if(NOT ((REF_CBLAS STREQUAL "OpenBLAS") OR (REF_CBLAS STREQUAL "Netlib") OR(REF_CBLAS STREQUAL "MKL")))
|
||||
message(FATAL_ERROR "REF_CBLAS option '${REF_CBLAS}' is not supported. Please, use one of the following options \
|
||||
during CMake invokation: OpenBLAS, Netlib, MKL or modify CMakeLists.txt to include this option.")
|
||||
endif()
|
||||
if(REF_CBLAS STREQUAL "OpenBLAS")
|
||||
if(NOT(OPENBLAS_PATH))
|
||||
message(FATAL_ERROR "Need to provide an OpenBLAS installation path \
|
||||
during CMake invokation when OpenBLAS is used for reference results. Please use \
|
||||
$ cmake .. -DOPENBLAS_PATH=/home/username/openblas_installation")
|
||||
endif()
|
||||
find_library(reflib NAMES openblas PATHS ${OPENBLAS_PATH} NO_DEFAULT_PATH)
|
||||
if(${reflib} STREQUAL reflib-NOTFOUND)
|
||||
message(FATAL_ERROR "OpenBLAS Reference Library not found : " ${OPENBLAS_PATH})
|
||||
else()
|
||||
message(STATUS "Found OpenBLAS Reference Library : " ${reflib})
|
||||
endif()
|
||||
set(REF_LIB ${reflib})
|
||||
elseif(REF_CBLAS STREQUAL "Netlib")
|
||||
if(NOT(NETLIB_PATH))
|
||||
message(FATAL_ERROR "Need to provide a Netlib installation path \
|
||||
during CMake invokation when Netlib is used for reference results. Please use \
|
||||
$ cmake .. -DNETLIB_PATH=/home/username/netlib_installation")
|
||||
endif()
|
||||
if(INT_SIZE STREQUAL "32")
|
||||
find_library(netlib NAMES cblas PATHS ${NETLIB_PATH} NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library(netlib NAMES cblas64 PATHS ${NETLIB_PATH} NO_DEFAULT_PATH)
|
||||
endif()
|
||||
if(${netlib} STREQUAL netlib-NOTFOUND)
|
||||
message(FATAL_ERROR "Netlib Reference Library not found : " ${NETLIB_PATH})
|
||||
else()
|
||||
message(STATUS "Found Netlib Reference Library : " ${netlib})
|
||||
endif()
|
||||
set(REF_LIB ${netlib})
|
||||
elseif(REF_CBLAS STREQUAL "MKL")
|
||||
set(MKL_PATH $ENV{MKLROOT}/lib/intel64
|
||||
CACHE STRING "The path to MKL.")
|
||||
find_library(mkllib NAMES mkl_rt PATHS ${MKL_PATH} NO_DEFAULT_PATH)
|
||||
if(${mkllib} STREQUAL mkllib-NOTFOUND)
|
||||
message(FATAL_ERROR "MKL Reference Library not found : " ${MKL_PATH})
|
||||
else()
|
||||
message(STATUS "Found MKL Reference Library : " ${mkllib})
|
||||
endif()
|
||||
set(REF_LIB ${mkllib})
|
||||
else()
|
||||
message(FATAL_ERROR "Need to set up a reference library. Please use on of the following options \
|
||||
during CMake invokation: -DREF_CBLAS=Netlib or -DREF_CBLAS=OpenBLAS or -DREF_CBLAS=MKL")
|
||||
endif()
|
||||
message(STATUS "Found Reference Library : " ${reflib})
|
||||
endif()
|
||||
else() #WIN32
|
||||
# Use REF_BLAS to set the library that will be used for reference results.
|
||||
set(REF_CBLAS CACHE STRING "Library used to compute reference results.")
|
||||
else()
|
||||
# Set the possible values of theading libraries for cmake-gui
|
||||
set_property(CACHE REF_CBLAS PROPERTY STRINGS "OpenBLAS" "MKL")
|
||||
if(NOT ((REF_CBLAS STREQUAL "OpenBLAS") OR (REF_CBLAS STREQUAL "MKL")))
|
||||
set_property(CACHE REF_CBLAS PROPERTY STRINGS "OpenBLAS" "Netlib" "MKL")
|
||||
if(NOT ((REF_CBLAS STREQUAL "OpenBLAS") OR (REF_CBLAS STREQUAL "Netlib") OR(REF_CBLAS STREQUAL "MKL")))
|
||||
message(FATAL_ERROR "REF_CBLAS option '${REF_CBLAS}' is not supported. Please, use one of the following options \
|
||||
during CMake invokation: OpenBLAS, MKL or modify CMakeLists.txt to include this option.")
|
||||
during CMake invokation: OpenBLAS, Netlib, MKL or modify CMakeLists.txt to include this option.")
|
||||
endif()
|
||||
|
||||
if(LINUX)
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
|
||||
set(LIBOpenBLAS openblas)
|
||||
set(LIBCLAS cblas)
|
||||
set(LIBCLAS64 cblas64)
|
||||
set(LIBMKL mkl_rt)
|
||||
else()
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
|
||||
set(LIBOpenBLAS libopenblas)
|
||||
set(LIBMKL mkl_rt.2)
|
||||
endif()
|
||||
|
||||
if(REF_CBLAS STREQUAL "OpenBLAS")
|
||||
if(NOT(OPENBLAS_PATH))
|
||||
message(FATAL_ERROR "Need to provide an OpenBLAS installation path \
|
||||
during CMake invokation when OpenBLAS is used for reference results. Please use \
|
||||
$ cmake .. -DOPENBLAS_PATH=/home/username/openblas_installation")
|
||||
during CMake invokation when OpenBLAS is used for reference results. Please use \
|
||||
$ cmake .. -DOPENBLAS_PATH=/home/username/openblas_installation")
|
||||
endif()
|
||||
set(REF_LIB "${OPENBLAS_PATH}/libopenblas.dll" CACHE STRING "Reference OpenBLAS Library")
|
||||
message(STATUS "Found OpenBLAS Reference Library : " ${REF_LIB})
|
||||
find_library(reflib NAMES ${LIBOpenBLAS} PATHS ${OPENBLAS_PATH} NO_DEFAULT_PATH)
|
||||
if(${reflib} STREQUAL reflib-NOTFOUND)
|
||||
message(FATAL_ERROR "OpenBLAS Reference Library not found : " ${OPENBLAS_PATH})
|
||||
else()
|
||||
message(STATUS "Found OpenBLAS Reference Library : " ${reflib})
|
||||
endif()
|
||||
set(REF_LIB ${reflib})
|
||||
elseif(REF_CBLAS STREQUAL "Netlib")
|
||||
if(NOT(NETLIB_PATH))
|
||||
message(FATAL_ERROR "Need to provide a Netlib installation path \
|
||||
during CMake invokation when Netlib is used for reference results. Please use \
|
||||
$ cmake .. -DNETLIB_PATH=/home/username/netlib_installation")
|
||||
endif()
|
||||
if(INT_SIZE STREQUAL "32")
|
||||
find_library(netlib NAMES ${LIBCLAS} PATHS ${NETLIB_PATH} NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library(netlib NAMES ${LIBCLAS64} PATHS ${NETLIB_PATH} NO_DEFAULT_PATH)
|
||||
endif()
|
||||
if(${netlib} STREQUAL netlib-NOTFOUND)
|
||||
message(FATAL_ERROR "Netlib Reference Library not found : " ${NETLIB_PATH})
|
||||
else()
|
||||
message(STATUS "Found Netlib Reference Library : " ${netlib})
|
||||
endif()
|
||||
set(REF_LIB ${netlib})
|
||||
elseif(REF_CBLAS STREQUAL "MKL")
|
||||
if(NOT(MKL_PATH))
|
||||
message(FATAL_ERROR "Need to provide an MKL_PATH installation path \
|
||||
during CMake invokation when MKL] is used for reference results. Please use \
|
||||
$ cmake .. -DMKL_PATH=/home/username/path_to_mkl_rt")
|
||||
set(MKL_PATH $ENV{MKLROOT}/lib/intel64 CACHE STRING "The path to MKL.")
|
||||
find_library(mkllib NAMES ${LIBMKL} PATHS ${MKL_PATH} NO_DEFAULT_PATH)
|
||||
if(${mkllib} STREQUAL mkllib-NOTFOUND)
|
||||
message(FATAL_ERROR "MKL Reference Library not found : " ${MKL_PATH})
|
||||
else()
|
||||
message(STATUS "Found MKL Reference Library : " ${mkllib})
|
||||
endif()
|
||||
set(REF_LIB "${MKL_PATH}/mkl_rt.2.dll" CACHE STRING "Reference MKL Library")
|
||||
message(STATUS "Found MKL Reference Library : " ${REF_LIB})
|
||||
set(REF_LIB ${mkllib})
|
||||
else()
|
||||
message(FATAL_ERROR "Need to set up a reference library. Please use on of the following options \
|
||||
during CMake invokation: -DREF_CBLAS=Netlib or -DREF_CBLAS=OpenBLAS or -DREF_CBLAS=MKL")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ static void test_amaxv( gtint_t n, gtint_t incx, double thresh )
|
||||
//----------------------------------------------------------
|
||||
// Compute component-wise error.
|
||||
//----------------------------------------------------------
|
||||
computediff( idx, idx_ref );
|
||||
EXPECT_EQ(idx, idx_ref) << "Values are different : act_val : " << idx << " ref_val :" << idx_ref;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -99,5 +99,5 @@ static void test_amaxv( gtint_t n, gtint_t incx, gtint_t xi, T xi_exval,
|
||||
//----------------------------------------------------------
|
||||
// Compute component-wise error.
|
||||
//----------------------------------------------------------
|
||||
computediff( idx, idx_ref, true );
|
||||
EXPECT_EQ(idx, idx_ref) << "Values are different : act_val : " << idx << " ref_val :" << idx_ref;
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ void test_trsv(
|
||||
if ( is_evt_test )
|
||||
{
|
||||
dim_t n_idx = rand() % n;
|
||||
dim_t m_idx = std::max((dim_t)0, n_idx - 1);
|
||||
dim_t m_idx = (std::max)((dim_t)0, n_idx - 1);
|
||||
a_ptr[ m_idx + (n_idx * lda) ] = evt_a;
|
||||
a_ptr[ m_idx + (m_idx *lda) ] = evt_a;
|
||||
}
|
||||
|
||||
@@ -73,22 +73,22 @@ void test_gemmt( char storage, char uplo, char trnsa, char trnsb, gtint_t n,
|
||||
|
||||
if ( is_evt_test )
|
||||
{
|
||||
dim_t n_rand = rand() % std::min(n, k);
|
||||
dim_t k_rand = rand() % std::min(n, k);
|
||||
dim_t n_rand = rand() % (std::min)(n, k);
|
||||
dim_t k_rand = rand() % (std::min)(n, k);
|
||||
a_ptr[n_rand + k_rand * lda] = evt_a;
|
||||
}
|
||||
|
||||
if ( is_evt_test )
|
||||
{
|
||||
dim_t n_rand = rand() % std::min(n, k);
|
||||
dim_t k_rand = rand() % std::min(n, k);
|
||||
dim_t n_rand = rand() % (std::min)(n, k);
|
||||
dim_t k_rand = rand() % (std::min)(n, k);
|
||||
b_ptr[n_rand + k_rand * lda] = evt_a;
|
||||
}
|
||||
|
||||
if ( is_evt_test )
|
||||
{
|
||||
dim_t n_rand = rand() % std::min(n, k);
|
||||
dim_t k_rand = rand() % std::min(n, k);
|
||||
dim_t n_rand = rand() % (std::min)(n, k);
|
||||
dim_t k_rand = rand() % (std::min)(n, k);
|
||||
b_ptr[n_rand + k_rand * lda] = evt_a;
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ TEST_P(ctrsmEVT, NaNInfCheck)
|
||||
EVT_TYPE b_init = std::get<11>(GetParam());
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = std::max(m, n)*testinghelpers::getEpsilon<T>();
|
||||
double thresh = (std::max)(m, n)*testinghelpers::getEpsilon<T>();
|
||||
|
||||
//----------------------------------------------------------
|
||||
// Call test body using these parameters
|
||||
|
||||
@@ -85,7 +85,7 @@ TEST_P(dtrsmEVTTest, Unit_Tester)
|
||||
EVT_TYPE b_init = std::get<11>(GetParam());
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = std::max(m, n)*testinghelpers::getEpsilon<T>();
|
||||
double thresh = (std::max)(m, n)*testinghelpers::getEpsilon<T>();
|
||||
|
||||
//----------------------------------------------------------
|
||||
// Call test body using these parameters
|
||||
|
||||
@@ -78,7 +78,7 @@ TEST_P(dtrsmTest, Accuracy_test)
|
||||
gtint_t ldb_inc = std::get<9>(GetParam());
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = 1.5*std::max(m, n)*testinghelpers::getEpsilon<T>();
|
||||
double thresh = 1.5*(std::max)(m, n)*testinghelpers::getEpsilon<T>();
|
||||
|
||||
//----------------------------------------------------------
|
||||
// Call test body using these parameters
|
||||
|
||||
@@ -85,7 +85,7 @@ TEST_P(strsmEVT, NaNInfCheck)
|
||||
EVT_TYPE b_init = std::get<11>(GetParam());
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = std::max(m, n)*testinghelpers::getEpsilon<T>();
|
||||
double thresh = (std::max)(m, n)*testinghelpers::getEpsilon<T>();
|
||||
|
||||
//----------------------------------------------------------
|
||||
// Call test body using these parameters
|
||||
|
||||
@@ -107,7 +107,7 @@ void generate_NAN_INF( T* mat, char uploa, gtint_t m, gtint_t ld, EVT_TYPE type,
|
||||
else
|
||||
{
|
||||
// get a random number in range of 1 to m;
|
||||
gtint_t mn = std::max(gtint_t(1), gtint_t(rand()) % m);
|
||||
gtint_t mn = (std::max)(gtint_t(1), gtint_t(rand()) % m);
|
||||
if( uploa == 'l' || uploa == 'L')
|
||||
{
|
||||
// set one element to inf/nan in lower half of matrix
|
||||
@@ -165,17 +165,17 @@ gtint_t n, gtint_t ld, EVT_TYPE type = NO_EVT, bool is_a = false )
|
||||
case NaN:
|
||||
case INF:
|
||||
testinghelpers::datagenerators::randomgenerators<T>( from, to, storage, m, n, mat, ld);
|
||||
generate_NAN_INF(mat, uploa, std::min(m, n), ld, type, is_a);
|
||||
generate_NAN_INF(mat, uploa, (std::min)(m, n), ld, type, is_a);
|
||||
break;
|
||||
case DIAG_INF:
|
||||
case DIAG_NaN:
|
||||
testinghelpers::datagenerators::randomgenerators<T>( from, to, storage, m, n, mat, ld);
|
||||
generate_NAN_INF(mat, uploa, std::min(m, n), ld, type, is_a, true);
|
||||
generate_NAN_INF(mat, uploa, (std::min)(m, n), ld, type, is_a, true);
|
||||
break;
|
||||
case NaN_INF:
|
||||
testinghelpers::datagenerators::randomgenerators<T>( from, to, storage, m, n, mat, ld);
|
||||
generate_NAN_INF(mat, uploa, std::min(m, n), ld, type, is_a);
|
||||
generate_NAN_INF(mat, uploa, std::min(m, n), ld, INF, is_a);
|
||||
generate_NAN_INF(mat, uploa, (std::min)(m, n), ld, type, is_a);
|
||||
generate_NAN_INF(mat, uploa, (std::min)(m, n), ld, INF, is_a);
|
||||
break;
|
||||
case NO_EVT:
|
||||
testinghelpers::datagenerators::randomgenerators<T>( from, to, storage, m, n, mat, ld);
|
||||
|
||||
@@ -85,7 +85,7 @@ TEST_P(ztrsmEVT, NaNInfCheck)
|
||||
EVT_TYPE b_init = std::get<11>(GetParam());
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = std::max(m, n)*testinghelpers::getEpsilon<T>();
|
||||
double thresh = (std::max)(m, n)*testinghelpers::getEpsilon<T>();
|
||||
|
||||
//----------------------------------------------------------
|
||||
// Call test body using these parameters
|
||||
|
||||
@@ -66,7 +66,7 @@ TEST_P(cgemmUkrSUP, FunctionalTest)
|
||||
char transa = std::get<7>(GetParam()); // transa
|
||||
char transb = (storage == 'r')? 'n' : 't'; // transb
|
||||
bool is_memory_test = std::get<8>(GetParam()); // is_memory_test
|
||||
double thresh = 40 * (std::max(k,gtint_t(1))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
double thresh = 40 * ((std::max)(k,gtint_t(1))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
test_complex_gemmsup_ukr<scomplex, cgemmsup_ker_ft> (storage, transa, transb, m, n, k, alpha, beta, thresh, kern_ptr, is_memory_test);
|
||||
}// end of function
|
||||
|
||||
@@ -646,7 +646,7 @@ TEST_P(cgemmUkrNat, FunctionalTest)
|
||||
gtint_t n = std::get<5>(GetParam()); // n
|
||||
cgemm_ukr_ft kern_ptr = std::get<6>(GetParam()); // pointer to the gemm kernel
|
||||
bool is_memory_test = std::get<7>(GetParam()); // is_memory_test
|
||||
double thresh = 20 * (std::max(k,gtint_t(1))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
double thresh = 20 * ((std::max)(k,gtint_t(1))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
|
||||
test_gemmnat_ukr(storage, m, n, k, alpha, beta, thresh, kern_ptr, is_memory_test);
|
||||
}// end of function
|
||||
|
||||
@@ -574,7 +574,7 @@ TEST_P(dgemmSmallUkernel, gemm_small)
|
||||
// reset to default signal handler
|
||||
testinghelpers::ProtectedBuffer::stop_signal_handler();
|
||||
// Set the threshold for the errors:
|
||||
double thresh = 10 * std::max(n,std::max(k,m)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 10 * (std::max)(n,(std::max)(k,m)) * testinghelpers::getEpsilon<T>();
|
||||
|
||||
// call reference implementation
|
||||
testinghelpers::ref_gemm<T>( storage, 'n', 'n', m, n, k, alpha,
|
||||
@@ -612,7 +612,7 @@ TEST_P(dgemmSmallUkernel, gemm_small)
|
||||
);
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = 10 * std::max(n,std::max(k,m)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 10 * (std::max)(n,(std::max)(k,m)) * testinghelpers::getEpsilon<T>();
|
||||
// call reference implementation
|
||||
testinghelpers::ref_gemm<T>( storage, 'n', 'n', m, n, k, alpha,
|
||||
a.data(), lda, b.data(), ldb, beta, c_ref.data(), ldc);
|
||||
|
||||
@@ -261,7 +261,7 @@ static void test_gemmnat_ukr( char storage, gtint_t m, gtint_t n, gtint_t k, T a
|
||||
|
||||
obj_t a, b;
|
||||
num_t dt = BLIS_DCOMPLEX;
|
||||
gtint_t maxmn = std::max(m,n);
|
||||
gtint_t maxmn = (std::max)(m,n);
|
||||
bli_obj_create(dt, m, k, 1, m, &a);
|
||||
bli_obj_create(dt, k, n, n, 1, &b);
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ static void test_gemmnat_ukr(
|
||||
// storage of all matrices A, B and C.
|
||||
// since A is col-storage, A' will be row-storage
|
||||
}
|
||||
double thresh = 10 * (std::max(k,gtint_t(1))) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 10 * ((std::max)(k,gtint_t(1))) * testinghelpers::getEpsilon<T>();
|
||||
// call reference implementation
|
||||
testinghelpers::ref_gemm<T>( storage, transa, transb, m, n, k, alpha,
|
||||
buf_a, lda, buf_b, ldb, beta, (T*)buf_cref, ldc);
|
||||
@@ -324,7 +324,7 @@ static void test_gemmk1_ukr( FT ukr_fp, gtint_t m, gtint_t n, gtint_t k, char st
|
||||
testinghelpers::ProtectedBuffer::stop_signal_handler();
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = 10 * std::max(n,std::max(k,m)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 10 * (std::max)(n,(std::max)(k,m)) * testinghelpers::getEpsilon<T>();
|
||||
|
||||
// call reference implementation
|
||||
testinghelpers::ref_gemm<T>( storage, 'n', 'n', m, n, k, alpha,
|
||||
@@ -551,7 +551,7 @@ static void test_gemmsup_ukr( FT ukr_fp, char trnsa, char trnsb, gtint_t m, gtin
|
||||
testinghelpers::ProtectedBuffer::stop_signal_handler();
|
||||
|
||||
// Set the threshold for the errors:
|
||||
double thresh = 10 * (std::max(k,gtint_t(1))) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 10 * ((std::max)(k,gtint_t(1))) * testinghelpers::getEpsilon<T>();
|
||||
|
||||
// call reference implementation
|
||||
testinghelpers::ref_gemm<T>( storage, trnsa, trnsb, m, n, k, alpha,
|
||||
|
||||
@@ -61,7 +61,7 @@ TEST_P(zgemmUkrSUP, FunctionalTest)
|
||||
char transa = std::get<7>(GetParam()); // transa
|
||||
char transb = std::get<8>(GetParam()); // transb
|
||||
bool is_memory_test = std::get<9>(GetParam()); // is_memory_test
|
||||
double thresh = 30 * (std::max(k,gtint_t(10))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
double thresh = 30 * ((std::max)(k,gtint_t(10))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
test_complex_gemmsup_ukr(storageC, transa, transb, m, n, k, alpha, beta, thresh, kern_ptr, is_memory_test);
|
||||
}// end of function
|
||||
|
||||
@@ -993,7 +993,7 @@ TEST_P(zgemmUkrNat, MicroKernelTest)
|
||||
gtint_t n = std::get<5>(GetParam()); // n
|
||||
zgemm_ukr_ft kern_ptr = std::get<6>(GetParam()); // pointer to the gemm kernel
|
||||
bool is_memory_test = std::get<7>(GetParam()); // is_memory_test
|
||||
double thresh = 10 * (std::max(k,gtint_t(1))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
double thresh = 10 * ((std::max)(k,gtint_t(1))) * testinghelpers::getEpsilon<T>(); // Set the threshold for the errors
|
||||
|
||||
test_gemmnat_ukr(storage, m, n, k, alpha, beta, thresh, kern_ptr, is_memory_test);
|
||||
}// end of function
|
||||
|
||||
@@ -69,7 +69,7 @@ TEST_P(ctrsmUkrSmall, AccuracyCheck)
|
||||
gtint_t ldb = std::get<9>(GetParam());
|
||||
bool is_memory_test = std::get<10>(GetParam());
|
||||
|
||||
double thresh = 2 * std::max(std::max(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 2 * (std::max)((std::max)(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
test_trsm_small_ukr<T, trsm_small_ker_ft>( ukr_fp, side, uploa, diaga, transa, m, n, alpha, lda, ldb, thresh, is_memory_test, BLIS_SCOMPLEX);
|
||||
}
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ TEST_P(DTRSMSmallUkrTest, small_kernel)
|
||||
gtint_t ldb = std::get<9>(GetParam());
|
||||
bool is_memory_test = std::get<10>(GetParam());
|
||||
|
||||
double thresh = 2 * std::max(std::max(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 2 * (std::max)((std::max)(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
test_trsm_small_ukr<T, trsm_small_ker_ft>( ukr_fp, side, uploa, diaga, transa, m, n, alpha, lda, ldb, thresh, is_memory_test, BLIS_DOUBLE);
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ TEST_P(strsmUkrNat, AccuracyCheck)
|
||||
gtint_t ldc = std::get<8>(GetParam());
|
||||
bool is_memory_test = std::get<9>(GetParam());
|
||||
|
||||
double thresh = 2 * std::max(std::max(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 2 * (std::max)((std::max)(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
test_trsm_ukr<T, sgemmtrsm_ukr_ft>( ukr_fp, storage, uploa, diaga, m, n, k, alpha, ldc, thresh, is_memory_test);
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ TEST_P(strsmUkrSmall, AccuracyCheck)
|
||||
gtint_t ldb = std::get<9>(GetParam());
|
||||
bool is_memory_test = std::get<10>(GetParam());
|
||||
|
||||
double thresh = 2 * std::max(std::max(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 2 * (std::max)((std::max)(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
test_trsm_small_ukr<T, trsm_small_ker_ft>( ukr_fp, side, uploa, diaga, transa, m, n, alpha, lda, ldb, thresh, is_memory_test, BLIS_FLOAT);
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ TEST_P(ztrsmUkrNat, AccuracyCheck)
|
||||
gtint_t ldc = std::get<8>(GetParam());
|
||||
bool is_memory_test = std::get<9>(GetParam());
|
||||
|
||||
double thresh = 2 * std::max(std::max(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 2 * (std::max)((std::max)(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
test_trsm_ukr<T, zgemmtrsm_ukr_ft>( ukr_fp, storage, uploa, diaga, m, n, k, alpha, ldc, thresh, is_memory_test);
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ TEST_P(ztrsmUkrSmall, AccuracyCheck)
|
||||
gtint_t ldb = std::get<9>(GetParam());
|
||||
bool is_memory_test = std::get<10>(GetParam());
|
||||
|
||||
double thresh = 2 * std::max(std::max(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
double thresh = 2 * (std::max)((std::max)(m, n), gtint_t(3)) * testinghelpers::getEpsilon<T>();
|
||||
test_trsm_small_ukr<T, trsm_small_ker_ft>( ukr_fp, side, uploa, diaga, transa, m, n, alpha, lda, ldb, thresh, is_memory_test, BLIS_DCOMPLEX);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user