Add Math::BLAS_LAPACK/FFTW/scalar_vector_functions.

This commit is contained in:
Ye Luo 2020-02-08 19:55:57 +08:00
parent ca3b289ee1
commit 02415d9568
20 changed files with 117 additions and 157 deletions

View File

@ -1,21 +1,6 @@
INCLUDE(${CMAKE_ROOT}/Modules/CheckCXXSourceCompiles.cmake)
SET(SINCOS_INCLUDE cmath)
SET(ENABLE_MASS FALSE CACHE BOOL "ENABLE MASS math libraries for Power architecture")
# This needs to go before HAVE_SINCOS
IF(ENABLE_MASS)
INCLUDE(CMake/FindIBMMASS.cmake)
IF(HAVE_MASS)
SET(CMAKE_REQUIRED_INCLUDES ${MASS_INCLUDE_DIRECTORIES} ${CMAKE_REQUIRED_INCLUDES})
SET(CMAKE_REQUIRED_LINK_OPTIONS ${MASS_LINKER_FLAGS})
SET(CMAKE_REQUIRED_LIBRARIES ${MASS_LIBRARIES})
ENDIF(HAVE_MASS)
ENDIF(ENABLE_MASS)
MESSAGE("CMAKE_REQUIRED_INCLUDES: ${CMAKE_REQUIRED_INCLUDES}")
MESSAGE("CMAKE_REQUIRED_LINK_OPTIONS: ${CMAKE_REQUIRED_LINK_OPTIONS}")
MESSAGE("CMAKE_REQUIRED_LIBRARIES: ${CMAKE_REQUIRED_LIBRARIES}")
SET(CMAKE_REQUIRED_LIBRARIES Math::scalar_vector_functions)
SET( SINCOS_TEST_SRC
"#include \"${SINCOS_INCLUDE}\"

View File

@ -20,6 +20,11 @@ IF(FFTW_INCLUDE_DIR AND FFTW_LIBRARIES)
MESSAGE(STATUS "FFTW_INCLUDE_DIR=${FFTW_INCLUDE_DIR}")
MESSAGE(STATUS "FFTW_LIBRARIES=${FFTW_LIBRARIES}")
SET(FFTW_FOUND TRUE)
#create FFTW3 target
ADD_LIBRARY(Math::FFTW3 INTERFACE IMPORTED)
SET_TARGET_PROPERTIES(Math::FFTW3 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${FFTW_INCLUDE_DIR}"
INTERFACE_COMPILE_DEFINITIONS "HAVE_LIBFFTW"
INTERFACE_LINK_LIBRARIES "${FFTW_LIBRARIES}")
ENDIF()
MARK_AS_ADVANCED(

View File

@ -7,9 +7,9 @@ set(SUFFIXES include)
find_path(MASS_INCLUDE_DIRECTORIES name "mass.h" HINTS ${MASS_ROOT}
PATH_SUFFIXES ${SUFFIXES})
if (NOT MASS_INCLUDE_DIRECTORIES)
message(FATAL_ERROR "MASS_INCLUDE_DIRECTORIES not set. \"mass.h\" not found in MASS_ROOT/(${SUFFIXES})")
MESSAGE(FATAL_ERROR "MASS_INCLUDE_DIRECTORIES not set. \"mass.h\" not found in MASS_ROOT/(${SUFFIXES})")
endif (NOT MASS_INCLUDE_DIRECTORIES)
message("MASS_INCLUDE_DIRECTORIES: ${MASS_INCLUDE_DIRECTORIES}")
MESSAGE(STATUS "MASS_INCLUDE_DIRECTORIES: ${MASS_INCLUDE_DIRECTORIES}")
# Finding and setting the MASS_LINK_DIRECTORIES
# the directory organization varies with platform and targets
@ -19,10 +19,10 @@ set(SUFFIXES lib lib64)
find_path(MASS_LINK_DIRECTORIES name "${MASS_FIND_LIB}" HINTS ${MASS_ROOT}
PATH_SUFFIXES ${SUFFIXES})
if (NOT MASS_LINK_DIRECTORIES)
message(FATAL_ERROR "MASS_LINK_DIRECTORIES not set. ${MASS_FIND_LIB} "
MESSAGE(FATAL_ERROR "MASS_LINK_DIRECTORIES not set. ${MASS_FIND_LIB} "
"not found in MASS_ROOT/(${SUFFIXES})")
endif (NOT MASS_LINK_DIRECTORIES)
message("MASS_LINK_DIRECTORIES: ${MASS_LINK_DIRECTORIES}")
MESSAGE(STATUS "MASS_LINK_DIRECTORIES: ${MASS_LINK_DIRECTORIES}")
set(MASS_LINKER_FLAGS -L${MASS_LINK_DIRECTORIES} -Wl,-rpath,${MASS_LINK_DIRECTORIES})
set(MASS_LIBRARIES "-lmass -lmassv")
@ -45,6 +45,7 @@ for( int i = 0; i < in_size; ++i)
vlog10(resultv, inputv, &in_size);
}
")
try_compile(HAVE_MASS ${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src_mass.cxx
CMAKE_FLAGS
@ -58,17 +59,17 @@ if ( NOT HAVE_MASS )
endif ( NOT HAVE_MASS )
IF ( HAVE_MASS )
SET( MASS_FOUND 1 )
SET( MASS_FLAGS ${MASS_COMPILE_DEFINITIONS} )
include_directories( ${MASS_INCLUDE_DIRECTORIES} )
set( HAVE_VECTOR_MATH 1 )
set( HAVE_MASSV 1 )
set( SINCOS_INCLUDE mass.h )
SET( MASS_FOUND TRUE )
SET( HAVE_MASSV TRUE )
MESSAGE(STATUS "MASS found: HAVE_MASS=${HAVE_MASS}, HAVE_MASSV=${HAVE_MASSV}")
#create scalar_vector_functions target
ADD_LIBRARY(Math::scalar_vector_functions INTERFACE IMPORTED)
SET_TARGET_PROPERTIES(Math::scalar_vector_functions PROPERTIES INTERFACE_COMPILE_DEFINITIONS "HAVE_MASS;HAVE_MASSV"
INTERFACE_INCLUDE_DIRECTORIES "${MASS_INCLUDE_DIRECTORIES}"
INTERFACE_LINK_LIBRARIES "${MASS_LINKER_FLAGS} ${MASS_LIBRARIES}")
set( SINCOS_INCLUDE mass.h )
ELSE( HAVE_MASS )
SET( MASS_FOUND 0 )
SET( MASS_FLAGS )
SET( MASS_LIBRARIES )
SET( MASS_LINKER_FLAGS )
MESSAGE("MASS not found")
SET( MASS_FOUND FALSE )
MESSAGE(STATUS "MASS not found")
ENDIF( HAVE_MASS )

View File

@ -20,21 +20,21 @@ else (NOT MKL_ROOT)
find_path(MKL_INCLUDE_DIRECTORIES "mkl.h" HINTS ${MKL_ROOT}
PATH_SUFFIXES ${SUFFIXES})
if (NOT MKL_INCLUDE_DIRECTORIES)
message(FATAL_ERROR "MKL_INCLUDE_DIRECTORIES not set. \"mkl.h\" not found in MKL_ROOT/(${SUFFIXES})")
MESSAGE(FATAL_ERROR "MKL_INCLUDE_DIRECTORIES not set. \"mkl.h\" not found in MKL_ROOT/(${SUFFIXES})")
endif ()
endif (NOT MKL_ROOT)
if (NOT MKL_ROOT)
if (CMAKE_CXX_COMPILER_ID MATCHES "Intel")
message(FATAL_ERROR "Intel's standard compilervar.sh sets the env variable MKLROOT.\n"
MESSAGE(FATAL_ERROR "Intel's standard compilervar.sh sets the env variable MKLROOT.\n"
"If you are invoking icc without the customary environment\n"
"you must set the the environment variable or pass cmake MKL_ROOT.")
else(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
message (FATAL_ERROR "ENABLE_MKL is TRUE and mkl directory not found. Set MKL_ROOT." )
MESSAGE(FATAL_ERROR "ENABLE_MKL is TRUE and mkl directory not found. Set MKL_ROOT." )
endif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
endif (NOT MKL_ROOT)
message("MKL_INCLUDE_DIRECTORIES: ${MKL_INCLUDE_DIRECTORIES}")
MESSAGE(STATUS "MKL_INCLUDE_DIRECTORIES: ${MKL_INCLUDE_DIRECTORIES}")
if ( NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
# Finding and setting the MKL_LINK_DIRECTORIES
@ -45,11 +45,11 @@ if ( NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
find_library(MKL_LINK_DIRECTORIES "${MKL_FIND_LIB}" HINTS ${MKL_ROOT}
PATH_SUFFIXES ${SUFFIXES})
if (NOT MKL_LINK_DIRECTORIES)
message(FATAL_ERROR "MKL_LINK_DIRECTORIES not set. ${MKL_FIND_LIB} "
MESSAGE(FATAL_ERROR "MKL_LINK_DIRECTORIES not set. ${MKL_FIND_LIB} "
"not found in MKL_ROOT/(${SUFFIXES})")
endif ()
string(REPLACE "/${MKL_FIND_LIB}" "" MKL_LINK_DIRECTORIES ${MKL_LINK_DIRECTORIES})
message("MKL_LINK_DIRECTORIES: ${MKL_LINK_DIRECTORIES}")
MESSAGE(STATUS "MKL_LINK_DIRECTORIES: ${MKL_LINK_DIRECTORIES}")
set(MKL_LINKER_FLAGS "-L${MKL_LINK_DIRECTORIES} -Wl,-rpath,${MKL_LINK_DIRECTORIES}")
set(MKL_LIBRARIES "-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl")
else ( NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
@ -91,13 +91,12 @@ find_path(MKL_FFTW3 "fftw3.h"
HINTS ${MKL_INCLUDE_DIRECTORIES}
PATH_SUFFIXES fftw)
if(MKL_FFTW3)
list(APPEND MKL_INCLUDE_DIRECTORIES ${MKL_FFTW3})
FILE( WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src_mkl_fftw3.cxx"
"#include <iostream>\n #include <fftw3.h>\n int main() { return 0; }\n" )
try_compile(HAVE_MKL_FFTW3 ${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src_mkl_fftw3.cxx
CMAKE_FLAGS
"-DINCLUDE_DIRECTORIES=${MKL_INCLUDE_DIRECTORIES} "
"-DINCLUDE_DIRECTORIES=${MKL_FFTW3} "
"-DLINK_DIRECTORIES=${MKL_LINK_DIRECTORIES}"
LINK_LIBRARIES "${MKL_LIBRARIES}"
COMPILE_DEFINITIONS "${MKL_COMPILE_DEFINITIONS}"
@ -107,14 +106,46 @@ else(MKL_FFTW3)
endif(MKL_FFTW3)
IF ( HAVE_MKL )
SET( MKL_FOUND 1 )
SET( MKL_FLAGS ${MKL_COMPILE_DEFINITIONS} )
include_directories( ${MKL_INCLUDE_DIRECTORIES} )
SET( MKL_FOUND TRUE )
MESSAGE(STATUS "MKL found: HAVE_MKL=${HAVE_MKL}, HAVE_MKL_VML=${HAVE_MKL_VML}, HAVE_MKL_FFTW3=${HAVE_MKL_FFTW3}")
#create BLAS_LAPACK target
ADD_LIBRARY(Math::BLAS_LAPACK INTERFACE IMPORTED)
SET_TARGET_PROPERTIES(Math::BLAS_LAPACK PROPERTIES INTERFACE_COMPILE_DEFINITIONS "HAVE_MKL")
IF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
SET_TARGET_PROPERTIES(Math::BLAS_LAPACK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE_DIRECTORIES}"
INTERFACE_LINK_LIBRARIES "${MKL_LINKER_FLAGS} ${MKL_LIBRARIES}")
ELSE (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
SET_TARGET_PROPERTIES(Math::BLAS_LAPACK PROPERTIES INTERFACE_COMPILE_OPTIONS "-mkl"
INTERFACE_LINK_LIBRARIES "-mkl")
ENDIF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
IF( HAVE_MKL_VML )
#create scalar_vector_functions target
ADD_LIBRARY(Math::scalar_vector_functions INTERFACE IMPORTED)
SET_TARGET_PROPERTIES(Math::scalar_vector_functions PROPERTIES INTERFACE_COMPILE_DEFINITIONS "HAVE_MKL;HAVE_MKL_VML")
IF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
SET_TARGET_PROPERTIES(Math::scalar_vector_functions PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE_DIRECTORIES}"
INTERFACE_LINK_LIBRARIES "${MKL_LINKER_FLAGS} ${MKL_LIBRARIES}")
ELSE (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
SET_TARGET_PROPERTIES(Math::scalar_vector_functions PROPERTIES INTERFACE_COMPILE_OPTIONS "-mkl"
INTERFACE_LINK_LIBRARIES "-mkl")
ENDIF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
ENDIF( HAVE_MKL_VML )
IF( HAVE_MKL_FFTW3 )
#create FFTW3 target
ADD_LIBRARY(Math::FFTW3 INTERFACE IMPORTED)
SET_TARGET_PROPERTIES(Math::FFTW3 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${MKL_FFTW3}"
INTERFACE_COMPILE_DEFINITIONS "HAVE_MKL;HAVE_LIBFFTW")
IF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
SET_TARGET_PROPERTIES(Math::FFTW3 PROPERTIES INTERFACE_LINK_LIBRARIES "${MKL_LINKER_FLAGS} ${MKL_LIBRARIES}")
ELSE (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
SET_TARGET_PROPERTIES(Math::FFTW3 PROPERTIES INTERFACE_COMPILE_OPTIONS "-mkl"
INTERFACE_LINK_LIBRARIES "-mkl")
ENDIF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
ENDIF( HAVE_MKL_FFTW3 )
ELSE( HAVE_MKL )
SET( MKL_FOUND 0 )
SET( MKL_FLAGS )
SET( MKL_LIBRARIES )
SET( MKL_LINKER_FLAGS )
MESSAGE("MKL not found")
SET( MKL_FOUND FALSE )
MESSAGE(STATUS "MKL not found")
ENDIF( HAVE_MKL )

View File

@ -1,42 +0,0 @@
#
# Find vectorized math libraries and enable appropriate flags
#
# Initial version only for MKL VML. Works for gcc+MKL case. libm and massv detection required.
#
IF(NOT HAVE_MASS)
SET( HAVE_VECTOR_MATH 0 )
IF ( HAVE_MKL_VML )
# We arrive here if MKL was detected earlier by FindMKL
SET ( HAVE_VECTOR_MATH 1 )
MESSAGE(STATUS "Using MKL Vector Math functions")
ELSE()
#MESSAGE(STATUS "Trying MKL VML")
# Check for mkl_vml_functions.h
FILE( WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src_mkl_vml.cxx"
"#include <iostream>\n #include <mkl_vml_functions.h>\n int main() { return 0; }\n" )
try_compile(HAVE_MKL_VML ${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src_mkl_vml.cxx
CMAKE_FLAGS "${CMAKE_CXX_FLAGS}" )
IF (HAVE_MKL_VML)
# enable VML only when MKL libraries have been picked up
IF (MKL_FOUND)
SET ( HAVE_VECTOR_MATH 1 )
MESSAGE(STATUS "Using MKL Vector Math functions (header file check passed)")
ELSE(MKL_FOUND)
MESSAGE(STATUS "Drop MKL Vector Math functions (header file check passed but libraries are not available)")
SET ( HAVE_MKL_VML 0 )
ENDIF(MKL_FOUND)
ELSE ()
IF (MKL_FOUND)
MESSAGE(WARNING "mkl_vml_functions.h check failed but MKL libraries are available. At the risk of losing performance.")
ENDIF()
ENDIF()
ENDIF()
ENDIF()
IF ( NOT HAVE_VECTOR_MATH )
MESSAGE(STATUS "No usable vector math library detected.")
ENDIF()

View File

@ -226,8 +226,6 @@ INCLUDE(${CMAKE_ROOT}/Modules/CheckCXXSymbolExists.cmake)
INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
INCLUDE(${PROJECT_CMAKE}/CheckSincos.cmake)
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
@ -450,34 +448,25 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
INCLUDE(CMake/FindMKL.cmake)
ENDIF(ENABLE_MKL)
IF ( HAVE_MKL )
# We found MKL, add the link library
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MKL_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MKL_FLAGS}")
SET(LAPACK_FOUND 1)
SET(LAPACK_LIBRARIES "${MKL_LIBRARIES}")
SET(LAPACK_LINKER_FLAGS "${MKL_LINKER_FLAGS}")
# Skip adding Math::BLAS_LAPACK target which has been imported by FindMKL.
ELSEIF ( $ENV{CRAYPE_VERSION} MATCHES "." )
# Cray specific environment variable indicates we are on a cray. Assume libsci will be linked
# preferable to attempt a compile/link
SET(LAPACK_FOUND 1)
MESSAGE(STATUS "Assuming Cray libsci or other BLAS/LAPACK will be linked by compiler wrappers")
ADD_LIBRARY(Math::BLAS_LAPACK INTERFACE IMPORTED)
ELSE()
# Search for Blas/Lapack
find_package(LAPACK)
# The last search for Blas/Lapack
find_package(LAPACK REQUIRED)
IF("${LAPACK_LIBRARIES}" MATCHES "mkl")
MESSAGE(FATAL_ERROR "MKL found via LAPACK/BLAS. Please pass -DENABLE_MKL=1 to cmake for full Intel MKL utilization. -DMKL_ROOT may also be needed for the include files to be found.")
ENDIF()
ENDIF()
IF(LAPACK_FOUND)
MESSAGE(STATUS "LAPACK libraries: ${LAPACK_LIBRARIES}")
MESSAGE(STATUS "LAPACK linker flags: ${LAPACK_LINKER_FLAGS}")
SET(LAPACK_LIBRARY ${LAPACK_LIBRARIES} ${LAPACK_LINKER_FLAGS})
ELSE()
MESSAGE(FATAL_ERROR "Could not find required libraries LAPACK &/or BLAS")
SET(LAPACK_LIBRARY ${LAPACK_LINKER_FLAGS} ${LAPACK_LIBRARIES})
# Add Math::BLAS_LAPACK target
ADD_LIBRARY(Math::BLAS_LAPACK INTERFACE IMPORTED)
SET_TARGET_PROPERTIES(Math::BLAS_LAPACK PROPERTIES INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARY}")
ENDIF()
INCLUDE(CMake/FindVectorMath.cmake)
ENDIF(CMAKE_TOOLCHAIN_FILE)
IF (ENABLE_GCOV)
@ -545,16 +534,31 @@ ENDIF(QMC_MPI)
# installataions
# list of libraries to be linked with the main applications using I/O
SET(QMC_UTIL_LIBS ${LAPACK_LIBRARY} ${BLAS_LIBRARY})
#-------------------------------------------------------------------
# set up scalar/vector math libraries
#-------------------------------------------------------------------
SET(ENABLE_MASS FALSE CACHE BOOL "ENABLE MASS scalar and vector math libraries for Power architecture")
# This needs a better place to live. as does all the IF( HAVE_MKL ) stuff
IF(HAVE_MASS)
SET(CMAKE_CXX_FLAGS ${MASS_FLAGS} ${CMAKE_CXX_FLAGS})
SET(CMAKE_C_FLAGS ${MASS_FLAGS} ${CMAKE_C_FLAGS})
SET(MASS_LIBRARY "${MASS_LINKER_FLAGS} ${MASS_LIBRARIES}")
SET(QMC_UTIL_LIBS ${MASS_LIBRARY} ${QMC_UTIL_LIBS})
ENDIF(HAVE_MASS)
# This needs to go before HAVE_SINCOS
IF(ENABLE_MASS)
INCLUDE(CMake/FindIBMMASS.cmake)
ENDIF(ENABLE_MASS)
IF(NOT HAVE_MASS AND NOT HAVE_MKL_VML)
MESSAGE(STATUS "No usable vector math library detected.")
ADD_LIBRARY(Math::scalar_vector_functions INTERFACE IMPORTED)
ENDIF(NOT HAVE_MASS AND NOT HAVE_MKL_VML)
# CheckSincos relies on SINCOS_INCLUDE which may be modified based on vendor libraries
IF(NOT SINCOS_INCLUDE)
SET(SINCOS_INCLUDE cmath)
ENDIF(NOT SINCOS_INCLUDE)
MESSAGE(STATUS "SINCOS_INCLUDE : ${SINCOS_INCLUDE}")
INCLUDE(${PROJECT_CMAKE}/CheckSincos.cmake)
#-------------------------------------------------------------------
# set up FFTW3 library
#-------------------------------------------------------------------
SET( FFTW_FOUND 0 )
IF ( HAVE_MKL )
IF ( HAVE_MKL_FFTW3 )
@ -566,8 +570,6 @@ IF ( NOT FFTW_FOUND )
ENDIF()
IF(FFTW_FOUND)
SET(HAVE_LIBFFTW 1)
INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
SET(QMC_UTIL_LIBS ${QMC_UTIL_LIBS} ${FFTW_LIBRARIES})
MESSAGE(STATUS "Found FFTW")
ELSE(FFTW_FOUND)
# MESSAGE(STATUS "Disabling FFTW")

View File

@ -70,6 +70,7 @@ ELSE(ENABLE_CUDA)
ENDIF(ENABLE_CUDA)
TARGET_LINK_LIBRARIES(afqmc PUBLIC qmcutil)
TARGET_LINK_LIBRARIES(afqmc PRIVATE Math::BLAS_LAPACK)
IF(HAVE_MPI)
TARGET_COMPILE_DEFINITIONS(afqmc PRIVATE "USE_MPI")
ENDIF(HAVE_MPI)

View File

@ -25,7 +25,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_dense_numerics.cpp test_ma_blas.cpp
test_sparse_numerics.cpp test_sparse_numerics_native.cpp)
#ENDIF(ENABLE_CUDA)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc Math::BLAS_LAPACK)
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -254,7 +254,7 @@ ENDIF()
ADD_LIBRARY(qmcbase ${PARTICLE} ${PARTICLEIO})
TARGET_LINK_LIBRARIES(qmcbase PRIVATE qmcminimalcontainers)
TARGET_LINK_LIBRARIES(qmcbase PRIVATE qmcminimalcontainers Math::BLAS_LAPACK Math::scalar_vector_functions)
TARGET_LINK_LIBRARIES(qmcbase PUBLIC qmcutil)

View File

@ -18,7 +18,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_ParticleBConds.cpp test_CrystalLattice.cpp test_LRBreakupParameters.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil Math::scalar_vector_functions)
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -30,7 +30,7 @@ SET(UTEST_SRCS test_grid_functor.cpp test_stdlib.cpp test_bessel.cpp
ADD_EXECUTABLE(${UTEST_EXE} ${UTEST_SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil Math::scalar_vector_functions)
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -17,6 +17,6 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_particle.cpp test_distance_table.cpp test_walker.cpp test_particle_pool.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase Math::scalar_vector_functions)
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -117,10 +117,11 @@ USE_FAKE_RNG(qmcdriver_unit)
TARGET_LINK_LIBRARIES(qmcdriver PUBLIC qmcham)
TARGET_LINK_LIBRARIES(qmcdriver_unit PUBLIC qmcham_unit)
TARGET_LINK_LIBRARIES(qmcdriver PRIVATE Math::BLAS_LAPACK)
TARGET_LINK_LIBRARIES(qmcdriver_unit PRIVATE Math::BLAS_LAPACK)
IF(BUILD_LMYENGINE_INTERFACE)
TARGET_LINK_LIBRARIES(qmcdriver PUBLIC formic_utils)
TARGET_LINK_LIBRARIES(qmcdriver_unit PUBLIC formic_utils)
TARGET_LINK_LIBRARIES(qmcdriver PRIVATE formic_utils)
TARGET_LINK_LIBRARIES(qmcdriver_unit PRIVATE formic_utils)
ENDIF()
#IF(QMC_BUILD_STATIC)

View File

@ -117,8 +117,8 @@ TARGET_LINK_LIBRARIES(qmcham_unit PUBLIC qmcfakerng)
TARGET_LINK_LIBRARIES(qmcham PUBLIC qmcwfs)
TARGET_LINK_LIBRARIES(qmcham_unit PUBLIC qmcwfs)
TARGET_LINK_LIBRARIES(qmcham PRIVATE einspline)
TARGET_LINK_LIBRARIES(qmcham_unit PRIVATE einspline)
TARGET_LINK_LIBRARIES(qmcham PRIVATE einspline Math::BLAS_LAPACK Math::FFTW3)
TARGET_LINK_LIBRARIES(qmcham_unit PRIVATE einspline Math::BLAS_LAPACK Math::FFTW3)
#IF(QMC_BUILD_STATIC)

View File

@ -64,7 +64,7 @@ INSTALL(TARGETS qmc-check-affinity
RUNTIME DESTINATION bin)
ADD_EXECUTABLE(convertpw4qmc convertpw4qmc.cpp XmlRep.cpp WriteEshdf.cpp)
TARGET_LINK_LIBRARIES(convertpw4qmc PRIVATE qmcutil)
TARGET_LINK_LIBRARIES(convertpw4qmc PRIVATE qmcutil Math::FFTW3)
INSTALL(TARGETS convertpw4qmc
RUNTIME DESTINATION bin)

View File

@ -11,10 +11,4 @@ target_sources(ppconvert
"${CMAKE_CURRENT_SOURCE_DIR}/ParserClass.cc"
)
target_link_libraries(ppconvert common ${LAPACK_LIBRARIES})
set_property(TARGET ppconvert PROPERTY INSTALL_RPATH "${LAPACK_LINK_DIRECTORIES}")
set_property(TARGET ppconvert PROPERTY BUILD_WITH_INSTALL_RPATH ON)
set_property(TARGET ppconvert PROPERTY LINK_FLAGS "${LAPACK_LINKER_FLAGS}")
target_include_directories(ppconvert PUBLIC
${LAPACK_INCLUDE_DIRECTORIES}
)
target_link_libraries(ppconvert common Math::BLAS_LAPACK)

View File

@ -234,7 +234,7 @@ IF(HAVE_CUDA)
ENDIF(HAVE_CUDA)
TARGET_LINK_LIBRARIES(qmcwfs PUBLIC qmcbase)
TARGET_LINK_LIBRARIES(qmcwfs PRIVATE einspline)
TARGET_LINK_LIBRARIES(qmcwfs PRIVATE einspline Math::BLAS_LAPACK Math::FFTW3 Math::scalar_vector_functions)
#IF(QMC_BUILD_STATIC)
# ADD_LIBRARY(qmcwfs STATIC ${WFBASE_SRCS} ${JASTROW_SRCS} ${FERMION_SRCS})

View File

@ -61,7 +61,7 @@ ADD_EXECUTABLE(${UTEST_EXE} test_wf.cpp test_TrialWaveFunction.cpp test_wavefunc
test_rpa_jastrow.cpp test_example_he.cpp test_user_jastrow.cpp
test_lattice_gaussian.cpp test_kspace_jastrow.cpp
test_short_range_cusp_jastrow.cpp ${MO_SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcwfs)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcwfs Math::BLAS_LAPACK Math::scalar_vector_functions)
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${UTEST_DIR})

View File

@ -62,9 +62,6 @@
/* Define to 1 if you have libxml2 */
#cmakedefine HAVE_LIBXML2 @HAVE_LIBXML2@
/* Define to 1 if you have fftw */
#cmakedefine HAVE_LIBFFTW @HAVE_LIBFFTW@
/* Define to 1 if you have libxml++ */
#cmakedefine HAVE_LIBXMLPP @HAVE_LIBXMLPP@
@ -132,24 +129,12 @@
#endif /* HAVE_EINSPLINE_EXT */
/* Find MKL library */
#cmakedefine HAVE_MKL @HAVE_MKL@
/* Find mkl/vml library */
#cmakedefine HAVE_MKL_VML @HAVE_MKL_VML@
/* Find ESSL library */
#cmakedefine HAVE_ESSL @HAVE_ESSL@
/* Find acml library */
#cmakedefine HAVE_ACML @HAVE_ACML@
/* Find MASS library */
#cmakedefine HAVE_MASS @HAVE_MASS@
/* Find MASSV library */
#cmakedefine HAVE_MASSV @HAVE_MASSV@
/* Using CUDA for GPU execution */
#cmakedefine QMC_CUDA @QMC_CUDA@

View File

@ -64,14 +64,11 @@ add_library(formic_utils matrix.cpp
lmyengine/var_dependencies.cpp)
TARGET_COMPILE_DEFINITIONS(formic_utils INTERFACE "HAVE_LMY_ENGINE")
TARGET_LINK_LIBRARIES(formic_utils PRIVATE Math::BLAS_LAPACK)
IF(HAVE_MPI)
TARGET_LINK_LIBRARIES(formic_utils PUBLIC MPI::MPI_CXX)
ENDIF()
# Ye Temporary safe depdency for linear algerbra, will be fixed soon.
TARGET_LINK_LIBRARIES(formic_utils PUBLIC qmcutil)
#target_link_libraries(formic_utils ${FORMIC_LAPACK_BLAS_LIBS})
#set_property(TARGET formic_utils PROPERTY CXX_STANDARD 11)