Skip to content

Commit 6c02bb0

Browse files
authored
Merge branch 'develop' into fix/bpcg-gemm
2 parents 3daa8c1 + f33650f commit 6c02bb0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+2468
-342
lines changed

CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ option(ENABLE_RAPIDJSON "Enable rapid-json usage." OFF)
3939
option(ENABLE_CNPY "Enable cnpy usage." OFF)
4040
option(ENABLE_PEXSI "Enable support for PEXSI." OFF)
4141
option(ENABLE_CUSOLVERMP "Enable cusolvermp." OFF)
42+
option(USE_DSP "Enable DSP usage." OFF)
4243

4344
# enable json support
4445
if(ENABLE_RAPIDJSON)
@@ -119,6 +120,12 @@ elseif(ENABLE_LCAO AND NOT ENABLE_MPI)
119120
set(ABACUS_BIN_NAME abacus_serial)
120121
endif()
121122

123+
if (USE_DSP)
124+
set(USE_ELPA OFF)
125+
set(ENABLE_LCAO OFF)
126+
set(ABACUS_BIN_NAME abacus_dsp)
127+
endif()
128+
122129
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
123130

124131
if(ENABLE_COVERAGE)
@@ -240,6 +247,11 @@ if(ENABLE_MPI)
240247
list(APPEND math_libs MPI::MPI_CXX)
241248
endif()
242249

250+
if (USE_DSP)
251+
target_link_libraries(${ABACUS_BIN_NAME} ${DIR_MTBLAS_LIBRARY})
252+
add_compile_definitions(__DSP)
253+
endif()
254+
243255
find_package(Threads REQUIRED)
244256
target_link_libraries(${ABACUS_BIN_NAME} Threads::Threads)
245257

python/pyabacus/CMakeLists.txt

Lines changed: 14 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
cmake_minimum_required(VERSION 3.15...3.26)
22

3+
# project settings
34
project(
45
${SKBUILD_PROJECT_NAME}
56
VERSION ${SKBUILD_PROJECT_VERSION}
67
LANGUAGES CXX)
78

9+
# find python and pybind11
810
find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
911
find_package(pybind11 CONFIG REQUIRED)
1012

