Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 22 additions & 29 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ if(USE_CUDA)
# ${ABACUS_BIN_NAME} is added before CUDA is enabled
set_property(TARGET ${ABACUS_BIN_NAME}
PROPERTY CUDA_ARCHITECTURES ${CMAKE_CUDA_ARCHITECTURES})
target_link_libraries(${ABACUS_BIN_NAME} -lcudart -lnvToolsExt)
target_link_libraries(${ABACUS_BIN_NAME} cudart nvToolsExt)
include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
if(USE_CUDA)
add_compile_definitions(__CUDA)
Expand All @@ -323,8 +323,8 @@ if(USE_CUDA)
if (ENABLE_CUSOLVERMP)
add_compile_definitions(__CUSOLVERMP)
target_link_libraries(${ABACUS_BIN_NAME}
-lcal
-lcusolverMp
cal
cusolverMp
)
endif()
endif()
Expand Down Expand Up @@ -394,16 +394,15 @@ if(DEFINED ENV{MKLROOT} AND NOT DEFINED MKLROOT)
set(MKLROOT "$ENV{MKLROOT}")
endif()
if(MKLROOT)
find_package(IntelMKL REQUIRED)
set(MKL_INTERFACE lp64)
find_package(MKL REQUIRED)
add_definitions(-D__MKL)
include_directories(${MKL_INCLUDE_DIRS} ${MKL_INCLUDE_DIRS}/fftw)
list(APPEND math_libs IntelMKL::MKL)

include_directories(${MKL_INCLUDE} ${MKL_INCLUDE}/fftw)
list(APPEND math_libs MKL::MKL MKL::MKL_SCALAPACK)
if(CMAKE_CXX_COMPILER_ID MATCHES Intel)
list(APPEND math_libs -lifcore)
list(APPEND math_libs ifcore)
endif()
else()

find_package(FFTW3 REQUIRED)
find_package(Lapack REQUIRED)
include_directories(${FFTW3_INCLUDE_DIRS})
Expand All @@ -421,11 +420,11 @@ else()
list(APPEND math_libs FFTW3::FFTW3_FLOAT)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
list(APPEND math_libs -lgfortran)
list(APPEND math_libs gfortran)
elseif(CMAKE_CXX_COMPILER_ID MATCHES Intel)
list(APPEND math_libs -lifcore)
list(APPEND math_libs ifcore)
elseif(CMAKE_CXX_COMPILER_ID MATCHES Clang)
list(APPEND math_libs -lgfortran)
list(APPEND math_libs gfortran)
else()
message(WARNING "Cannot find the correct library for Fortran.")
endif()
Expand All @@ -436,7 +435,7 @@ if(ENABLE_FLOAT_FFTW)
endif()

if(ENABLE_DEEPKS)
# Torch uses outdated components to detech CUDA arch, causing failure on
# Torch uses outdated components to detect CUDA arch, causing failure on
# latest CUDA kits. Set CMake variable TORCH_CUDA_ARCH_LIST in the form of
# "major.minor" if required.
find_package(Torch REQUIRED)
Expand All @@ -446,10 +445,13 @@ if(ENABLE_DEEPKS)
set_if_higher(CMAKE_CXX_STANDARD 14)
endif()
include_directories(${TORCH_INCLUDE_DIRS})
target_link_libraries(${ABACUS_BIN_NAME} deepks)
list(APPEND math_libs ${TORCH_LIBRARIES})

if(MKL_FOUND)
list(PREPEND math_libs ${TORCH_LIBRARIES})
else()
list(APPEND math_libs ${TORCH_LIBRARIES})
endif()
add_compile_options(${TORCH_CXX_FLAGS})
target_link_libraries(${ABACUS_BIN_NAME} deepks)

find_path(libnpy_SOURCE_DIR npy.hpp HINTS ${libnpy_INCLUDE_DIR})
if(NOT libnpy_SOURCE_DIR)
Expand Down Expand Up @@ -524,6 +526,7 @@ if(ENABLE_LIBRI)
else()
message(FATAL_ERROR "Must provide LIBRI_DIR for RI related features.")
endif()
target_link_libraries(${ABACUS_BIN_NAME} ri)
add_compile_definitions(__EXX EXX_DM=3 EXX_H_COMM=2 TEST_EXX_LCAO=0
TEST_EXX_RADIAL=1)
endif()
Expand Down Expand Up @@ -551,6 +554,7 @@ if(ENABLE_PAW)
else()
message(FATAL_ERROR "Must provide LIBPAW_DIR for PAW related features.")
endif()
target_link_libraries(${ABACUS_BIN_NAME} paw)
add_compile_definitions(USE_PAW)
endif()

Expand Down Expand Up @@ -663,7 +667,6 @@ if(BUILD_TESTING)
COMMAND ${UT_TARGET}
WORKING_DIRECTORY $<TARGET_FILE_DIR:${UT_TARGET}>)
endfunction(AddTest)

endif()

add_subdirectory(source)
Expand Down Expand Up @@ -696,11 +699,6 @@ target_link_libraries(
parameter
device
container)

if(ENABLE_PAW)
target_link_libraries(${ABACUS_BIN_NAME} paw)
endif()

