Merge pull request #2841 from martin-frbg/cpp_gemvtest
Make thread safety tests available to CMAKE and support running only the GEMV version
This commit is contained in:
commit
2855e6000c
|
@ -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
Makefile
3
Makefile
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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…
Reference in New Issue