Browse Source

Merge pull request #2841 from martin-frbg/cpp_gemvtest

Make thread safety tests available to CMAKE and support running only the GEMV version
tags/v0.3.11^2
Martin Kroeker GitHub 5 years ago
parent
commit
2855e6000c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 0 deletions
  1. +5
    -0
      CMakeLists.txt
  2. +3
    -0
      Makefile
  3. +3
    -0
      Makefile.rule
  4. +23
    -0
      cpp_thread_test/CMakeLists.txt

+ 5
- 0
CMakeLists.txt View File

@@ -29,6 +29,8 @@ option(NO_AFFINITY "Disable support for CPU affinity masks to avoid binding proc
else()
set(NO_AFFINITY 1)
endif()
option(CPP_THREAD_SAFETY_TEST "Run a massively parallel DGEMM test to confirm thread safety of the library (requires OpenMP and about 1.3GB of RAM)" OFF)
option(CPP_THREAD_SAFETY_GEMV "Run a massively parallel DGEMV test to confirm thread safety of the library (requires OpenMP)" OFF)

# Add a prefix or suffix to all exported symbol names in the shared library.
# Avoids conflicts with other BLAS libraries, especially when using
@@ -234,6 +236,9 @@ if (NOT MSVC AND NOT NOFORTRAN)
add_subdirectory(ctest)
endif()
add_subdirectory(lapack-netlib/TESTING)
if (CPP_THREAD_SAFETY_TEST OR CPP_THREAD_SAFETY_GEMV)
add_subdirectory(cpp_thread_test)
endif()
endif()

set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES


+ 3
- 0
Makefile View File

@@ -146,6 +146,9 @@ ifneq ($(NO_CBLAS), 1)
ifeq ($(CPP_THREAD_SAFETY_TEST), 1)
$(MAKE) -C cpp_thread_test all
endif
ifeq ($(CPP_THREAD_SAFETY_GEMV), 1)
$(MAKE) -C cpp_thread_test dgemv_tester
endif
endif
endif



+ 3
- 0
Makefile.rule View File

@@ -272,6 +272,9 @@ COMMON_PROF = -pg
# work at all.
#
# CPP_THREAD_SAFETY_TEST = 1
#
# use this to run only the less memory-hungry GEMV test
# CPP_THREAD_SAFETY_GEMV = 1


# If you want to enable the experimental BFLOAT16 support


+ 23
- 0
cpp_thread_test/CMakeLists.txt View File

@@ -0,0 +1,23 @@
include_directories(${PROJECT_SOURCE_DIR})
include_directories(${PROJECT_BINARY_DIR})

enable_language(CXX)

set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DADD${BU} -DCBLAS")

if (USE_OPENMP)
if (CPP_THREAD_SAFETY_TEST)
message(STATUS building thread safety test)
add_executable(dgemm_thread_safety dgemm_thread_safety.cpp)
target_link_libraries(dgemm_thread_safety ${OpenBLAS_LIBNAME})
add_test( dgemm_thread_safety ${CMAKE_CURRENT_BINARY_DIR}/dgemm_thread_safety)
endif()


if (CPP_THREAD_SAFETY_TEST OR CPP_THREAD_SAFETY_GEMV)
add_executable(dgemv_thread_safety dgemv_thread_safety.cpp)
target_link_libraries(dgemv_thread_safety ${OpenBLAS_LIBNAME})
add_test(dgemv_thread_safety ${CMAKE_CURRENT_BINARY_DIR}/dgemv_thread_safety)
endif()

endif()

Loading…
Cancel
Save