if(ENABLE_LCAO)
target_link_libraries(
${ABACUS_BIN_NAME}
Expand All @@ -719,9 +717,8 @@ if(ENABLE_LCAO)
target_link_libraries(diag_cusolver)
endif()
endif()

if(ENABLE_LIBRI)
target_link_libraries(${ABACUS_BIN_NAME} ri)
if(ENABLE_RAPIDJSON)
target_link_libraries(${ABACUS_BIN_NAME} json_output)
endif()

install(PROGRAMS ${ABACUS_BIN_PATH}
Expand All @@ -732,7 +729,3 @@ install(PROGRAMS ${ABACUS_BIN_PATH}
if(ENABLE_COVERAGE)
coverage_evaluate()
endif()

if(ENABLE_RAPIDJSON)
target_link_libraries(${ABACUS_BIN_NAME} json_output)
endif()
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
</p>

<p align="center">
<a href="https://github.com/deepmodeling/abacus-develop/actions/workflows/image.yml">
<img src="https://github.com/deepmodeling/abacus-develop/actions/workflows/image.yml/badge.svg">
</a>
<a href="https://github.com/deepmodeling/abacus-develop/actions/workflows/test.yml">
<img src="https://github.com/deepmodeling/abacus-develop/actions/workflows/test.yml/badge.svg">
</a>
Expand Down
80 changes: 0 additions & 80 deletions cmake/FindIntelMKL.cmake

This file was deleted.

83 changes: 83 additions & 0 deletions cmake/FindMKL.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# - Find mkl
# Find the native MKL headers and libraries.
#
# MKL_INCLUDE - where to find mkl.h, etc.
# MKL_FOUND - True if mkl found.

find_package(MKL NO_MODULE) # try using official module first
if(NOT TARGET MKL::MKL)

find_path(MKL_INCLUDE mkl_service.h HINTS ${MKLROOT}/include)

find_library(MKL_INTEL NAMES mkl_intel_lp64 HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
find_library(MKL_INTEL_THREAD NAMES mkl_intel_thread HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
find_library(MKL_CORE NAMES mkl_core HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
if(ENABLE_MPI)
find_library(MKL_SCALAPACK NAMES mkl_scalapack_lp64 HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
find_library(MKL_BLACS_INTELMPI NAMES mkl_blacs_intelmpi_lp64 HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
endif()

include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set MKL_FOUND to TRUE
# if all listed variables are TRUE

if(ENABLE_MPI)
find_package_handle_standard_args(MKL DEFAULT_MSG MKL_INTEL MKL_INTEL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS_INTELMPI MKL_INCLUDE)
else()
find_package_handle_standard_args(MKL MKL_INTEL MKL_INTEL_THREAD MKL_CORE MKL_INCLUDE)
endif()

if(MKL_FOUND)
if(NOT TARGET MKL::INTEL)
add_library(MKL::INTEL UNKNOWN IMPORTED)
set_target_properties(MKL::INTEL PROPERTIES
IMPORTED_LOCATION "${MKL_INTEL}"
INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE}")
endif()
if(NOT TARGET MKL::INTEL_THREAD)
add_library(MKL::INTEL_THREAD UNKNOWN IMPORTED)
set_target_properties(MKL::INTEL_THREAD PROPERTIES
IMPORTED_LOCATION "${MKL_INTEL_THREAD}"
INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE}")
endif()
if(NOT TARGET MKL::CORE)
add_library(MKL::CORE UNKNOWN IMPORTED)
set_target_properties(MKL::CORE PROPERTIES
IMPORTED_LOCATION "${MKL_CORE}"
INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE}")
endif()
if(NOT TARGET MKL::MKL_SCALAPACK)
add_library(MKL::MKL_SCALAPACK UNKNOWN IMPORTED)
set_target_properties(MKL::MKL_SCALAPACK PROPERTIES
IMPORTED_LOCATION "${MKL_SCALAPACK}"
INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE}")
endif()
if(NOT TARGET MKL::BLACS_INTELMPI)
add_library(MKL::BLACS_INTELMPI UNKNOWN IMPORTED)
set_target_properties(MKL::BLACS_INTELMPI PROPERTIES
IMPORTED_LOCATION "${MKL_BLACS_INTELMPI}"
INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE}")
endif()
add_library(MKL::MKL INTERFACE IMPORTED)
if (ENABLE_MPI)
set_property(TARGET MKL::MKL PROPERTY
INTERFACE_LINK_LIBRARIES
"-Wl,--start-group"
MKL::INTEL MKL::INTEL_THREAD MKL::CORE MKL::MKL_SCALAPACK MKL::BLACS_INTELMPI
"-Wl,--end-group"
)
else()
set_property(TARGET MKL::MKL PROPERTY
INTERFACE_LINK_LIBRARIES
"-Wl,--start-group"
MKL::INTEL MKL::INTEL_THREAD MKL::CORE)
endif()
endif()

if(ENABLE_MPI)
mark_as_advanced(MKL_INCLUDE MKL_INTEL MKL_INTEL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS_INTELMPI)
else()
mark_as_advanced(MKL_INCLUDE MKL_INTEL MKL_INTEL_THREAD MKL_CORE)
endif()

endif() # MKL::MKL