Fix typos and use CMake OpenMP support.
This commit is contained in:
parent
7c1acc07f0
commit
6aac06587d
|
@ -3,14 +3,12 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.5)
|
cmake_minimum_required(VERSION 2.8.5)
|
||||||
project(OpenBLAS C)
|
project(OpenBLAS C ASM)
|
||||||
set(OpenBLAS_MAJOR_VERSION 0)
|
set(OpenBLAS_MAJOR_VERSION 0)
|
||||||
set(OpenBLAS_MINOR_VERSION 3)
|
set(OpenBLAS_MINOR_VERSION 3)
|
||||||
set(OpenBLAS_PATCH_VERSION 0.dev)
|
set(OpenBLAS_PATCH_VERSION 0.dev)
|
||||||
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
|
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
|
||||||
|
|
||||||
enable_language(ASM)
|
|
||||||
|
|
||||||
# Adhere to GNU filesystem layout conventions
|
# Adhere to GNU filesystem layout conventions
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
@ -176,6 +174,11 @@ add_subdirectory(utest)
|
||||||
if (USE_THREAD)
|
if (USE_THREAD)
|
||||||
# Add threading library to linker
|
# Add threading library to linker
|
||||||
find_package(Threads)
|
find_package(Threads)
|
||||||
|
if (THREADS_HAVE_PTHREAD_ARG)
|
||||||
|
set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY COMPILE_OPTIONS "-pthread")
|
||||||
|
set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY INTERFACE_COMPILE_OPTIONS "-pthread")
|
||||||
|
endif()
|
||||||
|
message("PTHREAD: ${CMAKE_THREAD_LIBS_INIT}")
|
||||||
target_link_libraries(${OpenBLAS_LIBNAME} ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${OpenBLAS_LIBNAME} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -231,6 +234,7 @@ install(TARGETS ${OpenBLAS_LIBNAME}
|
||||||
|
|
||||||
install (FILES ${CMAKE_BINARY_DIR}/openblas_config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
install (FILES ${CMAKE_BINARY_DIR}/openblas_config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
|
||||||
|
if(NOT NOFORTRAN)
|
||||||
message(STATUS "Generating f77blas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
|
message(STATUS "Generating f77blas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
|
||||||
|
|
||||||
file(WRITE ${CMAKE_BINARY_DIR}/f77blas.h "")
|
file(WRITE ${CMAKE_BINARY_DIR}/f77blas.h "")
|
||||||
|
@ -239,6 +243,7 @@ install(TARGETS ${OpenBLAS_LIBNAME}
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "${COMMON_INTERFACE_H_CONTENTS}")
|
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "${COMMON_INTERFACE_H_CONTENTS}")
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "#endif")
|
file(APPEND ${CMAKE_BINARY_DIR}/f77blas.h "#endif")
|
||||||
install (FILES ${CMAKE_BINARY_DIR}/f77blas.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
install (FILES ${CMAKE_BINARY_DIR}/f77blas.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT NO_CBLAS)
|
if(NOT NO_CBLAS)
|
||||||
message (STATUS "Generating cblas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
|
message (STATUS "Generating cblas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
|
||||||
|
|
|
@ -33,31 +33,14 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (USE_OPENMP)
|
if (USE_OPENMP)
|
||||||
|
# USE_SIMPLE_THREADED_LEVEL3 = 1
|
||||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LSB")
|
# NO_AFFINITY = 1
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -fopenmp")
|
find_package(OpenMP)
|
||||||
endif ()
|
if (OpenMP_FOUND)
|
||||||
|
set(CCOMMON_OPT "${CCOMMON_OPT} ${OpenMP_C_FLAGS} -DUSE_OPENMP")
|
||||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
|
set(FCOMMON_OPT "${FCOMMON_OPT} ${OpenMP_Fortran_FLAGS}")
|
||||||
message(WARNING "Clang doesn't support OpenMP yet.")
|
elseif (UNIX)
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -fopenmp")
|
set(USE_OPENMP 0)
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
|
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -openmp")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI")
|
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -mp")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "OPEN64")
|
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -mp")
|
|
||||||
set(CEXTRALIB "${CEXTRALIB} -lstdc++")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "PATHSCALE")
|
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -mp")
|
|
||||||
endif()
|
endif()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ if (DEFINED BINARY AND DEFINED TARGET AND BINARY EQUAL 32)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (DEFINED TARGET)
|
if (DEFINED TARGET)
|
||||||
message(STATUS "Targetting the ${TARGET} architecture.")
|
message(STATUS "Targeting the ${TARGET} architecture.")
|
||||||
set(GETARCH_FLAGS "-DFORCE_${TARGET}")
|
set(GETARCH_FLAGS "-DFORCE_${TARGET}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@ -92,6 +92,12 @@ elseif(NOT DEFINED USE_THREAD)
|
||||||
set(USE_THREAD 1)
|
set(USE_THREAD 1)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# TODO: Fix. Isn't working. Was never working in CMake.
|
||||||
|
# Undefined reference to get_num_procs, blas_thread_shutdown, ...
|
||||||
|
if (UNIX)
|
||||||
|
set(USE_THREAD 0)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (USE_THREAD)
|
if (USE_THREAD)
|
||||||
message(STATUS "Multi-threading enabled with ${NUM_THREADS} threads.")
|
message(STATUS "Multi-threading enabled with ${NUM_THREADS} threads.")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -166,6 +172,8 @@ if (NO_AVX2)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (USE_THREAD)
|
if (USE_THREAD)
|
||||||
|
# USE_SIMPLE_THREADED_LEVEL3 = 1
|
||||||
|
# NO_AFFINITY = 1
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER")
|
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER")
|
||||||
|
|
||||||
if (${ARCH} STREQUAL "mips64")
|
if (${ARCH} STREQUAL "mips64")
|
||||||
|
@ -174,16 +182,9 @@ if (USE_THREAD)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (USE_OPENMP)
|
|
||||||
# USE_SIMPLE_THREADED_LEVEL3 = 1
|
|
||||||
# NO_AFFINITY = 1
|
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_OPENMP")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (BIGNUMA)
|
if (BIGNUMA)
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -DBIGNUMA")
|
set(CCOMMON_OPT "${CCOMMON_OPT} -DBIGNUMA")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NO_WARMUP)
|
if (NO_WARMUP)
|
||||||
|
@ -298,7 +299,7 @@ set(LAPACK_FPFLAGS "${LAPACK_FPFLAGS} ${FPFLAGS}")
|
||||||
|
|
||||||
#Disable -fopenmp for LAPACK Fortran codes on Windows.
|
#Disable -fopenmp for LAPACK Fortran codes on Windows.
|
||||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
||||||
set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parralel")
|
set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parallel")
|
||||||
foreach (FILTER_FLAG ${FILTER_FLAGS})
|
foreach (FILTER_FLAG ${FILTER_FLAGS})
|
||||||
string(REPLACE ${FILTER_FLAG} "" LAPACK_FFLAGS ${LAPACK_FFLAGS})
|
string(REPLACE ${FILTER_FLAG} "" LAPACK_FFLAGS ${LAPACK_FFLAGS})
|
||||||
string(REPLACE ${FILTER_FLAG} "" LAPACK_FPFLAGS ${LAPACK_FPFLAGS})
|
string(REPLACE ${FILTER_FLAG} "" LAPACK_FPFLAGS ${LAPACK_FPFLAGS})
|
||||||
|
|
Loading…
Reference in New Issue