diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 249b3d28..7d90f28a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,12 +1,12 @@ # ######################################################################## # Copyright 2013 Advanced Micro Devices, Inc. -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -41,33 +41,33 @@ set( OPENCL_OFFLINE_BUILD_TAHITI_KERNEL OFF) #use dynamic generated kernels # MESSAGE(STATUS "Build dynamic Hawaii kernels.") # MESSAGE(STATUS "Check OPENCL_OFFLINE_BUILD_HAWAII_KERNEL to build kernls at compile-time. This will eliminates clBuildProgram() overhead and better kernel performance with certain driver.") - add_definitions(-DCLBLAS_HAWAII_DYNAMIC_KERNEL) + add_definitions(-DCLBLAS_HAWAII_DYNAMIC_KERNEL) #else() # MESSAGE(STATUS "Build static Hawaii kernels.") # MESSAGE(STATUS "Uncheck OPENCL_OFFLINE_BUILD_HAWAII_KERNEL to build kernls at run-time") -# MESSAGE(STATUS "Please ensure the presence of Hawaii device in the system. With certain driver/compiler flags, this might result in compile-time error.") +# MESSAGE(STATUS "Please ensure the presence of Hawaii device in the system. With certain driver/compiler flags, this might result in compile-time error.") #endif( ) #if( NOT OPENCL_OFFLINE_BUILD_BONAIRE_KERNEL ) #use dynamic generated kernels # MESSAGE(STATUS "Build dynamic Bonaire kernels.") # MESSAGE(STATUS "Check OPENCL_OFFLINE_BUILD_BONAIRE_KERNEL to build kernls at compile-time. This will eliminates clBuildProgram() overhead and better kernel performance with certain driver.") - add_definitions(-DCLBLAS_BONAIRE_DYNAMIC_KERNEL) + add_definitions(-DCLBLAS_BONAIRE_DYNAMIC_KERNEL) #else() # MESSAGE(STATUS "Build static Bonaire kernels.") # MESSAGE(STATUS "Uncheck OPENCL_OFFLINE_BUILD_BONAIRE_KERNEL to build kernls at run-time") -# MESSAGE(STATUS "Please ensure the presence of Bonaire device in the system. With certain driver/compiler flags, this might result in compile-time error.") +# MESSAGE(STATUS "Please ensure the presence of Bonaire device in the system. With certain driver/compiler flags, this might result in compile-time error.") #endif( ) #if( NOT OPENCL_OFFLINE_BUILD_TAHITI_KERNEL ) #use dynamic generated kernels # MESSAGE(STATUS "Build dynamic Tahiti kernels.") # MESSAGE(STATUS "Check OPENCL_OFFLINE_BUILD_TAHITI_KERNEL to build kernls at compile-time. This will eliminates clBuildProgram() overhead and better kernel performance with certain driver.") - add_definitions(-DCLBLAS_TAHITI_DYNAMIC_KERNEL) + add_definitions(-DCLBLAS_TAHITI_DYNAMIC_KERNEL) #else( ) # MESSAGE(STATUS "Build static Tahiti kernels.") # MESSAGE(STATUS "Uncheck OPENCL_OFFLINE_BUILD_TAHITI_KERNEL to build kernls at run-time") -# MESSAGE(STATUS "Please ensure the presence of Tahiti device in the system. With certain driver/compiler flags, this might result in compile-time error.") +# MESSAGE(STATUS "Please ensure the presence of Tahiti device in the system. With certain driver/compiler flags, this might result in compile-time error.") #endif( ) @@ -135,8 +135,8 @@ if(NOT CMAKE_BUILD_TYPE) FORCE) endif() -# These variables are meant to contain string which should be appended to the installation paths -# of library and executable binaries, respectively. They are meant to be user configurable/overridable. +# These variables are meant to contain string which should be appended to the installation paths +# of library and executable binaries, respectively. They are meant to be user configurable/overridable. set( SUFFIX_LIB_DEFAULT "" ) set( SUFFIX_BIN_DEFAULT "" ) @@ -170,7 +170,7 @@ if( MSVC_IDE ) endif( ) # add the math library for Linux -if( UNIX ) +if( UNIX ) set(MATH_LIBRARY "m") endif() @@ -220,7 +220,7 @@ if( BUILD_TEST ) else() message(WARNING "Cannot find acml.h") endif() - + if( UNIX ) find_library(ACML_LIBRARIES acml_mp HINTS @@ -238,7 +238,7 @@ if( BUILD_TEST ) ) mark_as_advanced(_acml_mv_library) endif( ) - + if(WIN32) find_library(ACML_LIBRARIES libacml_mp_dll HINTS @@ -248,7 +248,7 @@ if( BUILD_TEST ) $ENV{ACML_ROOT}/${ACML_SUBDIR}/lib ) endif( ) - + if( NOT ACML_LIBRARIES ) message(WARNING "Cannot find libacml") endif( ) @@ -272,8 +272,8 @@ find_package( OpenCL ) set( Boost_USE_MULTITHREADED ON ) set( Boost_USE_STATIC_LIBS ON ) set( Boost_DETAILED_FAILURE_MSG ON ) -set( Boost_DEBUG ON ) -set( Boost_ADDITIONAL_VERSIONS "1.44.0" "1.44" "1.47.0" "1.47" ) +# set( Boost_DEBUG ON ) +set( Boost_ADDITIONAL_VERSIONS "1.44.0" "1.44" "1.47.0" "1.47" "1.60.0" "1.60" ) find_package( Boost 1.33.0 COMPONENTS program_options ) message(STATUS "Boost_PROGRAM_OPTIONS_LIBRARY: ${Boost_PROGRAM_OPTIONS_LIBRARY}") @@ -315,7 +315,7 @@ elseif( MSVC ) # CMake sets huge stack frames for windows, for whatever reason. We go with compiler default. string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}" ) string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}" ) - string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}" ) + string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}" ) endif( ) if (WIN32) @@ -328,13 +328,13 @@ add_definitions( -DCL_USE_DEPRECATED_OPENCL_1_1_APIS ) configure_file( "${PROJECT_SOURCE_DIR}/clBLAS.version.h.in" "${PROJECT_BINARY_DIR}/include/clBLAS.version.h" ) # configure a header file to pass the CMake version settings to the source, and package the header files in the output archive -install( FILES - "clBLAS.h" +install( FILES + "clBLAS.h" "clAmdBlas.h" "clAmdBlas.version.h" "clBLAS-complex.h" "${PROJECT_BINARY_DIR}/include/clBLAS.version.h" - DESTINATION + DESTINATION "./include" ) @@ -359,7 +359,7 @@ if( BUILD_SAMPLE AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/samples" ) add_subdirectory( samples ) endif( ) -# The build server is not supposed to build or package any of the tests; build server script will define this on the command line with +# The build server is not supposed to build or package any of the tests; build server script will define this on the command line with # cmake -G "Visual Studio 10 Win64" -D BUILDSERVER:BOOL=ON ../.. if( BUILD_TEST ) if( IS_DIRECTORY "${PROJECT_SOURCE_DIR}/tests" ) @@ -394,7 +394,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/clBLASConfigVersion.cmake DESTINATION ${destdir}) -# The following code is setting variables to control the behavior of CPack to generate our +# The following code is setting variables to control the behavior of CPack to generate our if( WIN32 ) set( CPACK_SOURCE_GENERATOR "ZIP" ) set( CPACK_GENERATOR "ZIP" ) diff --git a/src/tests/BlasBase.cpp b/src/tests/BlasBase.cpp index c012803d..73a6f5e2 100644 --- a/src/tests/BlasBase.cpp +++ b/src/tests/BlasBase.cpp @@ -40,10 +40,10 @@ BlasBase::BlasBase() useNumCommandQueues_(false), numCommandQueues_(1), useAlpha_(false), useBeta_(false), useSeed_(false), useM_(false), useN_(false), useK_(false), - M_(0), N_(0), K_(0), + M_(0), N_(0), K_(0), devOrd_(0), platOrd_(0), useIncX_(false), useIncY_(false), incX_(0), incY_(0), - useImages_(false), devType_(CL_DEVICE_TYPE_GPU), imageA_(0), imageB_(0) + useImages_(false), devType_(CL_DEVICE_TYPE_DEFAULT), imageA_(0), imageB_(0) { memset(&alpha_, 0, sizeof(alpha_)); memset(&beta_, 0, sizeof(beta_)); @@ -57,7 +57,7 @@ BlasBase::~BlasBase() /* * Teardown() is disabled due to troubles with test interrupting * with CTRL-C in windows. This occurs since after pressing of these keys - * the OpenCL runtime is destroyed before calling global object destructors. + * the OpenCL runtime is destroyed before calling global object destructor's. */ #if 0 TearDown(); @@ -110,7 +110,6 @@ BlasBase::getDevice(cl_device_type type, const char* name, char *str; cl_platform_id *platforms, selPlatform = NULL; cl_uint nrPlatforms; - cl_device_info devInfo; nrPlatforms = getPlatforms(&platforms, &err); @@ -118,29 +117,9 @@ BlasBase::getDevice(cl_device_type type, const char* name, *error = CL_SUCCESS; } - /* - * If device name is not specified, then any AMD device is preferable. - * It there are not AMD devices of such a type presented in the system, - * then get a device of another vendor. If this is the additional device - * which is being tried to get, it must be supported by the same platform - * as the primary device does. - */ - - if (name == NULL) { - name = "Advanced Micro Devices, Inc."; - devInfo = CL_DEVICE_VENDOR; - } - else { - devInfo = CL_DEVICE_NAME; - type = CL_DEVICE_TYPE_ALL; - } - - for (p = 0; p < nrPlatforms; p++) { - cl_platform_id platform = platforms[p]; - err = clGetDeviceIDs(platform, type, 0, NULL, &nrDevices); - if (err == CL_DEVICE_NOT_FOUND) { - continue; - } + if (platOrd_ < nrPlatforms) { + platform_ = platforms[platOrd_]; + err = clGetDeviceIDs(platform_, type, 0, NULL, &nrDevices); if (err != CL_SUCCESS) { if (error != NULL) { *error = err; @@ -152,7 +131,7 @@ BlasBase::getDevice(cl_device_type type, const char* name, } devices = new cl_device_id[nrDevices]; - err = clGetDeviceIDs(platform, type, nrDevices, devices, NULL); + err = clGetDeviceIDs(platform_, type, nrDevices, devices, NULL); if (err != CL_SUCCESS) { if (error != NULL) { *error = err; @@ -161,40 +140,15 @@ BlasBase::getDevice(cl_device_type type, const char* name, return NULL; } - for (i = 0; i < nrDevices; i++) { - err = clGetDeviceInfo(devices[i], devInfo, 0, NULL, &sz); - if (err != CL_SUCCESS) { - continue; - } - str = new char[sz + 1]; - memset(str, 0, sz + 1); - err = clGetDeviceInfo(devices[i], devInfo, sz, str, NULL); - if (err != CL_SUCCESS) { - delete[] str; - continue; - } - if ((devInfo == CL_DEVICE_VENDOR) && (result == NULL) && - ((platform_ == NULL) || (platform == platform_))) { - - result = devices[i]; - selPlatform = platform; - } - printf("---- %s\n", str); - if (strcmp(str, name) == 0) { - //printf("---- %s\n", str); - platform_ = platform; - result = devices[i]; - delete[] str; - break; - } - delete[] str; + if (devOrd_ < nrDevices) { + result = devices[devOrd_]; } delete[] devices; devices = NULL; } - - if (platform_ == NULL) { - platform_ = selPlatform; + else + { + platform_ = NULL; } delete[] platforms; @@ -211,6 +165,7 @@ BlasBase::SetUp() cl_device_id devices[2] = {NULL, NULL}; primaryDevice_ = getDevice(devType_, devName_, &err); + if ((err != CL_SUCCESS) || (primaryDevice_ == NULL)) { ASSERT_EQ(CL_SUCCESS, clGetPlatformIDs(1, &platform_, NULL)); ASSERT_EQ(CL_SUCCESS, @@ -243,7 +198,7 @@ BlasBase::SetUp() printf("SetUp: Created context %p\n", context_); #endif printf("SetUp: about to create command queues\n"); - for (i = 0; i < MAX_COMMAND_QUEUES; i++) { + for (i = 0; i < numCommandQueues_; i++) { cl_device_id dev; dev = (i == addDevQueueIdx) ? additionalDevice_ : primaryDevice_; @@ -260,10 +215,9 @@ BlasBase::TearDown() { cl_uint i; - for (i = 0; i < MAX_COMMAND_QUEUES; i++) { + for (i = 0; i < numCommandQueues_; i++) { clReleaseCommandQueue(commandQueues_[i]); } - numCommandQueues_ = 1; if (context_ != NULL) { clReleaseContext(context_); @@ -282,20 +236,23 @@ BlasBase::initialized() } bool -BlasBase::setDeviceType(cl_device_type* devType, const char* devName) +BlasBase::setDeviceType(const TestParams& params) { - if (devType_ == *devType && devName_ == devName) { + // Early exit if no device state changed + if (devType_ == params.devType && devName_ == params.devName && platOrd_ == params.platOrd && devOrd_ == params.devOrd) { return true; } - devType_ = *devType; - devName_ = devName; + devType_ = params.devType; + devName_ = params.devName; + platOrd_ = params.platOrd; + devOrd_ = params.devOrd; if (!initialized()) { return true; } TearDown(); SetUp(); - *devType = devType_; + return initialized(); } diff --git a/src/tests/cmdline.c b/src/tests/cmdline.c index 259a9f2a..c9519cc6 100644 --- a/src/tests/cmdline.c +++ b/src/tests/cmdline.c @@ -24,7 +24,7 @@ static const char *testUsage = " [--seed s] [--alpha a] [--beta b] " "[--alpha-real a] [--beta-real b] [--alpha-imag a] [--beta-imag b] " - "[--use-images f] [--device dev] [--queues n]\n" + "[--use-images f] [--platform ordinal] [--device string] [--device-ord ordinal] [--queues n]\n" "\n" "seed - seed for the random number generator" "\n" @@ -42,8 +42,12 @@ static const char *testUsage = "\n" "use-images - allow the library to use images for computing" "\n" - "device - device to run the test on, 'cpu' or 'gpu'(default)" + "platform-ord - platform ordinal containing device of interest as reported by clinfo; (default 0)" "\n" + "device-ord - device ordinal as device under test as reported by clinfo; (default 0)" + "\n" + "device-type - device type to filter device enumeration: 'default', 'all', 'gpu' or 'cpu'\n" + "\t\tWith 'default', platform-ord && device-ord should both be 0\n" "queues - number of command queues to use" "\n" "Parameters defined through the command line are kept over the whole " @@ -169,7 +173,7 @@ setMult(SetterArg *sarg) } static int -setDevice(SetterArg *sarg) +setDevice_type(SetterArg *sarg) { if (!strcmp(sarg->arg, "cpu")) { sarg->params->devType = CL_DEVICE_TYPE_CPU; @@ -181,12 +185,38 @@ setDevice(SetterArg *sarg) sarg->params->devName = NULL; return 0; } + if (!strcmp(sarg->arg, "all")) { + sarg->params->devType = CL_DEVICE_TYPE_ALL; + sarg->params->devName = NULL; + return 0; + } + if (!strcmp(sarg->arg, "default")) { + sarg->params->devType = CL_DEVICE_TYPE_DEFAULT; + sarg->params->devName = NULL; + return 0; + } sarg->params->devName = sarg->arg; return 0; } static int +setDevice(SetterArg *sarg) +{ + sarg->params->devOrd = atoi(sarg->arg); + + return 0; +} + +static int +setPlatform(SetterArg *sarg) +{ + sarg->params->platOrd = atoi(sarg->arg); + + return 0; +} + +static int setNumCommandQueues(SetterArg *sarg) { sarg->params->numCommandQueues = atoi(sarg->arg); @@ -202,7 +232,9 @@ static const CmdLineOpt opts[] = { {"alpha-imag", SET_ALPHA, setMult, MULT_ALPHA | MULT_IMAG_ONLY}, {"beta-real", SET_BETA, setMult, MULT_BETA | MULT_REAL_ONLY}, {"beta-imag", SET_BETA, setMult, MULT_BETA | MULT_IMAG_ONLY}, - {"device", SET_DEVICE_TYPE, setDevice, 0}, + {"platform-ord", SET_PLATFORM_ORD, setPlatform, 0 }, + {"device-type", SET_DEVICE_TYPE, setDevice_type, 0}, + {"device-ord", SET_DEVICE_ORD, setDevice, 0 }, {"queues", SET_NUM_COMMAND_QUEUES, setNumCommandQueues, 0}, }; static const unsigned int nrOpts = sizeof(opts) / sizeof(CmdLineOpt); diff --git a/src/tests/common.cpp b/src/tests/common.cpp index 209a598a..d0f21ba4 100644 --- a/src/tests/common.cpp +++ b/src/tests/common.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include @@ -1017,23 +1016,3 @@ functionBlasLevel(BlasFunctionID funct) { return 0; } } - - -template<> -void gtestAssertElementsEqual( const float & a, const float & b) { - ASSERT_FLOAT_EQ(a, b); -} -template<> -void gtestAssertElementsEqual( const double & a, const double & b) { - ASSERT_DOUBLE_EQ(a, b); -} -template<> -void gtestAssertElementsEqual( const FloatComplex & a, const FloatComplex & b) { - ASSERT_FLOAT_EQ(CREAL(a), CREAL(b)); - ASSERT_FLOAT_EQ(CIMAG(a), CIMAG(b)); -} -template<> -void gtestAssertElementsEqual( const DoubleComplex & a, const DoubleComplex & b) { - ASSERT_DOUBLE_EQ(CREAL(a), CREAL(b)); - ASSERT_DOUBLE_EQ(CIMAG(a), CIMAG(b)); -} \ No newline at end of file diff --git a/src/tests/correctness/corr-asum.cpp b/src/tests/correctness/corr-asum.cpp index 81da8e06..a05a34e6 100644 --- a/src/tests/correctness/corr-asum.cpp +++ b/src/tests/correctness/corr-asum.cpp @@ -107,20 +107,15 @@ asumCorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; randomVectors(params->N, (blasX + params->offBX), params->incx, (T1*)NULL, 0, true); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); bufAsum = base->createEnqueueBuffer(NULL, (1 + params->offa) * sizeof(T2), 0, CL_MEM_READ_WRITE); scratchBuff = base->createEnqueueBuffer(NULL, (lengthX * sizeof(T1)), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xASUM routine... "; - *blasAsum = ::clMath::blas::asum( params->N, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; if ((bufX == NULL) || (bufAsum == NULL) || (scratchBuff == NULL)) { releaseMemObjects(bufX, bufAsum, scratchBuff); @@ -136,8 +131,6 @@ asumCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xASUM routine... "; - DataType type; type = ( typeid(T1) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T1) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T1) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -163,8 +156,6 @@ asumCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufAsum, CL_TRUE, 0, (1 + params->offa) * sizeof(*clblasAsum), clblasAsum, 0, @@ -176,6 +167,14 @@ asumCorrectnessTest(TestParams *params) releaseMemObjects(bufX, bufAsum, scratchBuff); compareMatrices(clblasColumnMajor, 1 , 1, (blasAsum), (clblasAsum+params->offa), 1); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offBX, params->incx); + ::std::cerr << "offAsum = " << params->offa << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasX); deleteBuffers(blasAsum, clblasAsum); delete[] events; diff --git a/src/tests/correctness/corr-axpy.cpp b/src/tests/correctness/corr-axpy.cpp index c5816bc7..b23e6e08 100644 --- a/src/tests/correctness/corr-axpy.cpp +++ b/src/tests/correctness/corr-axpy.cpp @@ -111,8 +111,6 @@ axpyCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - // Populate X and Y randomVectors(params->N, (X+params->offBX), params->incx, (Y+params->offCY), params->incy); @@ -120,8 +118,6 @@ axpyCorrectnessTest(TestParams *params) memcpy(blasY, Y, (lengthY + params->offCY) * sizeof(T)); alpha = convertMultiplier(params->alpha); - ::std::cerr << "Done" << ::std::endl; - // Allocate buffers bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(T), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(Y, (lengthY + params->offCY)* sizeof(T), 0, CL_MEM_READ_WRITE); @@ -142,14 +138,8 @@ axpyCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling reference xAXPY routine... "; - ::clMath::blas::axpy((size_t)params->N, alpha, blasX, (size_t)params->offBX, params->incx, blasY, (size_t)params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; - - - ::std::cerr << "Calling clblas xAXPY routine... "; err = (cl_int)::clMath::clblas::axpy(params->N, alpha, bufX, params->offBX, params->incx, bufY, params->offCY, params->incy, params->numCommandQueues, base->commandQueues(), 0, NULL, events); @@ -169,8 +159,6 @@ axpyCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, (lengthY + params->offCY) * sizeof(T), Y, 0, NULL, NULL); @@ -182,6 +170,13 @@ axpyCorrectnessTest(TestParams *params) releaseMemObjects(bufX, bufY); compareMatrices(clblasRowMajor, lengthY , 1, (blasY + params->offCY), (Y + params->offCY), 1); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->alpha, params->offBX, params->incx, params->offCY, params->incy); + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(X, Y, blasX, blasY); delete[] events; } diff --git a/src/tests/correctness/corr-copy.cpp b/src/tests/correctness/corr-copy.cpp index 2ee46c08..468a20e9 100644 --- a/src/tests/correctness/corr-copy.cpp +++ b/src/tests/correctness/corr-copy.cpp @@ -104,22 +104,15 @@ copyCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - // Populate A and blasX randomVectors( params->N, (blasX+params->offBX), params->incx, (blasY+params->offCY), params->incy ); memcpy(clblasY, blasY, (lengthY + params->offCY)* sizeof(*blasY)); - ::std::cerr << "Done" << ::std::endl; - // Allocate buffers bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); bufY = base->createEnqueueBuffer(blasY, (lengthY + params->offCY)* sizeof(*blasY), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xCOPY routine... "; - ::clMath::blas::copy( params->N, blasX, params->offBX, params->incx, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufX == NULL) || (bufY == NULL)) { /* Skip the test, the most probable reason is @@ -137,8 +130,6 @@ copyCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xCOPY routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -162,8 +153,6 @@ copyCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, ((lengthY + params->offCY) * sizeof(*blasY)), clblasY, 0, @@ -176,6 +165,13 @@ copyCorrectnessTest(TestParams *params) releaseMemObjects(bufX, bufY); compareMatrices(clblasColumnMajor, lengthY , 1, (blasY + params->offCY), (clblasY + params->offCY), lengthY, NULL); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offBX, params->incx, params->offCY, params->incy); + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasX, blasY, clblasY); delete[] events; } diff --git a/src/tests/correctness/corr-dot.cpp b/src/tests/correctness/corr-dot.cpp index c4969252..02fd84ec 100644 --- a/src/tests/correctness/corr-dot.cpp +++ b/src/tests/correctness/corr-dot.cpp @@ -115,10 +115,8 @@ dotCorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; randomVectors(params->N, (blasX + params->offBX), params->incx, (blasY + params->offCY), params->incy, true); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); @@ -126,10 +124,7 @@ dotCorrectnessTest(TestParams *params) bufDP = base->createEnqueueBuffer(NULL, (1 + params->offa) * sizeof(T), 0, CL_MEM_READ_WRITE); scratchBuff = base->createEnqueueBuffer(NULL, (lengthX * sizeof(T)), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xDOT routine... "; - *blasDP = ::clMath::blas::dot( params->N, blasX, params->offBX, params->incx, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufX == NULL) || (bufY == NULL) || (bufDP == NULL) || (scratchBuff == NULL)) { releaseMemObjects(bufX, bufY, bufDP, scratchBuff); @@ -144,8 +139,6 @@ dotCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xDOT routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -169,8 +162,6 @@ dotCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufDP, CL_TRUE, 0, (1 + params->offa) * sizeof(*clblasDP), clblasDP, 0, @@ -182,6 +173,14 @@ dotCorrectnessTest(TestParams *params) releaseMemObjects(bufX, bufY, bufDP, scratchBuff); compareMatrices(clblasColumnMajor, 1 , 1, (blasDP), (clblasDP+params->offa), 1); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offBX, params->incx, params->offCY, params->incy); + ::std::cerr << "offDP = " << params->offa << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasX, blasY, blasDP, clblasDP); delete[] events; } diff --git a/src/tests/correctness/corr-dotc.cpp b/src/tests/correctness/corr-dotc.cpp index d4a68b1d..8db5550b 100644 --- a/src/tests/correctness/corr-dotc.cpp +++ b/src/tests/correctness/corr-dotc.cpp @@ -115,10 +115,8 @@ dotcCorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; randomVectors(params->N, (blasX + params->offBX), params->incx, (blasY + params->offCY), params->incy, true); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); @@ -126,10 +124,7 @@ dotcCorrectnessTest(TestParams *params) bufDP = base->createEnqueueBuffer(NULL, (1 + params->offa) * sizeof(T), 0, CL_MEM_READ_WRITE); scratchBuff = base->createEnqueueBuffer(NULL, (lengthX * sizeof(T)), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xDOTC routine... "; - *blasDP = ::clMath::blas::dotc( params->N, blasX, params->offBX, params->incx, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufX == NULL) || (bufY == NULL) || (bufDP == NULL) || (scratchBuff == NULL)) { releaseMemObjects(bufX, bufY, bufDP, scratchBuff); @@ -144,8 +139,6 @@ dotcCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xDOTC routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -169,8 +162,6 @@ dotcCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufDP, CL_TRUE, 0, (1 + params->offa) * sizeof(*clblasDP), clblasDP, 0, @@ -182,6 +173,14 @@ dotcCorrectnessTest(TestParams *params) releaseMemObjects(bufX, bufY, bufDP, scratchBuff); compareMatrices(clblasColumnMajor, 1 , 1, (blasDP), (clblasDP+params->offa), 1); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offBX, params->incx, params->offCY, params->incy); + ::std::cerr << "offDP = " << params->offa << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasX, blasY, blasDP, clblasDP); delete[] events; } diff --git a/src/tests/correctness/corr-gbmv.cpp b/src/tests/correctness/corr-gbmv.cpp index efa8b4b1..5bb80c37 100644 --- a/src/tests/correctness/corr-gbmv.cpp +++ b/src/tests/correctness/corr-gbmv.cpp @@ -112,8 +112,6 @@ gbmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((A == NULL) || (X == NULL) || (blasY == NULL) || (clblasY == NULL)) { deleteBuffers(A, X, blasY, clblasY); @@ -130,15 +128,12 @@ gbmvCorrectnessTest(TestParams *params) (A + params->offA), params->lda, (X+params->offBX), params->incx, (blasY+params->offCY), params->incy ); // Copy blasY to clblasY memcpy(clblasY, blasY, (lengthY + params->offCY)* sizeof(*blasY)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offA)* sizeof(*A), 0, CL_MEM_READ_ONLY); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(clblasY, (lengthY + params->offCY) * sizeof(*clblasY), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xGBMV routine... "; - clblasOrder fOrder; clblasTranspose fTrans; fOrder = params->order; @@ -159,7 +154,6 @@ gbmvCorrectnessTest(TestParams *params) } clMath::blas::gbmv(fOrder, fTrans, fM, fN, fKL, fKU, alpha, A, params->offA, params->lda, X, params->offBX, params->incx, beta, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL) || (bufY == NULL)) { // Skip the test, the most probable reason is @@ -177,8 +171,6 @@ gbmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xGBMV routine... "; - err = (cl_int)clMath::clblas::gbmv(params->order, params->transA, params->M, params->N, params->KL, params->KU, alpha, bufA, params->offA, params->lda, bufX, params->offBX, params->incx, beta, bufY, params->offCY, params->incy, @@ -199,8 +191,6 @@ gbmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, (lengthY + params->offCY) * sizeof(*clblasY), clblasY, 0, @@ -213,6 +203,15 @@ gbmvCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufX, bufY); compareMatrices(clblasColumnMajor, lengthY , 1, (blasY + params->offCY), (clblasY + params->offCY), lengthY); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->transA, params->M, params->N, params->KL, params->KU, params->alpha, params->offA, + params->lda, params->offBX, params->incx, params->beta, params->offCY, params->incy); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, X, blasY, clblasY); delete[] events; } diff --git a/src/tests/correctness/corr-gemm.cpp b/src/tests/correctness/corr-gemm.cpp index 5d84983c..6280a473 100644 --- a/src/tests/correctness/corr-gemm.cpp +++ b/src/tests/correctness/corr-gemm.cpp @@ -77,8 +77,7 @@ gemmCorrectnessTest(TestParams *params) (typeid(T) == typeid(DoubleComplex))); if (canCaseBeSkipped(params, isComplex)) { - std::cerr << ">> Test is skipped because it has no importance for this " - "level of coverage" << std::endl; + std::cerr << ">> Test is skipped" << std::endl; SUCCEED(); return; } @@ -104,14 +103,11 @@ gemmCorrectnessTest(TestParams *params) beta = convertMultiplier(params->beta); } - //::std::cerr << "Generating input data... "; randomGemmMatrices(params->order, params->transA, params->transB, params->M, params->N, params->K, useAlpha, &alpha, A, params->lda, B, params->ldb, useBeta, &beta, blasC, params->ldc); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*blasC)); - //::std::cerr << "Done" << ::std::endl; - //::std::cerr << "Calling reference xGEMM routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::gemm(clblasColumnMajor, params->transA, params->transB, params->M, params->N, params->K, alpha, A, @@ -139,7 +135,6 @@ gemmCorrectnessTest(TestParams *params) delete[] reorderedB; delete[] reorderedA; } - //::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -167,7 +162,6 @@ gemmCorrectnessTest(TestParams *params) return; } - //::std::cerr << "Calling clblas xGEMM routine... "; err = (cl_int)::clMath::clblas::gemm(params->order, params->transA, params->transB, params->M, params->N, params->K, alpha, bufA, params->offA, params->lda, bufB, params->offBX, params->ldb, beta, @@ -188,7 +182,6 @@ gemmCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - //::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, params->offCY * sizeof(*clblasC), @@ -198,6 +191,16 @@ gemmCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufB, bufC); compareMatrices(params->order, params->M, params->N, blasC, clblasC, params->ldc); + + if (::testing::Test::HasFailure( ) ) + { + printTestParams(params->order, params->transA, params->transB, params->M, params->N, params->K, base->useAlpha(), + base->alpha(), params->offA, params->lda, params->offBX, params->ldb, base->useBeta(), + base->beta(), params->offCY, params->ldc); + ::std::cerr << " seed = " << params->seed << ", " + << "queues = " << params->numCommandQueues << ", "; + } + deleteBuffers(A, B, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-gemm2.cpp b/src/tests/correctness/corr-gemm2.cpp index 2730d425..1bb790df 100644 --- a/src/tests/correctness/corr-gemm2.cpp +++ b/src/tests/correctness/corr-gemm2.cpp @@ -120,14 +120,11 @@ gemm2CorrectnessTest(TestParams *params) beta = convertMultiplier(params->beta); } - ::std::cerr << "Generating input data... "; randomGemmMatrices(params->order, params->transA, params->transB, params->M, params->N, params->K, useAlpha, &alpha, A, params->lda, B, params->ldb, useBeta, &beta, blasC, params->ldc); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*blasC)); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xGEMM routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::gemm(clblasColumnMajor, params->transA, params->transB, params->M, params->N, params->K, alpha, A, @@ -162,7 +159,6 @@ gemm2CorrectnessTest(TestParams *params) delete[] reorderedB; delete[] reorderedA; } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -190,7 +186,6 @@ gemm2CorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xGEMM routine... "; err = (cl_int)::clMath::clblas::gemm2(params->order, params->transA, params->transB, params->M, params->N, params->K, alpha, bufA, params->offA, params->lda, bufB, params->offBX, params->ldb, beta, @@ -211,7 +206,6 @@ gemm2CorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, params->offCY * sizeof(*clblasC), @@ -221,6 +215,16 @@ gemm2CorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufB, bufC); compareMatrices(params->order, params->M, params->N, blasC, clblasC, params->ldc); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->transA, params->transB, params->M, params->N, params->K, base->useAlpha(), + base->alpha(), params->offA, params->lda, params->offBX, params->ldb, base->useBeta(), + base->beta(), params->offCY, params->ldc); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-gemv.cpp b/src/tests/correctness/corr-gemv.cpp index c1a564c3..279491e1 100644 --- a/src/tests/correctness/corr-gemv.cpp +++ b/src/tests/correctness/corr-gemv.cpp @@ -77,8 +77,7 @@ gemvCorrectnessTest(TestParams *params) isComplex = ((typeid(T) == typeid(FloatComplex)) || (typeid(T) == typeid(DoubleComplex))); if (canCaseBeSkipped(params, isComplex)) { - std::cerr << ">> Test is skipped because it has no importance for this " - "level of coverage" << std::endl; + std::cerr << ">> Test is skipped" << std::endl; SUCCEED(); return; } @@ -115,7 +114,6 @@ gemvCorrectnessTest(TestParams *params) lenY = params->N; } - ::std::cerr << "Generating input data... "; setNans(params->rowsA * params->columnsA, A); setNans(params->rowsB * params->columnsB, B); setNans(params->rowsC * params->columnsC, blasC); @@ -134,9 +132,6 @@ gemvCorrectnessTest(TestParams *params) params->columnsC * params->rowsC); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*clblasC)); - ::std::cerr << "Done" << ::std::endl; - - ::std::cerr << "Calling reference xGEMV routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::gemv(clblasColumnMajor, params->transA, params->M, params->N, alpha, A, params->lda, @@ -153,7 +148,6 @@ gemvCorrectnessTest(TestParams *params) delete[] reorderedA; } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -178,7 +172,6 @@ gemvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xGEMV routine... "; err = (cl_int)::clMath::clblas::gemv(params->order, params->transA, params->M, params->N, alpha, bufA, params->offA, params->lda, bufB, params->offBX, params->incx, beta, bufC, params->offCY, @@ -199,7 +192,6 @@ gemvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, 0, params->rowsC * params->columnsC * sizeof(*clblasC), @@ -210,6 +202,14 @@ gemvCorrectnessTest(TestParams *params) compareVectors(params->offCY, lenY, abs(params->incy), params->columnsC * params->rowsC, blasC, clblasC); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->transA, params->M, params->N, base->useAlpha(), base->alpha(), params->offA, + params->lda, params->incx, base->useBeta(), base->beta(), params->incy); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-ger.cpp b/src/tests/correctness/corr-ger.cpp index 1ffe440a..7c3a6709 100644 --- a/src/tests/correctness/corr-ger.cpp +++ b/src/tests/correctness/corr-ger.cpp @@ -123,8 +123,6 @@ gerCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - int creationFlags = 0; creationFlags = creationFlags | RANDOM_INIT; creationFlags = ( (params-> order) == clblasRowMajor)? (creationFlags | ROW_MAJOR_ORDER) : (creationFlags); @@ -143,10 +141,6 @@ gerCorrectnessTest(TestParams *params) bufy = base->createEnqueueBuffer(y, (lengthy + params->offCY) * sizeof(*y), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xGER routine... "; - - clblasOrder fOrder; size_t fN, fM; size_t fOffx, fOffy; @@ -177,7 +171,6 @@ gerCorrectnessTest(TestParams *params) // Call reference blas routine clMath::blas::ger(fOrder, fM, fN, alpha_, fX , fOffx, fIncx, fY, fOffy, fIncy, A, params->offa, params->lda); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufx == NULL) || (bufy == NULL)) { /* Skip the test, the most probable reason is @@ -195,8 +188,6 @@ gerCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xGER routine... "; - err = (cl_int)::clMath::clblas::ger( params->order, params->M, params->N, alpha_, bufx, params->offBX, params->incx, bufy, params->offCY, params->incy,bufA, params->offa, params->lda, params->numCommandQueues, base->commandQueues(), 0, NULL, events ); @@ -218,7 +209,6 @@ gerCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufA, CL_TRUE, 0, (lengthA + params->offa)* sizeof(*backA), backA, 0, @@ -228,6 +218,17 @@ gerCorrectnessTest(TestParams *params) // handle lda correctly based on row-major/col-major.. compareMatrices(params->order, params->M , params->N, A+ params->offa, backA + params->offa, params->lda); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->M, params->N, useAlpha, + base->alpha(), + params->lda, params->incx, params->incy, params->offa, params->offBX, params->offCY); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, x, y, backA); delete[] events; } diff --git a/src/tests/correctness/corr-gerc.cpp b/src/tests/correctness/corr-gerc.cpp index 0070a778..81d8833e 100644 --- a/src/tests/correctness/corr-gerc.cpp +++ b/src/tests/correctness/corr-gerc.cpp @@ -123,8 +123,6 @@ gercCorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; - int creationFlags = 0; creationFlags = creationFlags | RANDOM_INIT; creationFlags = ( (params-> order) == clblasRowMajor)? (creationFlags | ROW_MAJOR_ORDER) : (creationFlags); @@ -143,10 +141,6 @@ gercCorrectnessTest(TestParams *params) bufy = base->createEnqueueBuffer(y, (lengthy + params->offCY) * sizeof(*y), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xGER routine... "; - - clblasOrder fOrder; size_t fN, fM; size_t fOffx, fOffy; @@ -180,7 +174,6 @@ gercCorrectnessTest(TestParams *params) else { clMath::blas::gerc(fOrder, fM, fN, alpha_, fX , fOffx, fIncx, fY, fOffy, fIncy, A, params->offa, params->lda); } - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufx == NULL) || (bufy == NULL)) { /* Skip the test, the most probable reason is @@ -198,8 +191,6 @@ gercCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xGER routine... "; - err = (cl_int)::clMath::clblas::gerc( params->order, params->M, params->N, alpha_, bufx, params->offBX, params->incx, bufy, params->offCY, params->incy,bufA, params->offa, params->lda, params->numCommandQueues, base->commandQueues(), 0, NULL, events ); @@ -220,7 +211,6 @@ gercCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufA, CL_TRUE, 0, (lengthA + params->offa)* sizeof(*backA), backA, 0, @@ -230,6 +220,17 @@ gercCorrectnessTest(TestParams *params) // handle lda correctly based on row-major/col-major.. compareMatrices(params->order, params->M , params->N, A+ params->offa, backA + params->offa, params->lda); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->M, params->N, useAlpha, + base->alpha(), + params->lda, params->incx, params->incy, params->offa, params->offBX, params->offCY); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, x, y, backA); delete[] events; } diff --git a/src/tests/correctness/corr-hbmv.cpp b/src/tests/correctness/corr-hbmv.cpp index 9b7ff8e1..846dc8d9 100644 --- a/src/tests/correctness/corr-hbmv.cpp +++ b/src/tests/correctness/corr-hbmv.cpp @@ -107,8 +107,6 @@ hbmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((A == NULL) || (X == NULL) || (blasY == NULL) || (clblasY == NULL)) { deleteBuffers(A, X, blasY, clblasY); @@ -125,15 +123,12 @@ hbmvCorrectnessTest(TestParams *params) (A + params->offA), params->lda, (X+params->offBX), params->incx, (blasY+params->offCY), params->incy ); // Copy blasY to clblasY memcpy(clblasY, blasY, (lengthY + params->offCY)* sizeof(*blasY)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offA)* sizeof(*A), 0, CL_MEM_READ_ONLY); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(clblasY, (lengthY + params->offCY) * sizeof(*clblasY), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xHBMV routine... "; - clblasOrder fOrder; clblasUplo fUplo; fOrder = params->order; @@ -149,7 +144,6 @@ hbmvCorrectnessTest(TestParams *params) clMath::blas::hbmv(fOrder, fUplo, fN, fK, alpha, A, params->offA, params->lda, X, params->offBX, params->incx, beta, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL) || (bufY == NULL)) { // Skip the test, the most probable reason is @@ -167,8 +161,6 @@ hbmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHBMV routine... "; - err = (cl_int)clMath::clblas::hbmv(params->order, params->uplo, params->N, params->K, alpha, bufA, params->offA, params->lda, bufX, params->offBX, params->incx, beta, bufY, params->offCY, params->incy, @@ -189,8 +181,6 @@ hbmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, (lengthY + params->offCY) * sizeof(*clblasY), clblasY, 0, @@ -203,6 +193,15 @@ hbmvCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufX, bufY); compareMatrices(clblasColumnMajor, lengthY , 1, (blasY + params->offCY), (clblasY + params->offCY), lengthY); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, params->K, params->alpha, params->offA, + params->lda, params->offBX, params->incx, params->beta, params->offCY, params->incy); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, X, blasY, clblasY); delete[] events; } diff --git a/src/tests/correctness/corr-hemm.cpp b/src/tests/correctness/corr-hemm.cpp index feb5f2ab..69536d8b 100644 --- a/src/tests/correctness/corr-hemm.cpp +++ b/src/tests/correctness/corr-hemm.cpp @@ -133,8 +133,6 @@ hemmCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... " << std::endl; - int creationFlags = 0, AcreationFlags; creationFlags = creationFlags | RANDOM_INIT; creationFlags = ( (params-> order) == clblasRowMajor)? (creationFlags | ROW_MAJOR_ORDER) : (creationFlags); @@ -153,9 +151,6 @@ hemmCorrectnessTest(TestParams *params) bufB = base->createEnqueueBuffer(B, (lengthB + params->offBX) * sizeof(T), 0, CL_MEM_READ_ONLY); bufC = base->createEnqueueBuffer(backC, (lengthC + params->offCY) * sizeof(T), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xHEMM routine... "; - clblasOrder fOrder; clblasUplo fUplo; clblasSide fSide; @@ -179,7 +174,6 @@ hemmCorrectnessTest(TestParams *params) // Call reference blas routine clMath::blas::hemm(fOrder, fSide, fUplo, fM, fN, alpha_, A, params->offA, params->lda, B, params->offBX, params->ldb, beta_, C, params->offCY, params->ldc); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufB == NULL) || (bufC == NULL)) { /* Skip the test, the most probable reason is @@ -197,8 +191,6 @@ hemmCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHEMM routine... "; - err = (cl_int)::clMath::clblas::hemm( params->order, params->side, params->uplo, params->M, params->N, alpha_, bufA, params->offA, params->lda, bufB, params->offBX, params->ldb, beta_, bufC, params->offCY, params->ldc, params->numCommandQueues, base->commandQueues(), 0, NULL, events ); @@ -220,7 +212,6 @@ hemmCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; err = clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, 0, (lengthC + params->offCY) * sizeof(T), backC, 0, @@ -235,6 +226,15 @@ hemmCorrectnessTest(TestParams *params) // handle lda correctly based on row-major/col-major.. compareMatrices(params->order, params->M , params->N, (C + params->offCY), (backC + params->offCY), params->ldc); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->side, params->uplo, params->M, params->N, 1, params->alpha, 1, params->beta, params->lda, params->ldb, params->ldc, params->offA, params->offb, params->offc); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, C, backC); delete[] events; } diff --git a/src/tests/correctness/corr-hemv.cpp b/src/tests/correctness/corr-hemv.cpp index 41bcb62b..2f2517d6 100644 --- a/src/tests/correctness/corr-hemv.cpp +++ b/src/tests/correctness/corr-hemv.cpp @@ -114,8 +114,6 @@ hemvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((A == NULL) || (X == NULL) || (blasY == NULL) || (clblasY == NULL)) { deleteBuffers(A, X, blasY, clblasY); @@ -134,7 +132,6 @@ hemvCorrectnessTest(TestParams *params) (X + params->offBX), params->incx, true, &beta, (blasY + params->offCY), params->incy); // Copy blasY to clblasY memcpy(clblasY, blasY, (lengthY + params->offCY)* sizeof(*blasY)); - ::std::cerr << "Done" << ::std::endl; /* printf("\n\n before acml call\nA\n"); printMatrixBlock( params->order, 0, 0, params->N, params->N, params->lda, A+params->offA); @@ -153,8 +150,6 @@ hemvCorrectnessTest(TestParams *params) //printData( "bufX", blasX, lengthX, 1, lengthX); //printData( "clblasX", clblasX, lengthX, 1, lengthX); - ::std::cerr << "Calling reference xHEMV routine... "; - clblasOrder order; clblasUplo fUplo; @@ -169,7 +164,6 @@ hemvCorrectnessTest(TestParams *params) } ::clMath::blas::hemv( order, fUplo, params->N, alpha, A, params->offA, params->lda, X, params->offBX, params->incx, beta, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; /* printf("\n\n after acml call\n"); printf("\nY\n"); @@ -193,8 +187,6 @@ hemvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHEMV routine... "; - err = (cl_int)::clMath::clblas::hemv(params->order, params->uplo, params->N, alpha, bufA, params->offA, params->lda, bufX, params->offBX, params->incx, beta, bufY, params->offCY, params->incy, params->numCommandQueues, base->commandQueues(), 0, NULL, events); @@ -214,8 +206,6 @@ hemvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, (lengthY + params->offCY) * sizeof(*clblasY), clblasY, 0, @@ -235,6 +225,15 @@ hemvCorrectnessTest(TestParams *params) */ compareMatrices(clblasColumnMajor, lengthY , 1, (blasY + params->offCY), (clblasY + params->offCY), lengthY); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, params->alpha, params->offA, + params->lda, params->offBX, params->incx, params->beta, params->offCY, params->incy); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, X, blasY, clblasY); delete[] events; } diff --git a/src/tests/correctness/corr-her.cpp b/src/tests/correctness/corr-her.cpp index 34b57994..57b95f21 100644 --- a/src/tests/correctness/corr-her.cpp +++ b/src/tests/correctness/corr-her.cpp @@ -101,17 +101,13 @@ herCorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; randomHerMatrices( params->order, params->uplo, params->N, &alpha_, (A + params->offa), params->lda, (X + params->offBX), params->incx ); memcpy(backA, A, (lengthA + params->offa)* sizeof(*A)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offa) * sizeof(*A), 0, CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX) * sizeof(*X), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xHER routine... "; - clblasOrder fOrder; clblasUplo fUplo; fOrder = params->order; @@ -124,7 +120,6 @@ herCorrectnessTest(TestParams *params) fUplo = (fUplo == clblasLower)? clblasUpper : clblasLower; } clMath::blas::her( fOrder, fUplo, params->N, CREAL(alpha_), X , params->offBX, params->incx, A, params->offa, params->lda ); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL) ) { /* Skip the test, the most probable reason is @@ -151,8 +146,6 @@ herCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHER routine... "; - err = (cl_int)::clMath::clblas::her( params->order, params->uplo, params->N, CREAL(alpha_), bufX, params->offBX, params->incx, bufA, params->offa, params->lda, params->numCommandQueues, base->commandQueues(), @@ -173,7 +166,6 @@ herCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; err = clEnqueueReadBuffer(base->commandQueues()[0], bufA, CL_TRUE, 0, (lengthA + params->offa) * sizeof(*A), backA, 0, @@ -185,10 +177,18 @@ herCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufX); - printf("Comparing the results\n"); compareMatrices(params->order, params->N , params->N, (A + params->offa), (backA + params->offa), params->lda); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, params->alpha.re, + params->offBX, params->incx, params->offa, params->lda); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers( A, backA, X); delete[] events; } diff --git a/src/tests/correctness/corr-her2.cpp b/src/tests/correctness/corr-her2.cpp index 5d18e1d7..e72db799 100644 --- a/src/tests/correctness/corr-her2.cpp +++ b/src/tests/correctness/corr-her2.cpp @@ -115,22 +115,17 @@ her2CorrectnessTest(TestParams *params) } alpha = convertMultiplier(params->alpha); - ::std::cerr << "Generating input data... "; - randomHer2Matrices(params->order, params->uplo, params->N, &alpha, (blasA + params->offa), params->lda, (X + params->offBX), params->incx, (Y + params->offCY), params->incy); // Copy blasA to clblasA memcpy(clblasA, blasA, (lengthA + params->offa)* sizeof(*blasA)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(clblasA, (lengthA + params->offa)* sizeof(*clblasA), 0,CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(Y, (lengthY + params->offCY)* sizeof(*Y), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xHER2 routine... "; - clblasOrder order; clblasUplo fUplo; order = params->order; @@ -147,7 +142,6 @@ her2CorrectnessTest(TestParams *params) else { ::clMath::blas::her2( order, fUplo, params->N, alpha, X, params->offBX, params->incx, Y, params->offCY, params->incy, blasA, params->offa, params->lda); } - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL) || (bufY == NULL)) { /* Skip the test, the most probable reason is @@ -165,8 +159,6 @@ her2CorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHER2 routine... "; - err = (cl_int)::clMath::clblas::her2( params->order, params->uplo, params->N, alpha, bufX, params->offBX, params->incx, bufY, params->offCY, params->incy, bufA, params->offa, params->lda, params->numCommandQueues, base->commandQueues(), @@ -187,8 +179,6 @@ her2CorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufA, CL_TRUE, 0, (lengthA + params->offa) * sizeof(*clblasA), clblasA, 0, @@ -203,6 +193,14 @@ her2CorrectnessTest(TestParams *params) compareMatrices(params->order, params->N , params->N, (blasA + params->offa), (clblasA + params->offa), params->lda); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, 1, params->alpha, params->offBX, params->incx, params->offCY, params->incy, params->offa, params->lda); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasA, clblasA, X, Y); delete[] events; } diff --git a/src/tests/correctness/corr-her2k.cpp b/src/tests/correctness/corr-her2k.cpp index d7db83af..06675c85 100644 --- a/src/tests/correctness/corr-her2k.cpp +++ b/src/tests/correctness/corr-her2k.cpp @@ -106,8 +106,6 @@ her2kCorrectnessTest(TestParams *params) alpha = convertMultiplier(params->alpha); beta = convertMultiplier(params->beta); - ::std::cerr << "Generating input data... "; - clblasTranspose ftransB = (params->transA==clblasNoTrans)? clblasConjTrans: clblasNoTrans; randomGemmMatrices(params->order, params->transA, ftransB, @@ -115,7 +113,6 @@ her2kCorrectnessTest(TestParams *params) B, params->ldb, true, &beta, blasC, params->ldc); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*blasC)); - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), CL_MEM_READ_ONLY); @@ -141,7 +138,6 @@ her2kCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling reference xHER2K routine... "; T fAlpha = alpha; if (params->order == clblasColumnMajor) { ::clMath::blas::her2k(clblasColumnMajor, params->uplo, params->transA, @@ -158,9 +154,7 @@ her2kCorrectnessTest(TestParams *params) A, 0, params->lda, B, 0, params->ldb, CREAL(beta), blasC, 0, params->ldc); } - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling clblas xHER2K routine... "; err = (cl_int)::clMath::clblas::her2k(params->order, params->uplo, params->transA, params->N, params->K, alpha, bufA, params->offA, params->lda, bufB, params->offBX, params->ldb, @@ -183,7 +177,6 @@ her2kCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, params->offCY * sizeof(*clblasC), params->rowsC * params->columnsC * sizeof(*clblasC), clblasC, 0, NULL, NULL); @@ -191,6 +184,14 @@ her2kCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufB, bufC); compareMatrices(params->order, params->N, params->N, blasC, clblasC, params->ldc); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->N, params->K, true, params->alpha, + params->offa, params->lda, params->offBX, params->ldb, true, params->beta, params->offCY, params->ldc); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-herk.cpp b/src/tests/correctness/corr-herk.cpp index 2b5d8ab0..8158984c 100644 --- a/src/tests/correctness/corr-herk.cpp +++ b/src/tests/correctness/corr-herk.cpp @@ -118,15 +118,11 @@ herkCorrectnessTest(TestParams *params) alpha = convertMultiplier(params->alpha); beta = convertMultiplier(params->beta); - ::std::cerr << "Generating input data... "; - randomGemmMatrices(params->order, params->transA, clblasNoTrans, params->N, params->N, params->K, useAlpha, &alpha, A, params->lda, NULL, 0, useBeta, &beta, blasC, params->ldc); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*blasC)); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xHERK routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::herk(clblasColumnMajor, params->uplo, params->transA, params->N, params->K, CREAL(alpha), A, params->lda, @@ -158,7 +154,6 @@ herkCorrectnessTest(TestParams *params) A, params->lda, CREAL(beta), blasC, params->ldc); } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -184,7 +179,6 @@ herkCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHERK routine... "; err = (cl_int)::clMath::clblas::herk(params->order, params->uplo, params->transA, params->N, params->K, CREAL(alpha), bufA, params->offA, params->lda, @@ -207,7 +201,6 @@ herkCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, params->offCY * sizeof(*clblasC), @@ -218,6 +211,14 @@ herkCorrectnessTest(TestParams *params) compareMatrices(params->order, params->N, params->N, blasC, clblasC, params->ldc); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->N, params->K, true, params->alpha, + params->offA, params->lda, true, params->beta, params->offCY, params->ldc); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-hpmv.cpp b/src/tests/correctness/corr-hpmv.cpp index 95317741..5da7828b 100644 --- a/src/tests/correctness/corr-hpmv.cpp +++ b/src/tests/correctness/corr-hpmv.cpp @@ -105,8 +105,6 @@ hpmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((AP == NULL) || (X == NULL) || (blasY == NULL) || (clblasY == NULL)) { deleteBuffers(AP, X, blasY, clblasY); @@ -123,15 +121,12 @@ hpmvCorrectnessTest(TestParams *params) (X + params->offBX), params->incx, true, &beta, (blasY + params->offCY), params->incy); // Copy blasY to clblasY memcpy(clblasY, blasY, (lengthY + params->offCY)* sizeof(*blasY)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufAP = base->createEnqueueBuffer(AP, (lengthA + params->offA)* sizeof(*AP), 0, CL_MEM_READ_ONLY); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(clblasY, (lengthY + params->offCY) * sizeof(*clblasY), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xHPMV routine... "; - clblasOrder order; clblasUplo fUplo; @@ -146,7 +141,6 @@ hpmvCorrectnessTest(TestParams *params) } ::clMath::blas::hpmv( order, fUplo, params->N, alpha, AP, params->offA, X, params->offBX, params->incx, beta, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufAP == NULL) || (bufX == NULL) || (bufY == NULL)) { // Skip the test, the most probable reason is @@ -164,8 +158,6 @@ hpmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHPMV routine... "; - err = (cl_int)::clMath::clblas::hpmv(params->order, params->uplo, params->N, alpha, bufAP, params->offA, bufX, params->offBX, params->incx, beta, bufY, params->offCY, params->incy, params->numCommandQueues, base->commandQueues(), 0, NULL, events); @@ -185,8 +177,6 @@ hpmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, (lengthY + params->offCY) * sizeof(*clblasY), clblasY, 0, diff --git a/src/tests/correctness/corr-hpr.cpp b/src/tests/correctness/corr-hpr.cpp index 7a513c30..d7d7e380 100644 --- a/src/tests/correctness/corr-hpr.cpp +++ b/src/tests/correctness/corr-hpr.cpp @@ -100,17 +100,13 @@ hprCorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; randomHerMatrices( params->order, params->uplo, params->N, &alpha_, (AP + params->offa), params->lda, (X + params->offBX), params->incx ); memcpy(backA, AP, (lengthAP + params->offa)* sizeof(T)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufAP = base->createEnqueueBuffer(AP, (lengthAP + params->offa) * sizeof(T), 0, CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX) * sizeof(*X), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xHPR routine... "; - clblasOrder fOrder; clblasUplo fUplo; fOrder = params->order; @@ -123,7 +119,6 @@ hprCorrectnessTest(TestParams *params) fUplo = (fUplo == clblasLower)? clblasUpper : clblasLower; } clMath::blas::hpr( fOrder, fUplo, params->N, CREAL(alpha_), X , params->offBX, params->incx, AP, params->offa); - ::std::cerr << "Done" << ::std::endl; if ((bufAP == NULL) || (bufX == NULL) ) { /* Skip the test, the most probable reason is @@ -150,8 +145,6 @@ hprCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHPR routine... "; - err = (cl_int)::clMath::clblas::hpr( params->order, params->uplo, params->N, CREAL(alpha_), bufX, params->offBX, params->incx, bufAP, params->offa, params->numCommandQueues, base->commandQueues(), @@ -172,7 +165,6 @@ hprCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; err = clEnqueueReadBuffer(base->commandQueues()[0], bufAP, CL_TRUE, 0, (lengthAP + params->offa) * sizeof(T), backA, 0, @@ -184,8 +176,6 @@ hprCorrectnessTest(TestParams *params) releaseMemObjects(bufAP, bufX); - printf("Comparing the results\n"); - compareMatrices(clblasColumnMajor, lengthAP, 1, (AP + params->offa), (backA + params->offa), lengthAP); deleteBuffers( AP, backA, X); diff --git a/src/tests/correctness/corr-hpr2.cpp b/src/tests/correctness/corr-hpr2.cpp index 313f167d..0ba272a1 100644 --- a/src/tests/correctness/corr-hpr2.cpp +++ b/src/tests/correctness/corr-hpr2.cpp @@ -115,21 +115,17 @@ hpr2CorrectnessTest(TestParams *params) } alpha = convertMultiplier(params->alpha); - ::std::cerr << "Generating input data... "; randomHer2Matrices(params->order, params->uplo, params->N, &alpha, (blasAP + params->offa), params->lda, (X + params->offBX), params->incx, (Y + params->offCY), params->incy); // Copy blasA to clblasA memcpy(clblasAP, blasAP, (lengthAP + params->offa)* sizeof(*blasAP)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufAP = base->createEnqueueBuffer(clblasAP, (lengthAP + params->offa)* sizeof(*clblasAP), 0,CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(Y, (lengthY + params->offCY)* sizeof(*Y), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xHPR2 routine... "; - clblasOrder order; clblasUplo fUplo; order = params->order; @@ -146,7 +142,6 @@ hpr2CorrectnessTest(TestParams *params) else { ::clMath::blas::hpr2( order, fUplo, params->N, alpha, X, params->offBX, params->incx, Y, params->offCY, params->incy, blasAP, params->offa); } - ::std::cerr << "Done" << ::std::endl; if ((bufAP == NULL) || (bufX == NULL) || (bufY == NULL)) { /* Skip the test, the most probable reason is @@ -164,8 +159,6 @@ hpr2CorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xHPR2 routine... "; - err = (cl_int)::clMath::clblas::hpr2( params->order, params->uplo, params->N, alpha, bufX, params->offBX, params->incx, bufY, params->offCY, params->incy, bufAP, params->offa, params->numCommandQueues, base->commandQueues(), @@ -186,8 +179,6 @@ hpr2CorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufAP, CL_TRUE, 0, (lengthAP + params->offa) * sizeof(*clblasAP), clblasAP, 0, diff --git a/src/tests/correctness/corr-iamax.cpp b/src/tests/correctness/corr-iamax.cpp index 81f2bd32..1fbe6f84 100644 --- a/src/tests/correctness/corr-iamax.cpp +++ b/src/tests/correctness/corr-iamax.cpp @@ -106,20 +106,15 @@ iamaxCorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; randomVectors(params->N, (blasX + params->offBX), params->incx, NULL, 0); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(T), 0, CL_MEM_READ_ONLY); bufiAmax = base->createEnqueueBuffer(NULL, (1 + params->offa) * sizeof(int), 0, CL_MEM_READ_WRITE); scratchBuff = base->createEnqueueBuffer(NULL, (2 * lengthX * sizeof(T)), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xiAMAX routine... "; - *blasiAmax = ::clMath::blas::iamax( params->N, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; if ((bufX == NULL) || (bufiAmax == NULL) || (scratchBuff == NULL)) { releaseMemObjects(bufX, bufiAmax, scratchBuff); @@ -134,8 +129,6 @@ iamaxCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xiAMAX routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -159,8 +152,6 @@ iamaxCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufiAmax, CL_TRUE, 0, (1 + params->offa) * sizeof(*clblasiAmax), clblasiAmax, 0, NULL, NULL); @@ -170,6 +161,13 @@ iamaxCorrectnessTest(TestParams *params) } compareValues((blasiAmax), (clblasiAmax+params->offa), 0); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offBX, params->incx); + ::std::cerr << "offiAmax = " << params->offa << ::std::endl; + } + releaseMemObjects(bufX, bufiAmax, scratchBuff); deleteBuffers(blasX, blasiAmax, clblasiAmax); delete[] events; diff --git a/src/tests/correctness/corr-nrm2.cpp b/src/tests/correctness/corr-nrm2.cpp index 588ee825..9fad6122 100644 --- a/src/tests/correctness/corr-nrm2.cpp +++ b/src/tests/correctness/corr-nrm2.cpp @@ -109,20 +109,15 @@ nrm2CorrectnessTest(TestParams *params) } srand(params->seed); - ::std::cerr << "Generating input data... "; randomVectors(params->N, (blasX + params->offBX), params->incx, (T1*)NULL, 0, true); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); bufNRM2 = base->createEnqueueBuffer(NULL, (1 + params->offa) * sizeof(T2), 0, CL_MEM_READ_WRITE); scratchBuff = base->createEnqueueBuffer(NULL, (lengthX * 2 * sizeof(T1)), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xNRM2 routine... "; - *blasNRM2 = ::clMath::blas::nrm2( params->N, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; if ((bufX == NULL) || (bufNRM2 == NULL) || (scratchBuff == NULL)) { releaseMemObjects(bufX, bufNRM2, scratchBuff); @@ -138,8 +133,6 @@ nrm2CorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xNRM2 routine... "; - DataType type; type = ( typeid(T1) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T1) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T1) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -163,8 +156,6 @@ nrm2CorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufNRM2, CL_TRUE, 0, (1 + params->offa) * sizeof(*clblasNRM2), clblasNRM2, 0, NULL, NULL); @@ -182,6 +173,13 @@ nrm2CorrectnessTest(TestParams *params) } compareValues( (blasNRM2), (clblasNRM2+params->offa), delta); + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offBX, params->incx); + ::std::cerr << "offNRM2 = " << params->offa << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasX); deleteBuffers(blasNRM2, clblasNRM2); delete[] events; diff --git a/src/tests/correctness/corr-rot.cpp b/src/tests/correctness/corr-rot.cpp index c9df97ac..fb208eb8 100644 --- a/src/tests/correctness/corr-rot.cpp +++ b/src/tests/correctness/corr-rot.cpp @@ -112,8 +112,6 @@ rotCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - //Filling random values for SA and SB. C & S are only for output sake randomVectors(params->N, (X + params->offa), params->incx, (Y+params->offb), params->incy); @@ -123,17 +121,12 @@ rotCorrectnessTest(TestParams *params) memcpy(back_X, X, (lengthx + params->offa) * sizeof(T)); memcpy(back_Y, Y, (lengthy + params->offb) * sizeof(T)); - ::std::cerr << "Done" << ::std::endl; - // Allocate buffers bufX = base->createEnqueueBuffer(X, (lengthx + params->offa) * sizeof(T), 0, CL_MEM_READ_WRITE); bufY = base->createEnqueueBuffer(Y, (lengthy + params->offb) * sizeof(T), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xROT routine... "; - ::clMath::blas::rot(params->N, back_X, params->offa, params->incx, back_Y, params->offb, params->incy, alpha, beta); - ::std::cerr << "Done" << ::std::endl; // Hold X vector @@ -151,9 +144,6 @@ rotCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xROT routine... "; - - err = (cl_int)::clMath::clblas::rot( params->N, bufX, params->offa, params->incx, bufY, params->offb, params->incy, alpha, beta, params->numCommandQueues, base->commandQueues(), 0, NULL, events); @@ -174,8 +164,6 @@ rotCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthx + params->offa) * sizeof(T), X, 0, NULL, NULL); @@ -194,6 +182,12 @@ rotCorrectnessTest(TestParams *params) compareMatrices(clblasRowMajor, lengthx , 1, (back_X + params->offa), (X + params->offa), 1); compareMatrices(clblasRowMajor, lengthy , 1, (back_Y + params->offb), (Y + params->offb), 1); + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offa, params->incx, params->offb, params->incy, params->alpha, params->beta); + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(X, Y, back_X, back_Y); delete[] events; } diff --git a/src/tests/correctness/corr-rotg.cpp b/src/tests/correctness/corr-rotg.cpp index 21ef905b..05be85cc 100644 --- a/src/tests/correctness/corr-rotg.cpp +++ b/src/tests/correctness/corr-rotg.cpp @@ -135,8 +135,6 @@ rotgCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - //Filling random values for SA and SB. C & S are only for output sake randomVectors(1, (SA+params->offBX), 1, (SB+params->offCY), 1); S[params->offb] = back_S[params->offb] = ZERO(); @@ -144,18 +142,17 @@ rotgCorrectnessTest(TestParams *params) back_SA[params->offBX] = SA[params->offBX]; back_SB[params->offCY] = SB[params->offCY]; - ::std::cerr << "Done" << ::std::endl; //printing the inputs, as they change after processing - ::std::cerr << "A = "; - printElement(SA[params->offBX]); - ::std::cerr << "\tB = "; - printElement(SB[params->offCY]); - ::std::cerr << "\tC = "; - printElement(C[params->offa]); - ::std::cerr << "\tS = "; - printElement(S[params->offb]); - ::std::cout << std::endl << std::endl; + //::std::cerr << "A = "; + //printElement(SA[params->offBX]); + //::std::cerr << "\tB = "; + //printElement(SB[params->offCY]); + //::std::cerr << "\tC = "; + //printElement(C[params->offa]); + //::std::cerr << "\tS = "; + //printElement(S[params->offb]); + //::std::cout << std::endl << std::endl; // Allocate buffers bufSA = base->createEnqueueBuffer(SA, (length + params->offBX) * sizeof(T1), 0, CL_MEM_READ_WRITE); @@ -163,10 +160,7 @@ rotgCorrectnessTest(TestParams *params) bufC = base->createEnqueueBuffer(C, (length + params->offa ) * sizeof(T2), 0, CL_MEM_WRITE_ONLY); bufS = base->createEnqueueBuffer(S, (length + params->offb ) * sizeof(T1), 0, CL_MEM_WRITE_ONLY); - ::std::cerr << "Calling reference xROTG routine... "; - ::clMath::blas::rotg(back_SA, params->offBX, back_SB, params->offCY, back_C, params->offa, back_S, params->offb); - ::std::cerr << "Done" << ::std::endl; // Hold X vector @@ -185,8 +179,6 @@ rotgCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xROTG routine... "; - DataType type; type = ( typeid(T1) == typeid(cl_float)) ? TYPE_FLOAT : ( typeid(T1) == typeid(cl_double)) ? TYPE_DOUBLE: @@ -214,8 +206,6 @@ rotgCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufSA, CL_TRUE, 0, (length + params->offBX) * sizeof(T1), SA, 0, NULL, NULL); @@ -251,6 +241,12 @@ rotgCorrectnessTest(TestParams *params) delta = deltaForType * returnMax(back_S[params->offb]); compareValues( (back_S + params->offb), (S + params->offb), delta); + if (::testing::Test::HasFailure()) + { + printTestParams(params->offBX, params->offCY, params->offa, params->offb); + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(SA, SB, S, back_SA, back_SB, back_S); deleteBuffers(C, back_C); delete[] events; diff --git a/src/tests/correctness/corr-rotm.cpp b/src/tests/correctness/corr-rotm.cpp index 4a1a02e2..c791108e 100644 --- a/src/tests/correctness/corr-rotm.cpp +++ b/src/tests/correctness/corr-rotm.cpp @@ -126,8 +126,6 @@ rotmCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - randomVectors(params->N, (X + params->offa), params->incx, (Y+params->offb), params->incy); randomVectors(4, (PARAM + params->offc + 1), 1); //1st element is initialized separately @@ -138,18 +136,13 @@ rotmCorrectnessTest(TestParams *params) memcpy(back_Y, Y, (lengthy + params->offb)*sizeof(T)); memcpy(back_PARAM, PARAM, (params->offc + 5)*sizeof(T)); - ::std::cerr << "Done" << ::std::endl; - // Allocate buffers bufX = base->createEnqueueBuffer(X, (lengthx + params->offa) * sizeof(T), 0, CL_MEM_READ_WRITE); bufY = base->createEnqueueBuffer(Y, (lengthy + params->offb) * sizeof(T), 0, CL_MEM_READ_WRITE); bufParam = base->createEnqueueBuffer(PARAM, (5 + params->offc) * sizeof(T), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xROTM routine... "; - ::clMath::blas::rotm(params->N, back_X, params->offa, params->incx, back_Y, params->offb, params->incy, back_PARAM, params->offc); - ::std::cerr << "Done" << ::std::endl; if ((bufX == NULL) || (bufY == NULL) || (bufParam == NULL)) { @@ -165,8 +158,6 @@ rotmCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xROTM routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float)) ? TYPE_FLOAT : TYPE_DOUBLE; @@ -191,8 +182,6 @@ rotmCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthx + params->offa) * sizeof(T), X, 0, NULL, NULL); @@ -210,6 +199,12 @@ rotmCorrectnessTest(TestParams *params) compareMatrices(clblasColumnMajor, lengthx , 1, (back_X + params->offa), (X + params->offa), lengthx); compareMatrices(clblasColumnMajor, lengthy , 1, (back_Y + params->offb), (Y + params->offb), lengthy); + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offa, params->incx, params->offb, params->incy, params->offc, params->alpha); + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(X, Y, PARAM, back_X, back_Y, back_PARAM); delete[] events; } diff --git a/src/tests/correctness/corr-rotmg.cpp b/src/tests/correctness/corr-rotmg.cpp index 851310c9..1ff65551 100644 --- a/src/tests/correctness/corr-rotmg.cpp +++ b/src/tests/correctness/corr-rotmg.cpp @@ -134,8 +134,6 @@ rotmgCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - //Filling random values for SA and SB. C & S are only for output sake randomRotmg( (D1 + params->offa), (D2 + params->offb), (X + params->offBX), (Y + params->offCY), (PARAM + params->offc) ); @@ -149,8 +147,6 @@ rotmgCorrectnessTest(TestParams *params) memcpy(back_D2, D2, (1 + params->offb)*sizeof(T)); memcpy(back_PARAM, PARAM, (params->offc + 5)*sizeof(T)); - ::std::cerr << "Done" << ::std::endl; - // Allocate buffers bufD1 = base->createEnqueueBuffer(D1, (1 + params->offa) * sizeof(T), 0, CL_MEM_READ_WRITE); bufD2 = base->createEnqueueBuffer(D2, (1 + params->offb) * sizeof(T), 0, CL_MEM_READ_WRITE); @@ -158,11 +154,8 @@ rotmgCorrectnessTest(TestParams *params) bufY = base->createEnqueueBuffer(Y, (1 + params->offCY) * sizeof(T), 0, CL_MEM_READ_ONLY); bufParam = base->createEnqueueBuffer(PARAM, (5 + params->offc) * sizeof(T), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xROTMG routine... "; - ::clMath::blas::rotmg(back_D1, params->offa, back_D2, params->offb, back_X, params->offBX, back_Y, params->offCY, back_PARAM, params->offc); - ::std::cerr << "Done" << ::std::endl; // Hold X vector @@ -181,8 +174,6 @@ rotmgCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xROTMG routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float)) ? TYPE_FLOAT : TYPE_DOUBLE; @@ -210,7 +201,6 @@ rotmgCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; err = clEnqueueReadBuffer(base->commandQueues()[0], bufD1, CL_TRUE, 0, (1 + params->offa) * sizeof(T), D1, 0, NULL, NULL); @@ -259,6 +249,12 @@ rotmgCorrectnessTest(TestParams *params) } compareMatrices(clblasColumnMajor, 5 , 1, (back_PARAM + params->offc), (PARAM + params->offc), 5, deltaArr); + if (::testing::Test::HasFailure()) + { + printTestParams(params->offBX, params->offCY, params->offa, params->offb, params->offc, params->alpha); + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(D1, D2, X, Y, PARAM); deleteBuffers(back_D1, back_D2, back_X, back_Y, back_PARAM); diff --git a/src/tests/correctness/corr-sbmv.cpp b/src/tests/correctness/corr-sbmv.cpp index b17f6699..bf974c59 100644 --- a/src/tests/correctness/corr-sbmv.cpp +++ b/src/tests/correctness/corr-sbmv.cpp @@ -106,8 +106,6 @@ sbmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((A == NULL) || (X == NULL) || (blasY == NULL) || (clblasY == NULL)) { deleteBuffers(A, X, blasY, clblasY); @@ -124,15 +122,12 @@ sbmvCorrectnessTest(TestParams *params) (A + params->offA), params->lda, (X+params->offBX), params->incx, (blasY+params->offCY), params->incy ); // Copy blasY to clblasY memcpy(clblasY, blasY, (lengthY + params->offCY)* sizeof(*blasY)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offA)* sizeof(*A), 0, CL_MEM_READ_ONLY); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(clblasY, (lengthY + params->offCY) * sizeof(*clblasY), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xSBMV routine... "; - clblasOrder fOrder; clblasUplo fUplo; fOrder = params->order; @@ -148,7 +143,6 @@ sbmvCorrectnessTest(TestParams *params) clMath::blas::sbmv(fOrder, fUplo, fN, fK, alpha, A, params->offA, params->lda, X, params->offBX, params->incx, beta, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL) || (bufY == NULL)) { // Skip the test, the most probable reason is @@ -166,8 +160,6 @@ sbmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSBMV routine... "; - err = (cl_int)clMath::clblas::sbmv(params->order, params->uplo, params->N, params->K, alpha, bufA, params->offA, params->lda, bufX, params->offBX, params->incx, beta, bufY, params->offCY, params->incy, @@ -188,8 +180,6 @@ sbmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, (lengthY + params->offCY) * sizeof(*clblasY), clblasY, 0, @@ -202,6 +192,15 @@ sbmvCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufX, bufY); compareMatrices(clblasColumnMajor, lengthY , 1, (blasY + params->offCY), (clblasY + params->offCY), lengthY); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, params->K, params->alpha, params->offA, + params->lda, params->offBX, params->incx, params->beta, params->offCY, params->incy); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, X, blasY, clblasY); delete[] events; } diff --git a/src/tests/correctness/corr-scal.cpp b/src/tests/correctness/corr-scal.cpp index ad156f63..72d62464 100644 --- a/src/tests/correctness/corr-scal.cpp +++ b/src/tests/correctness/corr-scal.cpp @@ -95,19 +95,14 @@ void scalCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - randomVectors(params->N, (blasX+params->offBX), params->incx); alpha = convertMultiplier(params->alpha); memcpy(clblasX, blasX, (lengthX + params->offBX)* sizeof(*blasX)); - ::std::cerr << "Done" << ::std::endl; bufX = base->createEnqueueBuffer(clblasX, (lengthX + params->offBX)* sizeof(*clblasX), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xSCAL routine... "; // Both blas and clBlas wrapper functions consider the real part of alpha in case of css/zdscal // This is to make sure both get the same scalar alpha. check wrapper functions ::clMath::blas::scal(is_css_zds, params->N, alpha, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; if (bufX == NULL) { /* Skip the test, the most probable reason is @@ -125,7 +120,6 @@ void scalCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSCAL routine... "; // Both blas and clBlas wrapper functions consider the real part of alpha in case of css/zdscal // This is to make sure both get the same scalar alpha. check wrapper functions err = (cl_int)::clMath::clblas::scal(is_css_zds, params->N, alpha, bufX, params->offBX, @@ -145,8 +139,6 @@ void scalCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthX + params->offBX) * sizeof(*clblasX), clblasX, 0, NULL, NULL); @@ -158,6 +150,14 @@ void scalCorrectnessTest(TestParams *params) compareMatrices(clblasColumnMajor, lengthX , 1, (blasX + params->offBX), (clblasX + params->offBX), lengthX); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->alpha, params->offBX, params->incx); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasX, clblasX); delete[] events; } diff --git a/src/tests/correctness/corr-spmv.cpp b/src/tests/correctness/corr-spmv.cpp index dcbad3b5..58f14c4a 100644 --- a/src/tests/correctness/corr-spmv.cpp +++ b/src/tests/correctness/corr-spmv.cpp @@ -105,8 +105,6 @@ spmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((AP == NULL) || (X == NULL) || (blasY == NULL) || (clblasY == NULL)) { deleteBuffers(AP, X, blasY, clblasY); @@ -123,15 +121,12 @@ spmvCorrectnessTest(TestParams *params) (X + params->offBX), params->incx, true, &beta, (blasY + params->offCY), params->incy); // Copy blasY to clblasY memcpy(clblasY, blasY, (lengthY + params->offCY)* sizeof(*blasY)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufAP = base->createEnqueueBuffer(AP, (lengthA + params->offA)* sizeof(*AP), 0, CL_MEM_READ_ONLY); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(clblasY, (lengthY + params->offCY) * sizeof(*clblasY), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xSPMV routine... "; - clblasOrder order; clblasUplo fUplo; @@ -145,7 +140,6 @@ spmvCorrectnessTest(TestParams *params) } ::clMath::blas::spmv( order, fUplo, params->N, alpha, AP, params->offA, X, params->offBX, params->incx, beta, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; if ((bufAP == NULL) || (bufX == NULL) || (bufY == NULL)) { // Skip the test, the most probable reason is @@ -163,8 +157,6 @@ spmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSPMV routine... "; - err = (cl_int)::clMath::clblas::spmv(params->order, params->uplo, params->N, alpha, bufAP, params->offA, bufX, params->offBX, params->incx, beta, bufY, params->offCY, params->incy, params->numCommandQueues, base->commandQueues(), 0, NULL, events); @@ -184,8 +176,6 @@ spmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufY, CL_TRUE, 0, (lengthY + params->offCY) * sizeof(*clblasY), clblasY, 0, @@ -199,6 +189,15 @@ spmvCorrectnessTest(TestParams *params) compareMatrices(clblasColumnMajor, lengthY , 1, (blasY + params->offCY), (clblasY + params->offCY), lengthY); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, base->alpha(), params->offA, + 0, params->offBX, params->incx, base->beta(), params->offCY, params->incy); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(AP, X, blasY, clblasY); delete[] events; } diff --git a/src/tests/correctness/corr-spr.cpp b/src/tests/correctness/corr-spr.cpp index 4b00a02b..56081122 100644 --- a/src/tests/correctness/corr-spr.cpp +++ b/src/tests/correctness/corr-spr.cpp @@ -99,9 +99,6 @@ sprCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - - memset(blasAP, -1, (lengthAP + params->offa)); memset(clblasAP, -1, (lengthAP + params->offa)); memset(X, -1, (lengthX + params->offBX)); @@ -127,13 +124,9 @@ sprCorrectnessTest(TestParams *params) memcpy(clblasAP, blasAP, (lengthAP + params->offa)* sizeof(*blasAP)); - ::std::cerr << "Done" << ::std::endl; - bufAP = base->createEnqueueBuffer(clblasAP, (lengthAP + params->offa) * sizeof(*clblasAP), 0, CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xSPR routine... "; - clblasOrder order; clblasUplo fUplo; order = params->order; @@ -152,7 +145,6 @@ sprCorrectnessTest(TestParams *params) } clMath::blas::spr( clblasColumnMajor, fUplo, params->N, alpha, X, params->offBX, params->incx, blasAP, params->offa); - ::std::cerr << "Done" << ::std::endl; if ((bufAP == NULL) || (bufX == NULL) ) { /* Skip the test, the most probable reason is @@ -170,8 +162,6 @@ sprCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSPR routine... "; - err = (cl_int)::clMath::clblas::spr( params->order, params->uplo, params->N, alpha, bufX, params->offBX, params->incx, bufAP, params->offa, params->numCommandQueues, base->commandQueues(), @@ -192,7 +182,6 @@ sprCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; err = clEnqueueReadBuffer(base->commandQueues()[0], bufAP, CL_TRUE, 0, (lengthAP + params->offa) * sizeof(*clblasAP), clblasAP, 0, @@ -203,7 +192,6 @@ sprCorrectnessTest(TestParams *params) } releaseMemObjects(bufAP, bufX); - printf("Comparing the results\n"); compareMatrices(clblasColumnMajor, lengthAP , 1, (blasAP + params->offa), (clblasAP + params->offa), lengthAP); diff --git a/src/tests/correctness/corr-spr2.cpp b/src/tests/correctness/corr-spr2.cpp index c000e64c..f852daa1 100644 --- a/src/tests/correctness/corr-spr2.cpp +++ b/src/tests/correctness/corr-spr2.cpp @@ -111,21 +111,17 @@ spr2CorrectnessTest(TestParams *params) alpha = convertMultiplier(params->alpha); useAlpha = true; - ::std::cerr << "Generating input data... "; randomSyr2Matrices(params->order, params->uplo, params->N, useAlpha, &alpha, (blasAP + params->offa), params->lda, (X + params->offBX), params->incx, (Y + params->offCY), params->incy); // Copy blasAP to clblasAP memcpy(clblasAP, blasAP, (lengthAP + params->offa)* sizeof(*blasAP)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufAP = base->createEnqueueBuffer(clblasAP, (lengthAP + params->offa)* sizeof(*clblasAP), 0,CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(Y, (lengthY + params->offCY)* sizeof(*Y), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xSPR2 routine... "; - clblasOrder order; clblasUplo fUplo; @@ -140,7 +136,6 @@ spr2CorrectnessTest(TestParams *params) ::clMath::blas::spr2( order, fUplo, params->N, alpha, X, params->offBX, params->incx, Y, params->offCY, params->incy, blasAP, params->offa); - ::std::cerr << "Done" << ::std::endl; if ((bufAP == NULL) || (bufX == NULL) || (bufY == NULL)) { /* Skip the test, the most probable reason is @@ -158,8 +153,6 @@ spr2CorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSPR2 routine... "; - err = (cl_int)::clMath::clblas::spr2( params->order, params->uplo, params->N, alpha, bufX, params->offBX, params->incx, bufY, params->offCY, params->incy, bufAP, params->offa, params->numCommandQueues, base->commandQueues(), @@ -180,8 +173,6 @@ spr2CorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufAP, CL_TRUE, 0, (lengthAP + params->offa) * sizeof(*clblasAP), clblasAP, 0, diff --git a/src/tests/correctness/corr-swap.cpp b/src/tests/correctness/corr-swap.cpp index e62f88a1..706779d0 100644 --- a/src/tests/correctness/corr-swap.cpp +++ b/src/tests/correctness/corr-swap.cpp @@ -109,16 +109,12 @@ swapCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - // Populate A and blasX randomVectors(params->N, (X+params->offBX), params->incx, (Y+params->offCY), params->incy); memcpy(blasX, X, (lengthX + params->offBX) * sizeof(T)); memcpy(blasY, Y, (lengthY + params->offCY) * sizeof(T)); - ::std::cerr << "Done" << ::std::endl; - // Allocate buffers bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(T), 0, CL_MEM_READ_WRITE); bufY = base->createEnqueueBuffer(Y, (lengthY + params->offCY)* sizeof(T), 0, CL_MEM_READ_WRITE); @@ -139,14 +135,8 @@ swapCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling reference xSWAP routine... "; - ::clMath::blas::swap( params->N, blasX, params->offBX, params->incx, blasY, params->offCY, params->incy); - ::std::cerr << "Done" << ::std::endl; - - - ::std::cerr << "Calling clblas xSWAP routine... "; DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : (( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: (( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE)); @@ -169,8 +159,6 @@ swapCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthX + params->offBX) * sizeof(T), X, 0, NULL, NULL); @@ -186,6 +174,13 @@ swapCorrectnessTest(TestParams *params) compareMatrices(clblasColumnMajor, lengthX , 1, (blasX + params->offBX), (X + params->offBX), lengthX); compareMatrices(clblasColumnMajor, lengthY , 1, (blasY + params->offCY), (Y + params->offCY), lengthY); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->N, params->offBX, params->incx, params->offCY, params->incy); + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(X, Y, blasX, blasY); delete[] events; } diff --git a/src/tests/correctness/corr-symm.cpp b/src/tests/correctness/corr-symm.cpp index cb747689..c4670ac8 100644 --- a/src/tests/correctness/corr-symm.cpp +++ b/src/tests/correctness/corr-symm.cpp @@ -127,7 +127,6 @@ symmCorrectnessTest(TestParams *params) return; } srand(params->seed); - ::std::cerr << "Generating input data... "; int creationFlags = 0, AcreationFlags; creationFlags = creationFlags | RANDOM_INIT; @@ -158,9 +157,6 @@ symmCorrectnessTest(TestParams *params) bufB = base->createEnqueueBuffer(B, (lengthB + params->offb) * sizeof(T), 0, CL_MEM_READ_ONLY); bufC = base->createEnqueueBuffer(backC, (lengthC + params->offc) * sizeof(T), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xSYMM routine... "; - clblasOrder fOrder; clblasUplo fUplo; clblasSide fSide; @@ -184,7 +180,6 @@ symmCorrectnessTest(TestParams *params) // Call reference blas routine clMath::blas::symm(fOrder, fSide, fUplo, fM, fN, alpha_, A, params->offa, params->lda, B, params->offb, params->ldb, beta_, C, params->offc, params->ldc); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufB == NULL) || (bufC == NULL)) { /* Skip the test, the most probable reason is @@ -202,8 +197,6 @@ symmCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSYMM routine... "; - err = (cl_int)::clMath::clblas::symm( params->order, params->side, params->uplo, params->M, params->N, alpha_, bufA, params->offa, params->lda, bufB, params->offb, params->ldb, beta_, bufC, params->offc, params->ldc, params->numCommandQueues, base->commandQueues(), 0, NULL, events ); @@ -225,7 +218,6 @@ symmCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, 0, (lengthC + params->offc) * sizeof(T), backC, 0, @@ -235,6 +227,15 @@ symmCorrectnessTest(TestParams *params) // handle lda correctly based on row-major/col-major.. compareMatrices(params->order, params->M , params->N, (C + params->offc), (backC + params->offc), params->ldc); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->side, params->uplo, params->M, params->N, 1, params->alpha, 1, params->beta, params->lda, params->ldb, params->ldc, params->offa, params->offb, params->offc); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, C, backC); delete[] events; } diff --git a/src/tests/correctness/corr-symv.cpp b/src/tests/correctness/corr-symv.cpp index b5fb4201..c466abfc 100644 --- a/src/tests/correctness/corr-symv.cpp +++ b/src/tests/correctness/corr-symv.cpp @@ -76,8 +76,7 @@ symvCorrectnessTest(TestParams *params) isComplex = ((typeid(T) == typeid(FloatComplex)) || (typeid(T) == typeid(DoubleComplex))); if (canCaseBeSkipped(params, isComplex)) { - std::cerr << ">> Test is skipped because it has no importance for this " - "level of coverage" << std::endl; + std::cerr << ">> Test is skipped" << std::endl; SUCCEED(); return; } @@ -106,7 +105,6 @@ symvCorrectnessTest(TestParams *params) beta = convertMultiplier(params->beta); } - ::std::cerr << "Generating input data... "; setNans(params->rowsA * params->columnsA, A); setNans(params->rowsB * params->columnsB, B); setNans(params->rowsC * params->columnsC, blasC); @@ -125,9 +123,6 @@ symvCorrectnessTest(TestParams *params) setVectorNans(params->offCY, abs(params->incy), blasC, params->N, params->columnsC * params->rowsC); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*clblasC)); - ::std::cerr << "Done" << ::std::endl; - - ::std::cerr << "Calling reference xSYMV routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::symv(clblasColumnMajor, params->uplo, @@ -145,7 +140,6 @@ symvCorrectnessTest(TestParams *params) delete[] reorderedA; } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -170,7 +164,6 @@ symvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSYMV routine... "; err = (cl_int)::clMath::clblas::symv(params->order, params->uplo, params->N, alpha, bufA, params->offA, params->lda, bufB, params->offBX, params->incx, beta, bufC, params->offCY, params->incy, @@ -191,7 +184,6 @@ symvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, 0, params->rowsC * params->columnsC * sizeof(*clblasC), @@ -202,6 +194,15 @@ symvCorrectnessTest(TestParams *params) compareVectors(params->offCY, params->N, abs(params->incy), params->columnsC * params->rowsC, blasC, clblasC); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, useAlpha, base->alpha(), params->offA, params->lda, + params->incx, useBeta, base->beta(), params->incy); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-syr.cpp b/src/tests/correctness/corr-syr.cpp index 12967c9e..905585bb 100644 --- a/src/tests/correctness/corr-syr.cpp +++ b/src/tests/correctness/corr-syr.cpp @@ -99,9 +99,6 @@ syrCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - - memset(blasA, -1, (lengthA + params->offa)); memset(clblasA, -1, (lengthA + params->offa)); memset(X, -1, (lengthX + params->offBX)); @@ -142,14 +139,10 @@ syrCorrectnessTest(TestParams *params) memcpy(clblasA, blasA, (lengthA + params->offa)* sizeof(*blasA)); // memcpy(tempA, blasA, (lengthA + params->offa)* sizeof(*blasA)); - ::std::cerr << "Done" << ::std::endl; - // Allocate buffers bufA = base->createEnqueueBuffer(clblasA, (lengthA + params->offa) * sizeof(*clblasA), 0, CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xSYR routine... "; - clblasOrder order; clblasUplo fUplo; @@ -183,8 +176,6 @@ syrCorrectnessTest(TestParams *params) //printf("After acml\n"); //printMatrixBlock( params->order, 0, 0, params->N, params->N, params->lda, blasA); - ::std::cerr << "Done" << ::std::endl; - if ((bufA == NULL) || (bufX == NULL) ) { /* Skip the test, the most probable reason is * matrix too big for a device. @@ -201,8 +192,6 @@ syrCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSYR routine... "; - err = (cl_int)::clMath::clblas::syr( params->order, params->uplo, params->N, alpha, bufX, params->offBX, params->incx, bufA, params->offa, params->lda, params->numCommandQueues, base->commandQueues(), @@ -223,7 +212,6 @@ syrCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; err = clEnqueueReadBuffer(base->commandQueues()[0], bufA, CL_TRUE, 0, (lengthA + params->offa) * sizeof(*clblasA), clblasA, 0, @@ -241,10 +229,17 @@ syrCorrectnessTest(TestParams *params) // compareMatrices(clblasColumnMajor, 1, (params->lda - params->N), (blasA + params->offa + params->N), (tempA + params->offa + params->N), // params->lda); // delete[] tempA; - printf("Comparing the results\n"); compareMatrices(params->order, params->N , params->N, (blasA + params->offa), (clblasA + params->offa), params->lda); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, alpha, params->offBX, params->incx, params->offa, params->lda); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasA, clblasA, X); delete[] events; } diff --git a/src/tests/correctness/corr-syr2.cpp b/src/tests/correctness/corr-syr2.cpp index 4148ed56..453f03c2 100644 --- a/src/tests/correctness/corr-syr2.cpp +++ b/src/tests/correctness/corr-syr2.cpp @@ -111,22 +111,17 @@ syr2CorrectnessTest(TestParams *params) alpha = convertMultiplier(params->alpha); useAlpha = true; - ::std::cerr << "Generating input data... "; - randomSyr2Matrices(params->order, params->uplo, params->N, useAlpha, &alpha, (blasA + params->offa), params->lda, (X + params->offBX), params->incx, (Y + params->offCY), params->incy); // Copy blasA to clblasA memcpy(clblasA, blasA, (lengthA + params->offa)* sizeof(*blasA)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(clblasA, (lengthA + params->offa)* sizeof(*clblasA), 0,CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX)* sizeof(*X), 0, CL_MEM_READ_ONLY); bufY = base->createEnqueueBuffer(Y, (lengthY + params->offCY)* sizeof(*Y), 0, CL_MEM_READ_ONLY); - ::std::cerr << "Calling reference xSYR2 routine... "; - clblasOrder order; clblasUplo fUplo; @@ -141,7 +136,6 @@ syr2CorrectnessTest(TestParams *params) ::clMath::blas::syr2( order, fUplo, params->N, alpha, X, params->offBX, params->incx, Y, params->offCY, params->incy, blasA, params->offa, params->lda); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL) || (bufY == NULL)) { /* Skip the test, the most probable reason is @@ -159,8 +153,6 @@ syr2CorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSYR2 routine... "; - err = (cl_int)::clMath::clblas::syr2( params->order, params->uplo, params->N, alpha, bufX, params->offBX, params->incx, bufY, params->offCY, params->incy, bufA, params->offa, params->lda, params->numCommandQueues, base->commandQueues(), @@ -181,8 +173,6 @@ syr2CorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufA, CL_TRUE, 0, (lengthA + params->offa) * sizeof(*clblasA), clblasA, 0, @@ -197,6 +187,14 @@ syr2CorrectnessTest(TestParams *params) compareMatrices(clblasColumnMajor, params->N , params->N, (blasA + params->offa), (clblasA + params->offa), params->lda); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->N, alpha, params->offBX, params->incx, params->offCY, params->incy, params->offa, params->lda); + + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(blasA, clblasA, X, Y); delete[] events; } diff --git a/src/tests/correctness/corr-syr2k.cpp b/src/tests/correctness/corr-syr2k.cpp index d42c7f4c..313cfc6a 100644 --- a/src/tests/correctness/corr-syr2k.cpp +++ b/src/tests/correctness/corr-syr2k.cpp @@ -88,8 +88,7 @@ syr2kCorrectnessTest(TestParams *params) isComplex = ((typeid(T) == typeid(FloatComplex)) || (typeid(T) == typeid(DoubleComplex))); if (canCaseBeSkipped(params, isComplex)) { - std::cerr << ">> Test is skipped because it has no importance for this " - "level of coverage" << std::endl; + std::cerr << ">> Test is skipped" << std::endl; SUCCEED(); return; } @@ -115,7 +114,6 @@ syr2kCorrectnessTest(TestParams *params) beta = convertMultiplier(params->beta); } - ::std::cerr << "Generating input data... "; if (!useAlpha) { alpha = random(100); if (module(alpha) == 0.0) { @@ -130,9 +128,7 @@ syr2kCorrectnessTest(TestParams *params) params->N, params->N, params->K, true, &a, A, params->lda, B, params->ldb, useBeta, &beta, blasC, params->ldc); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*blasC)); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xSYR2K routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::syr2k(clblasColumnMajor, params->uplo, params->transA, params->N, params->K, alpha, A, @@ -160,7 +156,6 @@ syr2kCorrectnessTest(TestParams *params) delete[] reorderedB; delete[] reorderedA; } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -188,7 +183,6 @@ syr2kCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSYR2K routine... "; err = (cl_int)::clMath::clblas::syr2k(params->order, params->uplo, params->transA, params->N, params->K, alpha, bufA, params->offA, @@ -213,7 +207,6 @@ syr2kCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, params->offCY * sizeof(*clblasC), @@ -224,6 +217,14 @@ syr2kCorrectnessTest(TestParams *params) compareMatrices(params->order, params->N, params->N, blasC, clblasC, params->ldc); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->N, params->K, useAlpha, base->alpha(), + params->offA, params->lda, params->offBX, params->ldb, useBeta, base->beta(), params->offCY, params->ldc); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-syrk.cpp b/src/tests/correctness/corr-syrk.cpp index 8977718d..0e85505b 100644 --- a/src/tests/correctness/corr-syrk.cpp +++ b/src/tests/correctness/corr-syrk.cpp @@ -85,8 +85,7 @@ syrkCorrectnessTest(TestParams *params) isComplex = ((typeid(T) == typeid(FloatComplex)) || (typeid(T) == typeid(DoubleComplex))); if (canCaseBeSkipped(params, isComplex)) { - std::cerr << ">> Test is skipped because it has no importance for this " - "level of coverage" << std::endl; + std::cerr << ">> Test is skipped" << std::endl; SUCCEED(); return; } @@ -111,7 +110,6 @@ syrkCorrectnessTest(TestParams *params) beta = convertMultiplier(params->beta); } - ::std::cerr << "Generating input data... "; if (!useAlpha) { alpha = random(100); if (module(alpha) == 0.0) { @@ -123,9 +121,7 @@ syrkCorrectnessTest(TestParams *params) params->N, params->N, params->K, useAlpha, &alpha, A, params->lda, NULL, 0, useBeta, &beta, blasC, params->ldc); memcpy(clblasC, blasC, params->rowsC * params->columnsC * sizeof(*blasC)); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xSYRK routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::syrk(clblasColumnMajor, params->uplo, params->transA, params->N, params->K, alpha, A, params->lda, @@ -149,7 +145,6 @@ syrkCorrectnessTest(TestParams *params) delete[] reorderedC; delete[] reorderedA; } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -174,7 +169,6 @@ syrkCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xSYRK routine... "; err = (cl_int)::clMath::clblas::syrk(params->order, params->uplo, params->transA, params->N, params->K, alpha, bufA, params->offA, params->lda, @@ -197,7 +191,6 @@ syrkCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufC, CL_TRUE, params->offCY * sizeof(*clblasC), @@ -208,6 +201,14 @@ syrkCorrectnessTest(TestParams *params) compareMatrices(params->order, params->N, params->N, blasC, clblasC, params->ldc); + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->N, params->K, useAlpha, base->alpha(), + params->offA, params->lda, useBeta, base->beta(), params->offCY, params->ldc); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, blasC, clblasC); delete[] events; } diff --git a/src/tests/correctness/corr-tbmv.cpp b/src/tests/correctness/corr-tbmv.cpp index 7b438ffe..1fa78743 100644 --- a/src/tests/correctness/corr-tbmv.cpp +++ b/src/tests/correctness/corr-tbmv.cpp @@ -100,8 +100,6 @@ tbmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((A == NULL) || (blasX == NULL) || (clblasX == NULL)) { deleteBuffers(A, blasX, clblasX); @@ -114,15 +112,12 @@ tbmvCorrectnessTest(TestParams *params) // Copy blasY to clblasY memcpy(clblasX, blasX, (lengthX + params->offBX)* sizeof(*blasX)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offA)* sizeof(*A), 0, CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); bufXtemp = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xTBMV routine... "; - clblasOrder fOrder; clblasTranspose fTrans; clblasUplo fUplo; @@ -142,7 +137,6 @@ tbmvCorrectnessTest(TestParams *params) } clMath::blas::tbmv(fOrder, fUplo, fTrans, params->diag, fN, fK, A, params->offA, params->lda, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL)|| (bufXtemp == NULL)) { // Skip the test, the most probable reason is @@ -160,7 +154,6 @@ tbmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTBMV routine... "; DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT:( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT: TYPE_COMPLEX_DOUBLE; @@ -184,8 +177,6 @@ tbmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthX + params->offBX) * sizeof(*clblasX), clblasX, 0, @@ -198,6 +189,15 @@ tbmvCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufX, bufXtemp); compareMatrices(clblasColumnMajor, lengthX , 1, (blasX + params->offBX), (clblasX + params->offBX), lengthX); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->diag, params->N, params->K, params->offA, + params->lda, params->offBX, params->incx, 0, 1); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, blasX, clblasX); delete[] events; } diff --git a/src/tests/correctness/corr-tbsv.cpp b/src/tests/correctness/corr-tbsv.cpp index 17c59f3f..eb55b188 100644 --- a/src/tests/correctness/corr-tbsv.cpp +++ b/src/tests/correctness/corr-tbsv.cpp @@ -102,8 +102,6 @@ tbsvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - if((A == NULL) || (blasX == NULL) || (clblasX == NULL)) { deleteBuffers(A, blasX, clblasX, deltaX); @@ -124,14 +122,11 @@ tbsvCorrectnessTest(TestParams *params) (A + params->offA), params->lda, (blasX + params->offBX), params->incx, (deltaX + params->offBX) ); memcpy(clblasX, blasX, (lengthX + params->offBX)* sizeof(*blasX)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offA)* sizeof(*A), 0, CL_MEM_READ_WRITE); bufX = base->createEnqueueBuffer(blasX, (lengthX + params->offBX)* sizeof(*blasX), 0, CL_MEM_READ_WRITE); - ::std::cerr << "Calling reference xTBSV routine... "; - clblasOrder fOrder; clblasTranspose fTrans; clblasUplo fUplo; @@ -151,7 +146,6 @@ tbsvCorrectnessTest(TestParams *params) } clMath::blas::tbsv(fOrder, fUplo, fTrans, params->diag, fN, fK, A, params->offA, params->lda, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; if ((bufA == NULL) || (bufX == NULL)) { // Skip the test, the most probable reason is @@ -169,7 +163,6 @@ tbsvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTBSV routine... "; DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT:( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT: TYPE_COMPLEX_DOUBLE; @@ -193,8 +186,6 @@ tbsvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthX + params->offBX) * sizeof(*clblasX), clblasX, 0, @@ -207,6 +198,15 @@ tbsvCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufX); compareMatrices(clblasColumnMajor, lengthX , 1, (blasX + params->offBX), (clblasX + params->offBX), lengthX, (deltaX + params->offBX) ); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->diag, params->N, params->K, params->offA, + params->lda, params->offBX, params->incx, 0, 1); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, blasX, clblasX, deltaX); delete[] events; } diff --git a/src/tests/correctness/corr-tpmv.cpp b/src/tests/correctness/corr-tpmv.cpp index 041154e9..b2ac494e 100644 --- a/src/tests/correctness/corr-tpmv.cpp +++ b/src/tests/correctness/corr-tpmv.cpp @@ -108,8 +108,6 @@ tpmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - // Set data in A and X using populate() routine int creationFlags = 0; creationFlags = creationFlags | RANDOM_INIT | PACKED_MATRIX; @@ -125,7 +123,6 @@ tpmvCorrectnessTest(TestParams *params) // Copy blasX to clblasX memcpy(clblasX, blasX, (lengthX + params->offBX)* sizeof(*blasX)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufAP = base->createEnqueueBuffer(AP, (lengthAP + params->offa)* sizeof(*AP), 0, CL_MEM_READ_ONLY); @@ -135,9 +132,6 @@ tpmvCorrectnessTest(TestParams *params) //printData( "bufX", blasX, lengthX, 1, lengthX); //printData( "clblasX", clblasX, lengthX, 1, lengthX); - ::std::cerr << "Calling reference xTPMV routine... "; - - clblasOrder order; clblasUplo fUplo; clblasTranspose fTrans; @@ -157,7 +151,6 @@ tpmvCorrectnessTest(TestParams *params) } ::clMath::blas::tpmv( order, fUplo, fTrans, params->diag, params->N, AP, params->offa, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; // Hold X vector @@ -177,8 +170,6 @@ tpmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTPMV routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -202,8 +193,6 @@ tpmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthX + params->offBX) * sizeof(*clblasX), clblasX, 0, diff --git a/src/tests/correctness/corr-tpsv.cpp b/src/tests/correctness/corr-tpsv.cpp index 931d8214..b32d3612 100644 --- a/src/tests/correctness/corr-tpsv.cpp +++ b/src/tests/correctness/corr-tpsv.cpp @@ -109,8 +109,6 @@ tpsvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - //custom generation function in blas-random.h randomTrsvMatrices( params->order, params->uplo, params->diag, params->N, (A + params->offa), 0, (blasX + params->offBX), params->incx); @@ -127,9 +125,6 @@ tpsvCorrectnessTest(TestParams *params) // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offa)* sizeof(T), 0, CL_MEM_READ_ONLY); bufX = base->createEnqueueBuffer(backX, (lengthX + params->offBX)* sizeof(T), 0, CL_MEM_WRITE_ONLY); - ::std::cerr << "Done" << ::std::endl; - - ::std::cerr << "Calling reference xTPSV routine... "; clblasOrder order; clblasUplo fUplo; @@ -150,7 +145,6 @@ tpsvCorrectnessTest(TestParams *params) doConjugate((A + params->offa), 1, lengthA, 1); } ::clMath::blas::tpsv( order, fUplo, fTrans, params->diag, params->N, A, params->offa, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; /* printf("\n\n acml result X\n"); @@ -173,8 +167,6 @@ tpsvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTPSV routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT: TYPE_COMPLEX_DOUBLE; @@ -198,7 +190,6 @@ tpsvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, lengthX * sizeof(*backX), backX, 0, diff --git a/src/tests/correctness/corr-trmm.cpp b/src/tests/correctness/corr-trmm.cpp index c92e0e34..7cc62dfa 100644 --- a/src/tests/correctness/corr-trmm.cpp +++ b/src/tests/correctness/corr-trmm.cpp @@ -73,8 +73,7 @@ trmmCorrectnessTest(TestParams *params) isComplex = ((typeid(T) == typeid(FloatComplex)) || (typeid(T) == typeid(DoubleComplex))); if (canCaseBeSkipped(params, isComplex)) { - std::cerr << ">> Test is skipped because it has no importance for this " - "level of coverage" << std::endl; + std::cerr << ">> Test is skipped" << std::endl; SUCCEED(); return; } @@ -94,14 +93,11 @@ trmmCorrectnessTest(TestParams *params) alpha = convertMultiplier(params->alpha); } - ::std::cerr << "Generating input data... "; randomTrmmMatrices(params->order, params->side, params->uplo, params->diag, params->M, params->N, useAlpha, &alpha, A, params->lda, blasB, params->ldb); memcpy(clblasB, blasB, params->rowsB * params->columnsB * sizeof(*blasB)); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xTRMM routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::trmm(clblasColumnMajor, params->side, params->uplo, params->transA, params->diag, params->M, params->N, alpha, @@ -124,7 +120,6 @@ trmmCorrectnessTest(TestParams *params) delete[] reorderedB; delete[] reorderedA; } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -149,7 +144,6 @@ trmmCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTRMM routine... "; err = (cl_int)::clMath::clblas::trmm(params->order, params->side, params->uplo, params->transA, params->diag, params->M, params->N, alpha, bufA, params->offA, params->lda, bufB, params->offBX, @@ -170,7 +164,6 @@ trmmCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufB, CL_TRUE, params->offBX * sizeof(*clblasB), @@ -180,6 +173,15 @@ trmmCorrectnessTest(TestParams *params) releaseMemObjects(bufA, bufB); compareMatrices(params->order, params->M, params->N, blasB, clblasB, params->ldb); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->side, params->uplo, params->transA, params->diag, params->M, params->N, useAlpha, + base->alpha(), params->offA, params->lda, params->offBX, params->ldb); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, blasB, clblasB); delete[] events; } diff --git a/src/tests/correctness/corr-trmv.cpp b/src/tests/correctness/corr-trmv.cpp index 95089fc6..7e97d6c3 100644 --- a/src/tests/correctness/corr-trmv.cpp +++ b/src/tests/correctness/corr-trmv.cpp @@ -108,8 +108,6 @@ trmvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - // Set data in A and X using populate() routine int creationFlags = 0; creationFlags = creationFlags | RANDOM_INIT; @@ -125,7 +123,6 @@ trmvCorrectnessTest(TestParams *params) // Copy blasX to clblasX memcpy(clblasX, blasX, (lengthX + params->offBX)* sizeof(*blasX)); - ::std::cerr << "Done" << ::std::endl; // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offa)* sizeof(*A), 0, CL_MEM_READ_ONLY); @@ -135,8 +132,6 @@ trmvCorrectnessTest(TestParams *params) //printData( "bufX", blasX, lengthX, 1, lengthX); //printData( "clblasX", clblasX, lengthX, 1, lengthX); - ::std::cerr << "Calling reference xTRMV routine... "; - clblasOrder order; clblasUplo fUplo; @@ -157,7 +152,6 @@ trmvCorrectnessTest(TestParams *params) } ::clMath::blas::trmv( order, fUplo, fTrans, params->diag, params->N, A, params->offa, params->lda, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; // Hold X vector @@ -177,8 +171,6 @@ trmvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTRMV routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT:TYPE_COMPLEX_DOUBLE; @@ -202,8 +194,6 @@ trmvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; - err = clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, (lengthX + params->offBX) * sizeof(*clblasX), clblasX, 0, @@ -223,6 +213,14 @@ trmvCorrectnessTest(TestParams *params) compareMatrices(clblasColumnMajor, lengthX , 1, (blasX + params->offBX), (clblasX + params->offBX), lengthX); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->diag, params->N, params->lda, params->incx, params->offa, params->offBX); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, blasX, clblasX); delete[] events; } diff --git a/src/tests/correctness/corr-trsm.cpp b/src/tests/correctness/corr-trsm.cpp index e53331ca..aa368f25 100644 --- a/src/tests/correctness/corr-trsm.cpp +++ b/src/tests/correctness/corr-trsm.cpp @@ -77,8 +77,7 @@ trsmCorrectnessTest(TestParams *params) isComplex = ((typeid(T) == typeid(FloatComplex)) || (typeid(T) == typeid(DoubleComplex))); if (canCaseBeSkipped(params, isComplex)) { - std::cerr << ">> Test is skipped because it has no importance for this " - "level of coverage" << std::endl; + std::cerr << ">> Test is skipped" << std::endl; SUCCEED(); return; } @@ -100,17 +99,13 @@ trsmCorrectnessTest(TestParams *params) alpha = convertMultiplier(params->alpha); } - ::std::cerr << "Generating input data... "; - randomTrsmMatrices(params->order, params->side, params->uplo, params->diag, params->M, params->N, useAlpha, &alpha, A, params->lda, B, params->ldb); memcpy(blasB, B, params->rowsB * params->columnsB * sizeof(*B)); memcpy(clblasB, B, params->rowsB * params->columnsB * sizeof(*B)); - ::std::cerr << "Done" << ::std::endl; - ::std::cerr << "Calling reference xTRSM routine... "; if (params->order == clblasColumnMajor) { ::clMath::blas::trsm(clblasColumnMajor, params->side, params->uplo, params->transA, params->diag, params->M, params->N, alpha, A, @@ -135,7 +130,6 @@ trsmCorrectnessTest(TestParams *params) delete[] reorderedB; delete[] reorderedA; } - ::std::cerr << "Done" << ::std::endl; bufA = base->createEnqueueBuffer(A, params->rowsA * params->columnsA * sizeof(*A), params->offA * sizeof(*A), @@ -160,7 +154,6 @@ trsmCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTRSM routine... "; err = (cl_int)::clMath::clblas::trsm(params->order, params->side, params->uplo, params->transA, params->diag, params->M, params->N, alpha, bufA, params->offA, params->lda, bufB, params->offBX, @@ -181,7 +174,6 @@ trsmCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufB, CL_TRUE, params->offBX * sizeof(*clblasB), @@ -196,6 +188,15 @@ trsmCorrectnessTest(TestParams *params) compareMatrices(params->order, params->M, params->N, blasB, clblasB, params->ldb, delta); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->side, params->uplo, params->transA, params->diag, params->M, params->N, useAlpha, + base->alpha(), params->offA, params->lda, params->offBX, params->ldb); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, B, blasB, clblasB, delta); delete[] events; } @@ -364,7 +365,6 @@ void Extratest(size_t M, size_t N, size_t lda, size_t ldb, T alpha, T delta) memcpy(blasB, B, N*ldb*sizeof(T)); memcpy(clblasB, B, N*ldb*sizeof(T)); - ::std::cerr << "Calling reference xTRSM routine... "; ::clMath::blas::trsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, blasB, ldb); @@ -390,7 +390,6 @@ void Extratest(size_t M, size_t N, size_t lda, size_t ldb, T alpha, T delta) return; } - ::std::cerr << "Calling clblas xTRSM routine... "; err = (cl_int)::clMath::clblas::trsm(order, side, uplo, trans, diag, M, N, alpha, bufA, 0, lda, bufB, 0, ldb, 1, base->commandQueues(), 0, NULL, events); if (err != CL_SUCCESS) { @@ -407,7 +406,6 @@ void Extratest(size_t M, size_t N, size_t lda, size_t ldb, T alpha, T delta) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufB, CL_TRUE, 0, N*ldb*sizeof(T), clblasB, 0, NULL, NULL); diff --git a/src/tests/correctness/corr-trsv.cpp b/src/tests/correctness/corr-trsv.cpp index b0ed0caf..dbda6ae7 100644 --- a/src/tests/correctness/corr-trsv.cpp +++ b/src/tests/correctness/corr-trsv.cpp @@ -109,8 +109,6 @@ trsvCorrectnessTest(TestParams *params) srand(params->seed); - ::std::cerr << "Generating input data... "; - //custom generation function in blas-random.h randomTrsvMatrices( params->order, params->uplo, params->diag, params->N, (A + params->offa), params->lda, (blasX + params->offBX), params->incx); @@ -127,9 +125,6 @@ trsvCorrectnessTest(TestParams *params) // Allocate buffers bufA = base->createEnqueueBuffer(A, (lengthA + params->offa)* sizeof(T), 0, CL_MEM_READ_ONLY); bufX = base->createEnqueueBuffer(backX, (lengthX + params->offBX)* sizeof(T), 0, CL_MEM_WRITE_ONLY); - ::std::cerr << "Done" << ::std::endl; - - ::std::cerr << "Calling reference xTRSV routine... "; clblasOrder order; clblasUplo fUplo; @@ -150,7 +145,6 @@ trsvCorrectnessTest(TestParams *params) doConjugate((A + params->offa), params->N, params->N, params->lda ); } ::clMath::blas::trsv( order, fUplo, fTrans, params->diag, params->N, A, params->offa, params->lda, blasX, params->offBX, params->incx); - ::std::cerr << "Done" << ::std::endl; /* printf("\n\n acml result X\n"); @@ -173,8 +167,6 @@ trsvCorrectnessTest(TestParams *params) return; } - ::std::cerr << "Calling clblas xTRSV routine... "; - DataType type; type = ( typeid(T) == typeid(cl_float))? TYPE_FLOAT : ( typeid(T) == typeid(cl_double))? TYPE_DOUBLE: ( typeid(T) == typeid(cl_float2))? TYPE_COMPLEX_FLOAT: TYPE_COMPLEX_DOUBLE; @@ -198,7 +190,6 @@ trsvCorrectnessTest(TestParams *params) delete[] events; ASSERT_EQ(CL_SUCCESS, err) << "waitForSuccessfulFinish()"; } - ::std::cerr << "Done" << ::std::endl; clEnqueueReadBuffer(base->commandQueues()[0], bufX, CL_TRUE, 0, lengthX * sizeof(*backX), backX, 0, @@ -217,6 +208,14 @@ trsvCorrectnessTest(TestParams *params) // handle lda correctly based on row-major/col-major.. compareMatrices( clblasColumnMajor, lengthX , 1, blasX, backX, lengthX, deltaX ); + + if (::testing::Test::HasFailure()) + { + printTestParams(params->order, params->uplo, params->transA, params->diag, params->N, params->lda, params->incx, params->offa, params->offBX); + ::std::cerr << "seed = " << params->seed << ::std::endl; + ::std::cerr << "queues = " << params->numCommandQueues << ::std::endl; + } + deleteBuffers(A, blasX, backX, deltaX); delete[] events; } diff --git a/src/tests/correctness/test-correctness.cpp b/src/tests/correctness/test-correctness.cpp index 67ac9715..3b80a039 100644 --- a/src/tests/correctness/test-correctness.cpp +++ b/src/tests/correctness/test-correctness.cpp @@ -3307,11 +3307,8 @@ INSTANTIATE_TEST_CASE_P(MultipleQueues, iAMAX, Combine( int main(int argc, char *argv[]) { - ::clMath::BlasBase *base; - TestParams params; int ret; - - if( (argc > 1) && ( !strcmp(argv[1], "--test-help") || !strcmp(argv[1], "-?") || !strcmp(argv[1], "-h") ) ) + if( (argc > 1) && ( !strcmp(argv[1], "--test-help") || !strcmp(argv[1], "-?") || !strcmp(argv[1], "-h") || !strcmp(argv[1], "--help") ) ) { printUsage("test-correctness"); ::testing::InitGoogleTest(&argc, argv); @@ -3331,58 +3328,63 @@ main(int argc, char *argv[]) } ::testing::InitGoogleTest(&argc, argv); - ::std::cerr << "Initialize OpenCL and clblas..." << ::std::endl; - base = ::clMath::BlasBase::getInstance(); + TestParams params; + params.optFlags = NO_FLAGS; + params.devType = CL_DEVICE_TYPE_ALL; + params.devName = NULL; + params.devOrd = 0; + params.platOrd = 0; + + if (argc != 1) { + if (parseBlasCmdLineArgs(argc, argv, ¶ms) != 0) { + printUsage(argv[0]); + return 1; + } + } + + ::std::cout << "Initialize default OpenCL and clblas..." << ::std::endl; + ::clMath::BlasBase* base = ::clMath::BlasBase::getInstance( ); if (base == NULL) { ::std::cerr << "Fatal error, OpenCL or clblas initialization failed! " - "Leaving the test." << ::std::endl; + "Leaving the test." << ::std::endl; return -1; } base->setSeed(DEFAULT_SEED); - if (argc != 1) { - params.optFlags = NO_FLAGS; - params.devType = CL_DEVICE_TYPE_GPU; - params.devName = NULL; - if (parseBlasCmdLineArgs(argc, argv, ¶ms) != 0) { - printUsage(argv[0]); - return 1; - } - if (params.optFlags & SET_SEED) { - base->setSeed(params.seed); - } - if (params.optFlags & SET_ALPHA) { - base->setAlpha(params.alpha); - } - if (params.optFlags & SET_BETA) { - base->setBeta(params.beta); - } - if (params.optFlags & SET_M) { - base->setM(params.M); - } - if (params.optFlags & SET_N) { - base->setN(params.N); - } - if (params.optFlags & SET_K) { - base->setK(params.K); - } - if (params.optFlags & SET_INCX) { - base->setIncX(params.incx); - } - if (params.optFlags & SET_INCY) { - base->setIncY(params.incy); - } - if (params.optFlags & SET_DEVICE_TYPE) { - if (!base->setDeviceType(¶ms.devType, params.devName)) { - ::std::cerr << "Fatal error, OpenCL or clblas " - "initialization failed! Leaving the test." << - ::std::endl; - return -1; - } - } - if (params.optFlags & SET_NUM_COMMAND_QUEUES) { - base->setNumCommandQueues(params.numCommandQueues); + if (params.optFlags & SET_SEED) { + base->setSeed(params.seed); + } + if (params.optFlags & SET_ALPHA) { + base->setAlpha(params.alpha); + } + if (params.optFlags & SET_BETA) { + base->setBeta(params.beta); + } + if (params.optFlags & SET_M) { + base->setM(params.M); + } + if (params.optFlags & SET_N) { + base->setN(params.N); + } + if (params.optFlags & SET_K) { + base->setK(params.K); + } + if (params.optFlags & SET_INCX) { + base->setIncX(params.incx); + } + if (params.optFlags & SET_INCY) { + base->setIncY(params.incy); + } + if (params.optFlags & SET_NUM_COMMAND_QUEUES) { + base->setNumCommandQueues(params.numCommandQueues); + } + if ((params.optFlags & SET_DEVICE_TYPE) || (params.optFlags & SET_PLATFORM_ORD) || (params.optFlags & SET_DEVICE_ORD)) { + if (!base->setDeviceType(params)) { + ::std::cerr << "Fatal error, OpenCL or clblas " + "initialization failed! Leaving the test." << + ::std::endl; + return -1; } } @@ -3407,7 +3409,7 @@ main(int argc, char *argv[]) } /* - * Explicitely tell the singleton to release all resources, + * Explicitly tell singleton to release all resources, * before we return from main. */ base->release( ); diff --git a/src/tests/functional/test-functional.cpp b/src/tests/functional/test-functional.cpp index c147b775..d5d0d4e9 100644 --- a/src/tests/functional/test-functional.cpp +++ b/src/tests/functional/test-functional.cpp @@ -24,66 +24,69 @@ int main(int argc, char *argv[]) { - ::clMath::BlasBase *base; - TestParams params; int ret; - - if ((argc > 1) && !strcmp(argv[1], "--test-help")) { + if ((argc > 1) && (!strcmp(argv[1], "--test-help") || !strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { printUsage("test-functional"); + ::testing::InitGoogleTest(&argc, argv); return 0; } + TestParams params; + params.optFlags = NO_FLAGS; + params.devType = CL_DEVICE_TYPE_ALL; + params.devName = NULL; + params.devOrd = 0; + params.platOrd = 0; + + if (argc != 1) { + if (parseBlasCmdLineArgs(argc, argv, ¶ms) != 0) { + printUsage(argv[0]); + return 1; + } + } + ::testing::InitGoogleTest(&argc, argv); - ::std::cerr << "Initialize OpenCL and clblas..." << ::std::endl; - base = ::clMath::BlasBase::getInstance(); + ::std::cout << "Initialize default OpenCL and clblas..." << ::std::endl; + ::clMath::BlasBase *base = ::clMath::BlasBase::getInstance(); if (base == NULL) { ::std::cerr << "Fatal error, OpenCL or clblas initialization failed! " "Leaving the test." << ::std::endl; return -1; } - if (argc != 1) { - params.optFlags = NO_FLAGS; - params.devType = CL_DEVICE_TYPE_GPU; - params.devName = NULL; - if (parseBlasCmdLineArgs(argc, argv, ¶ms) != 0) { - printUsage(argv[0]); - return 1; - } - if (params.optFlags & SET_SEED) { - base->setSeed(params.seed); - } - if (params.optFlags & SET_ALPHA) { - base->setAlpha(params.alpha); - } - if (params.optFlags & SET_BETA) { - base->setBeta(params.beta); - } - if (params.optFlags & SET_M) { - base->setM(params.M); - } - if (params.optFlags & SET_N) { - base->setN(params.N); - } - if (params.optFlags & SET_K) { - base->setK(params.K); - } - if (params.optFlags & SET_INCX) { - base->setIncX(params.incx); - } - if (params.optFlags & SET_INCY) { - base->setIncY(params.incy); - } - if (params.optFlags & SET_DEVICE_TYPE) { - if (!base->setDeviceType(¶ms.devType, params.devName)) { - ::std::cerr << "Fatal error, OpenCL or clblas " - "initialization failed! Leaving the test." << - ::std::endl; - return -1; - } - } - if (params.optFlags & SET_NUM_COMMAND_QUEUES) { - base->setNumCommandQueues(params.numCommandQueues); + if (params.optFlags & SET_SEED) { + base->setSeed(params.seed); + } + if (params.optFlags & SET_ALPHA) { + base->setAlpha(params.alpha); + } + if (params.optFlags & SET_BETA) { + base->setBeta(params.beta); + } + if (params.optFlags & SET_M) { + base->setM(params.M); + } + if (params.optFlags & SET_N) { + base->setN(params.N); + } + if (params.optFlags & SET_K) { + base->setK(params.K); + } + if (params.optFlags & SET_INCX) { + base->setIncX(params.incx); + } + if (params.optFlags & SET_INCY) { + base->setIncY(params.incy); + } + if (params.optFlags & SET_NUM_COMMAND_QUEUES) { + base->setNumCommandQueues(params.numCommandQueues); + } + if ((params.optFlags & SET_DEVICE_TYPE) || (params.optFlags & SET_PLATFORM_ORD) || (params.optFlags & SET_DEVICE_ORD)) { + if (!base->setDeviceType( params )) { + ::std::cerr << "Fatal error, OpenCL or clblas " + "initialization failed! Leaving the test." << + ::std::endl; + return -1; } } @@ -101,6 +104,7 @@ main(int argc, char *argv[]) } */ + base->printEnvInfo(); ret = RUN_ALL_TESTS(); if (base->useImages()) { diff --git a/src/tests/include/BlasBase.h b/src/tests/include/BlasBase.h index 6c13e520..92454390 100644 --- a/src/tests/include/BlasBase.h +++ b/src/tests/include/BlasBase.h @@ -33,8 +33,7 @@ do { \ \ if (err == CL_INVALID_DEVICE && !base->isDevSupportDoublePrecision()) { \ ::std::cerr << std::endl << ">> " << funcName << \ - "() reported that this device doesn't support double " \ - "precision floating point arithmetic. Test is skipped" << \ + "() no double; test is skipped" << \ ::std::endl; \ SUCCEED(); \ \ @@ -62,6 +61,8 @@ class BlasBase { cl_device_id additionalDevice_; cl_context context_; cl_command_queue commandQueues_[MAX_COMMAND_QUEUES]; + size_t devOrd_; + size_t platOrd_; bool useNumCommandQueues_; cl_uint numCommandQueues_; @@ -86,7 +87,7 @@ class BlasBase { cl_ulong imageA_; cl_ulong imageB_; - BlasBase(); + BlasBase( ); ~BlasBase(); BlasBase(const BlasBase &); // intentionally undefined BlasBase & operator=(const BlasBase &); // intentionally undefined @@ -102,7 +103,7 @@ class BlasBase { int primAdd); public: - static BlasBase* getInstance(); + static BlasBase* getInstance( ); cl_context context() { @@ -198,7 +199,7 @@ class BlasBase { useImages_ = (value != 0); } - bool setDeviceType(cl_device_type* devType, const char* devName); + bool setDeviceType(const TestParams& params ); cl_mem createEnqueueBuffer(const void *data, size_t matrSize, size_t off, cl_mem_flags mode); cl_mem readBuffer(void *ptr, size_t off, size_t size); diff --git a/src/tests/include/asum.h b/src/tests/include/asum.h index 0c3f508c..131ff68f 100644 --- a/src/tests/include/asum.h +++ b/src/tests/include/asum.h @@ -61,10 +61,6 @@ class ASUM : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, offx, incx); - ::std::cerr << "offAsum = " << offAsum << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/axpy.h b/src/tests/include/axpy.h index c2301774..3bb8b140 100644 --- a/src/tests/include/axpy.h +++ b/src/tests/include/axpy.h @@ -71,9 +71,6 @@ class AXPY : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, paramAlpha, offBX, incx, offCY, incy); - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/cmdline.h b/src/tests/include/cmdline.h index addb9292..68ddfba1 100644 --- a/src/tests/include/cmdline.h +++ b/src/tests/include/cmdline.h @@ -42,7 +42,9 @@ typedef enum SetoptFlags { SET_DEVICE_TYPE = (1 << 7), SET_INCX = (1 << 8), SET_INCY = (1 << 9), - SET_NUM_COMMAND_QUEUES = (1 << 10) + SET_NUM_COMMAND_QUEUES = (1 << 10), + SET_DEVICE_ORD = (1 << 11), + SET_PLATFORM_ORD = (1 << 12), } SetoptFlags; typedef struct TestParams { @@ -83,6 +85,8 @@ typedef struct TestParams { int useImages; cl_device_type devType; const char* devName; + size_t devOrd; + size_t platOrd; cl_uint numCommandQueues; SetoptFlags optFlags; } TestParams; diff --git a/src/tests/include/common.h b/src/tests/include/common.h index 52f71b1d..edbdb434 100644 --- a/src/tests/include/common.h +++ b/src/tests/include/common.h @@ -692,10 +692,6 @@ printTestParams( size_t offx, int incx); - -template -void gtestAssertElementsEqual( const T & a, const T & b); - #endif // __cplusplus #endif /* COMMON_H_ */ diff --git a/src/tests/include/copy.h b/src/tests/include/copy.h index 5c26a228..f77130e3 100644 --- a/src/tests/include/copy.h +++ b/src/tests/include/copy.h @@ -63,9 +63,6 @@ class COPY : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, offx, incx, offy, incy); - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/dot.h b/src/tests/include/dot.h index 7b15528e..55962d37 100644 --- a/src/tests/include/dot.h +++ b/src/tests/include/dot.h @@ -67,10 +67,6 @@ class DOT : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, offx, incx, offy, incy); - ::std::cerr << "offDP = " << offDP << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/dotc.h b/src/tests/include/dotc.h index 815ad1cd..ffcdbcf2 100644 --- a/src/tests/include/dotc.h +++ b/src/tests/include/dotc.h @@ -67,10 +67,6 @@ class DOTC : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, offx, incx, offy, incy); - ::std::cerr << "offDP = " << offDP << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/gbmv.h b/src/tests/include/gbmv.h index f26dbd7b..a6823ef4 100644 --- a/src/tests/include/gbmv.h +++ b/src/tests/include/gbmv.h @@ -99,11 +99,6 @@ class GBMV : public TestWithParam< KL = KL % M; KU = KU % N; lda = ::std::max(lda, (KL+KU+1)); - - printTestParams(order, transA, M, N, KL, KU, paramAlpha, offA, - lda, offx, incx, paramBeta, offy, incy); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/gemm-2.h b/src/tests/include/gemm-2.h index a4103e77..5f54843b 100644 --- a/src/tests/include/gemm-2.h +++ b/src/tests/include/gemm-2.h @@ -148,12 +148,6 @@ class GEMM2 : public TestWithParam< rowsC = ldc; break; } - - printTestParams(order, transA, transB, M, N, K, useAlpha, - base->alpha(), offA, lda, offB, ldb, useBeta, - base->beta(), offC, ldc); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/gemm.h b/src/tests/include/gemm.h index 1307fac4..2156df39 100644 --- a/src/tests/include/gemm.h +++ b/src/tests/include/gemm.h @@ -151,11 +151,6 @@ class GEMM : public TestWithParam< break; } - ::std::cerr << " seed = " << seed << ", " - << "queues = " << numCommandQueues << ", "; - printTestParams(order, transA, transB, M, N, K, useAlpha, - base->alpha(), offA, lda, offB, ldb, useBeta, - base->beta(), offC, ldc); } clblasOrder order; diff --git a/src/tests/include/gemv.h b/src/tests/include/gemv.h index 77f1c8ec..66080c96 100644 --- a/src/tests/include/gemv.h +++ b/src/tests/include/gemv.h @@ -227,11 +227,6 @@ class GEMV : public TestWithParam< if (!seqY) { incy = incy > 0 ? (int)ldc : (int)(0-ldc); } - - printTestParams(order, transA, M, N, useAlpha, base->alpha(), offA, - lda, incx, useBeta, base->beta(), incy); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/ger.h b/src/tests/include/ger.h index 3c746dd9..ba42f270 100644 --- a/src/tests/include/ger.h +++ b/src/tests/include/ger.h @@ -102,14 +102,6 @@ class GER : public TestWithParam< lda = ::std::max(lda, rowsA); break; } - - - printTestParams(order, M, N, useAlpha, - base->alpha(), - lda, incx, incy, offa, offx, offy); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/gerc.h b/src/tests/include/gerc.h index 23b09c31..cca220f1 100644 --- a/src/tests/include/gerc.h +++ b/src/tests/include/gerc.h @@ -98,12 +98,6 @@ class GERC : public TestWithParam< if( lda == 0 ) lda = ::std::max(M, N); - printTestParams(order, M, N, useAlpha, - base->alpha(), - lda, incx, incy, offa, offx, offy); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/hbmv.h b/src/tests/include/hbmv.h index adbd022d..6056c5e0 100644 --- a/src/tests/include/hbmv.h +++ b/src/tests/include/hbmv.h @@ -93,11 +93,6 @@ class HBMV : public TestWithParam< KLU = KLU % N; lda = ::std::max(lda, (KLU+1)); - - printTestParams(order, uplo, N, KLU, paramAlpha, offA, - lda, offx, incx, paramBeta, offy, incy); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/hemm.h b/src/tests/include/hemm.h index 000c897a..98ceb8d9 100644 --- a/src/tests/include/hemm.h +++ b/src/tests/include/hemm.h @@ -118,11 +118,6 @@ class HEMM : public TestWithParam< ldc = ::std::max(ldc, M); break; } - - printTestParams(order, side, uplo, M, N, 1, alpha, 1, beta, lda, ldb, ldc, offA, offb, offc); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/hemv.h b/src/tests/include/hemv.h index dcdb84a7..0adba22b 100644 --- a/src/tests/include/hemv.h +++ b/src/tests/include/hemv.h @@ -121,11 +121,6 @@ class HPMV : public TestWithParam< if (base->useIncY()) { incy = base->incY(); } - - printTestParams(order, uplo, N, paramAlpha, offA, - lda, offx, incx, paramBeta, offy, incy); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/her.h b/src/tests/include/her.h index 84b405c5..505321de 100644 --- a/src/tests/include/her.h +++ b/src/tests/include/her.h @@ -96,12 +96,6 @@ class HPR : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(order, uplo, N, alpha, - offx, incx, offa, lda ); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/her2.h b/src/tests/include/her2.h index f64cb303..3b8eae02 100644 --- a/src/tests/include/her2.h +++ b/src/tests/include/her2.h @@ -107,11 +107,6 @@ class HPR2 : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(order, uplo, N, 1, alpha, offx, incx, offy, incy, offa, lda); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/her2k.h b/src/tests/include/her2k.h index 32e6172a..1a1b3cd1 100644 --- a/src/tests/include/her2k.h +++ b/src/tests/include/her2k.h @@ -137,11 +137,6 @@ class HER2K : public TestWithParam< rowsC = ldc; break; } - - printTestParams(order, uplo, transA, N, K, true, paramAlpha, - offa, lda, offB, ldb, true, paramBeta, offC, ldc); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/herk.h b/src/tests/include/herk.h index 7a5d5b50..a0376fe6 100644 --- a/src/tests/include/herk.h +++ b/src/tests/include/herk.h @@ -130,11 +130,6 @@ class HERK : public TestWithParam< rowsC = ldc; break; } - - printTestParams(order, uplo, transA, N, K, true, paramAlpha, - offA, lda, true, paramBeta, offC, ldc); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/iamax.h b/src/tests/include/iamax.h index b81c50a0..3aca87eb 100644 --- a/src/tests/include/iamax.h +++ b/src/tests/include/iamax.h @@ -59,9 +59,6 @@ class iAMAX : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, offx, incx); - ::std::cerr << "offiAmax = " << offiAmax << ::std::endl; } size_t N; diff --git a/src/tests/include/matrix.h b/src/tests/include/matrix.h index ad849948..65757add 100644 --- a/src/tests/include/matrix.h +++ b/src/tests/include/matrix.h @@ -298,7 +298,6 @@ reorderMatrix( } } - template static void compareMatrices( @@ -316,42 +315,208 @@ compareMatrices( if( lda > 0 ) // General case { - for (m = 0; m < M; m++) { - for (n = 0; n < N; n++) { - a = getElement(order, clblasNoTrans, m, n, A, lda); - b = getElement(order, clblasNoTrans, m, n, B, lda); - gtestAssertElementsEqual(a, b); + for (m = 0; m < M; m++) { + for (n = 0; n < N; n++) { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + delta = absDelta[m * N + n]; } + if( module(a-b) > delta ) printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(a, b, delta); } } + } else // Packed case { - if ( order == clblasColumnMajor) - { - for ( n = 0; n < N; n++) - { - for( m=n; m < M; m++) - { - a = getElement(order, clblasNoTrans, m, n, A, lda); - b = getElement(order, clblasNoTrans, m, n, B, lda); - gtestAssertElementsEqual(a, b); - } + if ( order == clblasColumnMajor) + { + for ( n = 0; n < N; n++) + { + for( m=n; m < M; m++) + { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + //delta = absDelta[m * N + n]; + } + if( module(a-b) > delta ) printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(a, b, delta); + } + } + } + else + { + for ( m = 0; m < M; m++) + { + for( n = 0; n <= m; n++) + { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + //delta = absDelta[m * N + n]; + } + if( module(a-b) > delta ) printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(a, b, delta); + } + } + } + } +} + +template<> +__template_static void +compareMatrices( + clblasOrder order, + size_t M, + size_t N, + const FloatComplex *A, + const FloatComplex *B, + size_t lda, + const cl_double *absDelta) +{ + size_t m = 0, n = 0; + FloatComplex a, b; + cl_double delta; + +if ( lda > 0 ) +{ + for (m = 0; m < M; m++) { + for (n = 0; n < N; n++) { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + delta = absDelta[m * N + n]; } + if( (module(CREAL(a) - CREAL(b)) > delta) || (module(CIMAG(a) - CIMAG(b)) > delta) ) + printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(CREAL(a), CREAL(b), delta); + ASSERT_NEAR(CIMAG(a), CIMAG(b), delta); } - else - { - for ( m = 0; m < M; m++) - { - for( n = 0; n <= m; n++) - { - a = getElement(order, clblasNoTrans, m, n, A, lda); - b = getElement(order, clblasNoTrans, m, n, B, lda); - gtestAssertElementsEqual(a, b); - } + } +} + else // Packed case + { + if ( order == clblasColumnMajor) + { + for ( n = 0; n < N; n++) + { + for( m=n; m < M; m++) + { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + //delta = absDelta[m * N + n]; + } + if( (module(CREAL(a) - CREAL(b)) > delta) || (module(CIMAG(a) - CIMAG(b)) > delta) ) + printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(CREAL(a), CREAL(b), delta); + ASSERT_NEAR(CIMAG(a), CIMAG(b), delta); + } + } + } + else + { + for ( m = 0; m < M; m++) + { + for( n = 0; n <= m; n++) + { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + //delta = absDelta[m * N + n]; + } + if( (module(CREAL(a) - CREAL(b)) > delta) || (module(CIMAG(a) - CIMAG(b)) > delta) ) + printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(CREAL(a), CREAL(b), delta); + ASSERT_NEAR(CIMAG(a), CIMAG(b), delta); + } + } + } + } + +} + +template<> +__template_static void +compareMatrices( + clblasOrder order, + size_t M, + size_t N, + const DoubleComplex *A, + const DoubleComplex *B, + size_t lda, + const cl_double *absDelta) +{ + size_t m = 0, n = 0; + DoubleComplex a, b; + cl_double delta; +if( lda > 0 ) +{ + for (m = 0; m < M; m++) { + for (n = 0; n < N; n++) { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + delta = absDelta[m * N + n]; } + if( (module(CREAL(a) - CREAL(b)) > delta) || (module(CIMAG(a) - CIMAG(b)) > delta) ) + printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(CREAL(a), CREAL(b), delta); + ASSERT_NEAR(CIMAG(a), CIMAG(b), delta); } } } + else // Packed case + { + if ( order == clblasColumnMajor) + { + for ( n = 0; n < N; n++) + { + for( m=n; m < M; m++) + { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + //delta = absDelta[m * N + n]; + } + if( (module(CREAL(a) - CREAL(b)) > delta) || (module(CIMAG(a) - CIMAG(b)) > delta) ) + printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(CREAL(a), CREAL(b), delta); + ASSERT_NEAR(CIMAG(a), CIMAG(b), delta); + } + } + } + else + { + for ( m = 0; m < M; m++) + { + for( n = 0; n <= m; n++) + { + a = getElement(order, clblasNoTrans, m, n, A, lda); + b = getElement(order, clblasNoTrans, m, n, B, lda); + delta = 0.0; + if (absDelta != NULL) { + //delta = absDelta[m * N + n]; + } + if( (module(CREAL(a) - CREAL(b)) > delta) || (module(CIMAG(a) - CIMAG(b)) > delta) ) + printf("m : %d\t n: %d\n", (int)m, (int)n); + ASSERT_NEAR(CREAL(a), CREAL(b), delta); + ASSERT_NEAR(CIMAG(a), CIMAG(b), delta); + } + } + } + } + +} template static void diff --git a/src/tests/include/nrm2.h b/src/tests/include/nrm2.h index 86370672..0102102f 100644 --- a/src/tests/include/nrm2.h +++ b/src/tests/include/nrm2.h @@ -61,10 +61,6 @@ class NRM2 : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, offx, incx); - ::std::cerr << "offNRM2 = " << offNRM2 << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/rot.h b/src/tests/include/rot.h index 54445091..b3014fbf 100644 --- a/src/tests/include/rot.h +++ b/src/tests/include/rot.h @@ -70,9 +70,6 @@ class ROT : public TestWithParam< { numCommandQueues = base->numCommandQueues(); } - - printTestParams(N, offa, incx, offb, incy, alpha, beta ); - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N, offa, offb; diff --git a/src/tests/include/rotg.h b/src/tests/include/rotg.h index 874f7577..3cec78bb 100644 --- a/src/tests/include/rotg.h +++ b/src/tests/include/rotg.h @@ -61,9 +61,6 @@ class ROTG : public TestWithParam< { numCommandQueues = base->numCommandQueues(); } - - printTestParams(offSA, offSB, offC, offS); - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t offSA, offSB, offC, offS; diff --git a/src/tests/include/rotm.h b/src/tests/include/rotm.h index 9600b5af..3775e2f2 100644 --- a/src/tests/include/rotm.h +++ b/src/tests/include/rotm.h @@ -70,9 +70,6 @@ class ROTM : public TestWithParam< { numCommandQueues = base->numCommandQueues(); } - - printTestParams(N, offa, incx, offb, incy, offc, alpha); - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N, offa, offb, offc; diff --git a/src/tests/include/rotmg.h b/src/tests/include/rotmg.h index c5357197..3966b86c 100644 --- a/src/tests/include/rotmg.h +++ b/src/tests/include/rotmg.h @@ -68,9 +68,6 @@ class ROTMG : public TestWithParam< { numCommandQueues = base->numCommandQueues(); } - - printTestParams(offBX, offCY, offa, offb, offc, alpha); - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } int offa, offb, offc, offBX, offCY; diff --git a/src/tests/include/sbmv.h b/src/tests/include/sbmv.h index 04289104..1253a9ea 100644 --- a/src/tests/include/sbmv.h +++ b/src/tests/include/sbmv.h @@ -93,11 +93,6 @@ class SBMV : public TestWithParam< KLU = KLU % N; lda = ::std::max(lda, (KLU+1)); - - printTestParams(order, uplo, N, KLU, paramAlpha, offA, - lda, offx, incx, paramBeta, offy, incy); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/scal.h b/src/tests/include/scal.h index 922407cf..1225954a 100644 --- a/src/tests/include/scal.h +++ b/src/tests/include/scal.h @@ -62,10 +62,6 @@ class SCAL : public TestWithParam< if (useNumCommandQueues) { numCommandQueues = base->numCommandQueues(); } - - printTestParams(N, paramAlpha, offx, incx); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/spmv.h b/src/tests/include/spmv.h index dce82936..7bd245c1 100644 --- a/src/tests/include/spmv.h +++ b/src/tests/include/spmv.h @@ -104,11 +104,6 @@ class SPMV : public TestWithParam< if (base->useIncY()) { incy = base->incY(); } - - printTestParams(order, uplo, N, paramAlpha, offA, - 0, offx, incx, paramBeta, offy, incy); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/swap.h b/src/tests/include/swap.h index 6afda58d..c2f20551 100644 --- a/src/tests/include/swap.h +++ b/src/tests/include/swap.h @@ -68,9 +68,6 @@ class SWAPXY : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(N, offBX, incx, offCY, incy); - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } size_t N; diff --git a/src/tests/include/symm.h b/src/tests/include/symm.h index 29214b31..b2f3cd97 100644 --- a/src/tests/include/symm.h +++ b/src/tests/include/symm.h @@ -120,11 +120,6 @@ class SYMM : public TestWithParam< ldc = ::std::max(ldc, M); break; } - - printTestParams(order, side, uplo, M, N, 1, alpha, 1, beta, lda, ldb, ldc, offa, offb, offc); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/symv.h b/src/tests/include/symv.h index f8f76a64..e4542228 100644 --- a/src/tests/include/symv.h +++ b/src/tests/include/symv.h @@ -154,11 +154,6 @@ class SYMV : public TestWithParam< columnsC = N; break; } - - printTestParams(order, uplo, N, useAlpha, base->alpha(), offsetA, lda, - incx, useBeta, base->beta(), incy); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/syr.h b/src/tests/include/syr.h index 056dcba1..fd169fe1 100644 --- a/src/tests/include/syr.h +++ b/src/tests/include/syr.h @@ -101,11 +101,6 @@ class SPR : public TestWithParam< // if (base->useAlpha()) { // alpha = base->Alpha(); // } - - printTestParams(order, uplo, N, alpha, offx, incx, offa, lda); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/syr2.h b/src/tests/include/syr2.h index 70456139..7f654c4e 100644 --- a/src/tests/include/syr2.h +++ b/src/tests/include/syr2.h @@ -108,11 +108,6 @@ class SPR2 : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(order, uplo, N, alpha, offx, incx, offy, incy, offa, lda); - - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/syr2k.h b/src/tests/include/syr2k.h index ff09c2fb..a1ebc1d4 100644 --- a/src/tests/include/syr2k.h +++ b/src/tests/include/syr2k.h @@ -141,11 +141,6 @@ class SYR2K : public TestWithParam< rowsC = ldc; break; } - - printTestParams(order, uplo, transA, N, K, useAlpha, base->alpha(), - offA, lda, offB, ldb, useBeta, base->beta(), offC, ldc); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/syrk.h b/src/tests/include/syrk.h index b855723b..4a0be453 100644 --- a/src/tests/include/syrk.h +++ b/src/tests/include/syrk.h @@ -125,11 +125,6 @@ class SYRK : public TestWithParam< rowsC = ldc; break; } - - printTestParams(order, uplo, transA, N, K, useAlpha, base->alpha(), - offA, lda, useBeta, base->beta(), offC, ldc); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/tbmv.h b/src/tests/include/tbmv.h index 19063d69..95f7974c 100644 --- a/src/tests/include/tbmv.h +++ b/src/tests/include/tbmv.h @@ -88,11 +88,6 @@ class TBMV : public TestWithParam< KLU = KLU % N; lda = ::std::max(lda, (KLU+1)); - - printTestParams(order, uplo, transA, diag, N, KLU, offA, - lda, offx, incx, 0, 1); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/tbsv.h b/src/tests/include/tbsv.h index 890e1c27..5096ed50 100644 --- a/src/tests/include/tbsv.h +++ b/src/tests/include/tbsv.h @@ -89,11 +89,6 @@ class TBSV : public TestWithParam< KLU = KLU % N; lda = ::std::max(lda, (KLU+1)); - - printTestParams(order, uplo, transA, diag, N, KLU, offA, - lda, offx, incx, 0, 1); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/trmm.h b/src/tests/include/trmm.h index b2e5482a..cc9d1a79 100644 --- a/src/tests/include/trmm.h +++ b/src/tests/include/trmm.h @@ -127,11 +127,6 @@ class TRMM : public TestWithParam< rowsB = ldb; break; } - - printTestParams(order, side, uplo, transA, diag, M, N, useAlpha, - base->alpha(), offA, lda, offB, ldb); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/trmv.h b/src/tests/include/trmv.h index 204bbce0..5b0c39f0 100644 --- a/src/tests/include/trmv.h +++ b/src/tests/include/trmv.h @@ -98,10 +98,6 @@ class TPMV : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(order, uplo, transA, diag, N, lda, incx, offa, offx); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/trsm.h b/src/tests/include/trsm.h index e0e90ea2..c509ed71 100644 --- a/src/tests/include/trsm.h +++ b/src/tests/include/trsm.h @@ -130,11 +130,6 @@ class TRSM : public TestWithParam< rowsB = ldb; break; } - - printTestParams(order, side, uplo, transA, diag, M, N, useAlpha, - base->alpha(), offA, lda, offB, ldb); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order; diff --git a/src/tests/include/trsv.h b/src/tests/include/trsv.h index 6410d110..0f54cb99 100644 --- a/src/tests/include/trsv.h +++ b/src/tests/include/trsv.h @@ -97,10 +97,6 @@ class TPSV : public TestWithParam< if (base->useN()) { N = base->N(); } - - printTestParams(order, uplo, transA, diag, N, lda, incx, offa, offx); - ::std::cerr << "seed = " << seed << ::std::endl; - ::std::cerr << "queues = " << numCommandQueues << ::std::endl; } clblasOrder order;