13+
# set source path
1114
set(ABACUS_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../source")
1215
set(BASE_PATH "${ABACUS_SOURCE_DIR}/module_base")
1316
set(NAO_PATH "${ABACUS_SOURCE_DIR}/module_basis/module_nao")
1417
set(HSOLVER_PATH "${ABACUS_SOURCE_DIR}/module_hsolver")
15-
set(HAMILT_PATH "${ABACUS_SOURCE_DIR}/module_hamilt_general")
1618
set(PSI_PATH "${ABACUS_SOURCE_DIR}/module_psi")
1719
set(ENABLE_LCAO ON)
1820
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../../cmake")
@@ -63,11 +65,14 @@ else()
6365
endif()
6466
endif()
6567

66-
include_directories(${BASE_PATH}
68+
# add include directories
69+
include_directories(
70+
${BASE_PATH}
6771
${ABACUS_SOURCE_DIR}
68-
${ABACUS_SOURCE_DIR}/module_base/module_container)
72+
${ABACUS_SOURCE_DIR}/module_base/module_container
73+
)
6974

70-
# add library
75+
# add basic libraries
7176
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
7277
# add base
7378
set(BASE_BINARY_DIR "${PROJECT_SOURCE_DIR}/build/base")
@@ -80,83 +85,6 @@ set(ORB_BINARY_DIR "${PROJECT_SOURCE_DIR}/build/orb")
8085
add_subdirectory(${ABACUS_SOURCE_DIR}/module_basis/module_ao ${ORB_BINARY_DIR})
8186
# set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
8287

83-
# add nao shared library
84-
list(APPEND _naos
85-
${NAO_PATH}/atomic_radials.cpp
86-
${NAO_PATH}/beta_radials.cpp
87-
${NAO_PATH}/hydrogen_radials.cpp
88-
${NAO_PATH}/numerical_radial.cpp
89-
${NAO_PATH}/pswfc_radials.cpp
90-
${NAO_PATH}/radial_collection.cpp
91-
${NAO_PATH}/radial_set.cpp
92-
${NAO_PATH}/real_gaunt_table.cpp
93-
${NAO_PATH}/sphbes_radials.cpp
94-
${NAO_PATH}/two_center_bundle.cpp
95-
${NAO_PATH}/two_center_integrator.cpp
96-
${NAO_PATH}/two_center_table.cpp
97-
${NAO_PATH}/projgen.cpp
98-
# dependency
99-
${ABACUS_SOURCE_DIR}/module_base/kernels/math_op.cpp
100-
# ${ABACUS_SOURCE_DIR}/module_psi/kernels/psi_memory_op.cpp
101-
${ABACUS_SOURCE_DIR}/module_base/module_device/memory_op.cpp
102-
)
103-
add_library(naopack SHARED
104-
${_naos}
105-
)
106-
# add diago shared library
107-
list(APPEND _diago
108-
${HSOLVER_PATH}/diago_dav_subspace.cpp
109-
${HSOLVER_PATH}/diago_david.cpp
110-
${HSOLVER_PATH}/diag_const_nums.cpp
111-
${HSOLVER_PATH}/diago_iter_assist.cpp
112-
113-
${HSOLVER_PATH}/kernels/dngvd_op.cpp
114-
${HSOLVER_PATH}/kernels/math_kernel_op.cpp
115-
# dependency
116-
${BASE_PATH}/module_device/device.cpp
117-
${BASE_PATH}/module_device/memory_op.cpp
118-
119-
${HAMILT_PATH}/operator.cpp
120-
${PSI_PATH}/psi.cpp
121-
)
122-
add_library(diagopack SHARED
123-
${_diago}
124-
)
125-
target_link_libraries(diagopack
126-
PRIVATE
127-
${OpenBLAS_LIBRARIES}
128-
${LAPACK_LIBRARIES}
129-
)
130-
# link math_libs
131-
if(MKLROOT)
132-
target_link_libraries(naopack
133-
base
134-
parameter
135-
container
136-
orb
137-
${math_libs}
138-
MPI::MPI_CXX
139-
OpenMP::OpenMP_CXX
140-
)
141-
else()
142-
target_link_libraries(naopack
143-
base
144-
parameter
145-
container
146-
orb
147-
${math_libs}
148-
)
149-
endif()
150-
# list(APPEND _sources ${_naos} ${_bases})
151-
list(APPEND _sources
152-
${PROJECT_SOURCE_DIR}/src/py_abacus.cpp
153-
${PROJECT_SOURCE_DIR}/src/py_base_math.cpp
154-
${PROJECT_SOURCE_DIR}/src/py_m_nao.cpp
155-
${PROJECT_SOURCE_DIR}/src/py_hsolver.cpp
156-
)
157-
pybind11_add_module(_core MODULE ${_sources})
158-
target_link_libraries(_core PRIVATE pybind11::headers naopack diagopack)
159-
target_compile_definitions(_core PRIVATE VERSION_INFO=${PROJECT_VERSION})
16088
# set RPATH
16189
execute_process(
16290
COMMAND "${PYTHON_EXECUTABLE}" -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
@@ -167,9 +95,9 @@ execute_process(
16795
# set package name to pyabacus
16896
set(TARGET_PACK pyabacus)
16997
set(CMAKE_INSTALL_RPATH "${PYTHON_SITE_PACKAGES}/${TARGET_PACK}")
170-
set_target_properties(_core PROPERTIES INSTALL_RPATH "$ORIGIN")
171-
set_target_properties(naopack PROPERTIES INSTALL_RPATH "$ORIGIN")
172-
set_target_properties(diagopack PROPERTIES INSTALL_RPATH "$ORIGIN")
173-
install(TARGETS _core naopack DESTINATION ${TARGET_PACK})
174-
install(TARGETS _core diagopack DESTINATION ${TARGET_PACK})
98+
99+
# add subdirectories for submodules
100+
add_subdirectory(${PROJECT_SOURCE_DIR}/src/hsolver)
101+
add_subdirectory(${PROJECT_SOURCE_DIR}/src/ModuleBase)
102+
add_subdirectory(${PROJECT_SOURCE_DIR}/src/ModuleNAO)
175103

0 commit comments

Comments
 (0)