Skip to content

Commit de125a5

Browse files
committed
Make pretty (docs/, cmake/, toolchain/)
1 parent 8c0fd4f commit de125a5

88 files changed

Lines changed: 6829 additions & 3980 deletions

Some content is hidden

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

CMakeLists.txt

Lines changed: 86 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ option(USE_ABACUS_LIBM "Build libmath from source to speed up" OFF)
2323
option(ENABLE_LIBXC "Enable using the LibXC package" OFF)
2424
option(ENABLE_FLOAT_FFTW "Enable using single-precision FFTW library." OFF)
2525

26-
# option(ENABLE_DEEPKS "Enable the DeePKS algorithm" OFF)
27-
# option(ENABLE_MLKEDF "Enable the Machine-Learning-based KEDF for OFDFT" OFF)
26+
# option(ENABLE_DEEPKS "Enable the DeePKS algorithm" OFF) option(ENABLE_MLKEDF
27+
# "Enable the Machine-Learning-based KEDF for OFDFT" OFF)
2828

2929
option(ENABLE_MLALGO "Enable the machine learning algorithms" OFF)
3030

@@ -51,7 +51,8 @@ option(ENABLE_GOOGLEBENCH "Enable GOOGLE-benchmark usage" OFF)
5151
option(ENABLE_RAPIDJSON "Enable rapid-json usage" OFF)
5252
option(ENABLE_CNPY "Enable cnpy usage" OFF)
5353
option(ENABLE_CUSOLVERMP "Enable cusolvermp" OFF)
54-
option(ENABLE_NCCL_PARALLEL_DEVICE "Enable NCCL-backed collectives in parallel_device" OFF)
54+
option(ENABLE_NCCL_PARALLEL_DEVICE
55+
"Enable NCCL-backed collectives in parallel_device" OFF)
5556

5657
if(NOT DEFINED NVHPC_ROOT_DIR AND DEFINED ENV{NVHPC_ROOT})
5758
set(NVHPC_ROOT_DIR
@@ -70,8 +71,7 @@ if(ENABLE_RAPIDJSON)
7071
include(FetchContent)
7172
FetchContent_Declare(
7273
rapidjson
73-
URL https://codeload.github.com/Tencent/rapidjson/tar.gz/24b5e7a
74-
)
74+
URL https://codeload.github.com/Tencent/rapidjson/tar.gz/24b5e7a)
7575
set(RAPIDJSON_BUILD_TESTS
7676
OFF
7777
CACHE INTERNAL "")
@@ -145,7 +145,7 @@ if(ENABLE_LCAO)
145145
set(ABACUS_BIN_NAME abacus_max_gpu)
146146
endif()
147147
endif()
148-
# Case: CPU is enabled (suffix with 'p' for parallel)
148+
# Case: CPU is enabled (suffix with 'p' for parallel)
149149
else()
150150
if(ENABLE_MPI)
151151
if(NOT ENABLE_LIBRI AND NOT ENABLE_MLALGO)
@@ -169,7 +169,7 @@ if(ENABLE_LCAO)
169169
endif()
170170
endif()
171171
endif()
172-
# Case : PW only
172+
# Case : PW only
173173
else()
174174
if(USE_CUDA)
175175
if(ENABLE_MPI)
@@ -184,18 +184,17 @@ else()
184184
endif()
185185
endif()
186186

187-
188187
# Use DSP hardware
189-
if (USE_DSP)
188+
if(USE_DSP)
190189
set(USE_ELPA OFF)
191190
set(ABACUS_BIN_NAME abacus_dsp)
192191
endif()
193192

194-
if (USE_CUDA_ON_DCU)
193+
if(USE_CUDA_ON_DCU)
195194
add_compile_definitions(__CUDA_ON_DCU)
196195
endif()
197196

198-
if (USE_CUDA_MPI)
197+
if(USE_CUDA_MPI)
199198
add_compile_definitions(__CUDA_MPI)
200199
endif()
201200

@@ -210,11 +209,11 @@ if(ENABLE_COVERAGE)
210209
GIT_REPOSITORY https://github.com/RWTH-HPC/CMake-codecov.git
211210
GIT_TAG master
212211
GIT_SHALLOW TRUE
213-
GIT_PROGRESS TRUE
214-
)
212+
GIT_PROGRESS TRUE)
215213
FetchContent_Populate(cmakecodecov)
216214
list(APPEND CMAKE_MODULE_PATH ${cmakecodecov_SOURCE_DIR}/cmake)
217-
set(CMAKE_MODULE_PATH "${cmakecodecov_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
215+
set(CMAKE_MODULE_PATH "${cmakecodecov_SOURCE_DIR}/cmake"
216+
${CMAKE_MODULE_PATH})
218217
find_package(codecov REQUIRED)
219218
endif()
220219
endif()
@@ -235,7 +234,6 @@ if(ENABLE_COVERAGE)
235234
add_coverage(${ABACUS_BIN_NAME})
236235
endif()
237236

238-
239237
macro(set_if_higher VARIABLE VALUE)
240238
if(${VARIABLE} LESS ${VALUE})
241239
set(${VARIABLE} ${VALUE})
@@ -275,9 +273,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES Intel)
275273
# stick to strict floating point model on Intel Compiler
276274
add_compile_options(-fp-model=strict)
277275
set(USE_ABACUS_LIBM OFF) # Force turn off USE_ABACUS_LIBM on Intel Compiler
278-
set(CMAKE_CXX_FLAGS
279-
"${CMAKE_CXX_FLAGS} -Wno-write-strings "
280-
)
276+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-write-strings ")
281277
endif()
282278

283279
if(USE_ABACUS_LIBM)
@@ -306,7 +302,9 @@ if(ENABLE_LCAO)
306302

307303
if(ENABLE_PEXSI)
308304
find_package(PEXSI REQUIRED)
309-
target_link_libraries(${ABACUS_BIN_NAME} ${PEXSI_LIBRARY} ${SuperLU_DIST_LIBRARY} ${ParMETIS_LIBRARY} ${METIS_LIBRARY} pexsi)
305+
target_link_libraries(
306+
${ABACUS_BIN_NAME} ${PEXSI_LIBRARY} ${SuperLU_DIST_LIBRARY}
307+
${ParMETIS_LIBRARY} ${METIS_LIBRARY} pexsi)
310308
include_directories(${PEXSI_INCLUDE_DIR} ${ParMETIS_INCLUDE_DIR})
311309
add_compile_definitions(__PEXSI)
312310
set(CMAKE_CXX_STANDARD 14)
@@ -321,23 +319,27 @@ if(DEBUG_INFO)
321319
endif()
322320

323321
if(ENABLE_MPI)
324-
find_package(MPI COMPONENTS CXX REQUIRED)
322+
find_package(
323+
MPI
324+
COMPONENTS CXX
325+
REQUIRED)
325326
include_directories(${MPI_CXX_INCLUDE_PATH})
326327
target_link_libraries(${ABACUS_BIN_NAME} MPI::MPI_CXX)
327328
add_compile_definitions(__MPI)
328329
list(APPEND math_libs MPI::MPI_CXX)
329330
endif()
330331

331-
332-
if (USE_DSP)
332+
if(USE_DSP)
333333
add_compile_definitions(__DSP)
334334
target_link_libraries(${ABACUS_BIN_NAME} ${OMPI_LIBRARY1})
335335
include_directories(${MTBLAS_FFT_DIR}/libmtblas/include)
336336
include_directories(${MT_HOST_DIR}/include)
337-
target_link_libraries(${ABACUS_BIN_NAME} ${MT_HOST_DIR}/hthreads/lib/libhthread_device.a)
338-
target_link_libraries(${ABACUS_BIN_NAME} ${MT_HOST_DIR}/hthreads/lib/libhthread_host.a)
337+
target_link_libraries(${ABACUS_BIN_NAME}
338+
${MT_HOST_DIR}/hthreads/lib/libhthread_device.a)
339+
target_link_libraries(${ABACUS_BIN_NAME}
340+
${MT_HOST_DIR}/hthreads/lib/libhthread_host.a)
339341
endif()
340-
if (USE_SW)
342+
if(USE_SW)
341343
add_compile_definitions(__SW)
342344
set(SW ON)
343345
include_directories(${SW_MATH}/include)
@@ -374,21 +376,22 @@ if(CMAKE_CUDA_COMPILER)
374376
endif()
375377
else() # CUDA not found
376378
if(USE_CUDA)
377-
message(
378-
FATAL_ERROR
379-
"USE_CUDA is set but no CUDA components found.")
379+
message(FATAL_ERROR "USE_CUDA is set but no CUDA components found.")
380380
endif()
381381
endif()
382382

383383
if(USE_CUDA)
384384
cmake_minimum_required(VERSION 3.18) # required by `CUDA_ARCHITECTURES` below
385-
385+
386386
# Always find CUDAToolkit to get CUDAToolkit_VERSION
387387
find_package(CUDAToolkit REQUIRED)
388-
388+
389389
set_if_higher(CMAKE_CXX_STANDARD 14)
390390
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "13.0")
391-
message(STATUS "CUDA ${CUDAToolkit_VERSION} detected. Setting CMAKE_CUDA_STANDARD to 17.")
391+
message(
392+
STATUS
393+
"CUDA ${CUDAToolkit_VERSION} detected. Setting CMAKE_CUDA_STANDARD to 17."
394+
)
392395
set_if_higher(CMAKE_CXX_STANDARD 17)
393396
endif()
394397
set(CMAKE_CXX_EXTENSIONS ON)
@@ -399,21 +402,20 @@ if(USE_CUDA)
399402
# check
400403
# https://gitlab.kitware.com/cmake/cmake/-/blob/master/Modules/Internal/CMakeCUDAArchitecturesAll.cmake
401404
# for available architectures in different CUDA versions
402-
405+
403406
# CUDA 13.0+ dropped support for architectures below 75
404407
if(CUDAToolkit_VERSION VERSION_LESS "13.0")
405-
set(CMAKE_CUDA_ARCHITECTURES
406-
60 # P100
407-
70 # V100
408+
set(CMAKE_CUDA_ARCHITECTURES 60 # P100
409+
70 # V100
408410
)
409411
else()
410412
# Start with empty list; architectures 75+ will be added below
411413
set(CMAKE_CUDA_ARCHITECTURES)
412414
endif()
413-
414-
# Add your CUDA arch here Check the Compute Capability version of your
415-
# GPU at: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
416-
415+
416+
# Add your CUDA arch here Check the Compute Capability version of your GPU
417+
# at: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
418+
417419
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.0)
418420
list(APPEND CMAKE_CUDA_ARCHITECTURES 75) # T4
419421
endif()
@@ -429,13 +431,13 @@ if(USE_CUDA)
429431
endif()
430432
enable_language(CUDA)
431433
# ${ABACUS_BIN_NAME} is added before CUDA is enabled
432-
set_property(TARGET ${ABACUS_BIN_NAME}
433-
PROPERTY CUDA_ARCHITECTURES ${CMAKE_CUDA_ARCHITECTURES})
434-
if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL 12.9)
434+
set_property(TARGET ${ABACUS_BIN_NAME} PROPERTY CUDA_ARCHITECTURES
435+
${CMAKE_CUDA_ARCHITECTURES})
436+
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 12.9)
435437
target_link_libraries(${ABACUS_BIN_NAME} cudart)
436-
else ()
438+
else()
437439
target_link_libraries(${ABACUS_BIN_NAME} cudart nvToolsExt)
438-
endif ()
440+
endif()
439441
include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
440442
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 13.0)
441443
if(EXISTS "${CUDAToolkit_ROOT}/include/cccl")
@@ -446,40 +448,46 @@ if(USE_CUDA)
446448
add_compile_definitions(__CUDA)
447449
add_compile_definitions(__UT_USE_CUDA)
448450
target_compile_definitions(${ABACUS_BIN_NAME} PRIVATE __USE_NVTX)
449-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
450-
set(CMAKE_CUDA_FLAGS_DEBUG "${CMAKE_CUDA_FLAGS_DEBUG} -g -G" CACHE STRING "CUDA flags for debug build" FORCE)
451+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
452+
set(CMAKE_CUDA_FLAGS_DEBUG
453+
"${CMAKE_CUDA_FLAGS_DEBUG} -g -G"
454+
CACHE STRING "CUDA flags for debug build" FORCE)
451455
endif()
452-
if (USE_OPENMP AND OpenMP_CXX_FOUND)
453-
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=${OpenMP_CXX_FLAGS}" CACHE STRING "CUDA flags" FORCE)
456+
if(USE_OPENMP AND OpenMP_CXX_FOUND)
457+
set(CMAKE_CUDA_FLAGS
458+
"${CMAKE_CUDA_FLAGS} -Xcompiler=${OpenMP_CXX_FLAGS}"
459+
CACHE STRING "CUDA flags" FORCE)
454460
endif()
455-
if (ENABLE_NCCL_PARALLEL_DEVICE)
456-
if (NOT ENABLE_MPI)
457-
message(FATAL_ERROR
458-
"ENABLE_NCCL_PARALLEL_DEVICE requires ENABLE_MPI=ON.")
461+
if(ENABLE_NCCL_PARALLEL_DEVICE)
462+
if(NOT ENABLE_MPI)
463+
message(
464+
FATAL_ERROR "ENABLE_NCCL_PARALLEL_DEVICE requires ENABLE_MPI=ON.")
459465
endif()
460466
add_compile_definitions(__NCCL_PARALLEL_DEVICE)
461467
include(cmake/SetupNccl.cmake)
462468
abacus_setup_nccl(${ABACUS_BIN_NAME})
463469
endif()
464-
if (ENABLE_CUSOLVERMP)
470+
if(ENABLE_CUSOLVERMP)
465471
# Keep cuSOLVERMp discovery/linking logic in a dedicated module.
466472
include(cmake/SetupCuSolverMp.cmake)
467473
abacus_setup_cusolvermp(${ABACUS_BIN_NAME})
468474
endif()
469-
if (ENABLE_CUBLASMP)
475+
if(ENABLE_CUBLASMP)
470476
# Enforcement 1: cuBLASMp requires cuSOLVERMp to be enabled
471-
if (NOT ENABLE_CUSOLVERMP)
472-
message(FATAL_ERROR
473-
"ENABLE_CUBLASMP is set to ON, but ENABLE_CUSOLVERMP is OFF."
474-
"In ABACUS, cuBLASMp support requires cuSOLVERMp to be enabled simultaneously."
475-
"Please set -DENABLE_CUSOLVERMP=ON.")
477+
if(NOT ENABLE_CUSOLVERMP)
478+
message(
479+
FATAL_ERROR
480+
"ENABLE_CUBLASMP is set to ON, but ENABLE_CUSOLVERMP is OFF."
481+
"In ABACUS, cuBLASMp support requires cuSOLVERMp to be enabled simultaneously."
482+
"Please set -DENABLE_CUSOLVERMP=ON.")
476483
endif()
477-
# Enforcement 2: cuBLASMp 0.8.0+ is incompatible with CAL backend
478-
# Note: _use_cal is defined inside abacus_setup_cusolvermp
479-
if (_use_cal)
480-
message(FATAL_ERROR
481-
"cuBLASMp 0.8.0+ requires NCCL Symmetric Memory, but cuSOLVERMp is using CAL backend."
482-
"Please upgrade cuSOLVERMp to >= 0.7.0 to use NCCL for both.")
484+
# Enforcement 2: cuBLASMp 0.8.0+ is incompatible with CAL backend Note:
485+
# _use_cal is defined inside abacus_setup_cusolvermp
486+
if(_use_cal)
487+
message(
488+
FATAL_ERROR
489+
"cuBLASMp 0.8.0+ requires NCCL Symmetric Memory, but cuSOLVERMp is using CAL backend."
490+
"Please upgrade cuSOLVERMp to >= 0.7.0 to use NCCL for both.")
483491
endif()
484492
include(cmake/SetupCuBlasMp.cmake)
485493
abacus_setup_cublasmp(${ABACUS_BIN_NAME})
@@ -609,8 +617,8 @@ if(ENABLE_MLALGO)
609617
add_compile_definitions(__MLALGO)
610618
endif()
611619

612-
# Torch uses outdated components to detect CUDA arch, causing failure on
613-
# latest CUDA kits. Set CMake variable TORCH_CUDA_ARCH_LIST in the form of
620+
# Torch uses outdated components to detect CUDA arch, causing failure on latest
621+
# CUDA kits. Set CMake variable TORCH_CUDA_ARCH_LIST in the form of
614622
# "major.minor" if required.
615623
if(ENABLE_MLALGO OR DEFINED Torch_DIR)
616624
find_package(Torch REQUIRED)
@@ -628,18 +636,14 @@ if(ENABLE_MLALGO OR DEFINED Torch_DIR)
628636
add_compile_options(${TORCH_CXX_FLAGS})
629637
endif()
630638

631-
if (ENABLE_CNPY)
632-
find_path(cnpy_SOURCE_DIR
633-
cnpy.h
634-
HINTS ${libnpy_INCLUDE_DIR}
635-
)
639+
if(ENABLE_CNPY)
640+
find_path(cnpy_SOURCE_DIR cnpy.h HINTS ${libnpy_INCLUDE_DIR})
636641
if(NOT cnpy_SOURCE_DIR)
637642
include(FetchContent)
638643
FetchContent_Declare(
639644
cnpy
640645
GIT_REPOSITORY https://github.com/rogersce/cnpy.git
641-
GIT_PROGRESS TRUE
642-
)
646+
GIT_PROGRESS TRUE)
643647
FetchContent_MakeAvailable(cnpy)
644648
else()
645649
include_directories(${cnpy_INCLUDE_DIR})
@@ -681,6 +685,7 @@ endif()
681685
if(ENABLE_LIBRI)
682686
set_if_higher(CMAKE_CXX_STANDARD 14)
683687
if(LIBRI_DIR)
688+
684689
else()
685690
find_package(LibRI REQUIRED)
686691
endif()
@@ -695,13 +700,13 @@ if(ENABLE_LIBRI OR DEFINED LIBCOMM_DIR)
695700
endif()
696701
if(ENABLE_LIBCOMM)
697702
if(LIBCOMM_DIR)
703+
698704
else()
699705
find_package(LibComm REQUIRED)
700706
endif()
701707
include_directories(${LIBCOMM_DIR}/include)
702708
endif()
703709

704-
705710
if(DEFINED Libxc_DIR)
706711
set(ENABLE_LIBXC ON)
707712
endif()
@@ -815,7 +820,7 @@ if(ENABLE_RAPIDJSON)
815820
target_link_libraries(${ABACUS_BIN_NAME} json_output)
816821
endif()
817822

818-
if (USE_SW)
823+
if(USE_SW)
819824
target_link_libraries(${ABACUS_BIN_NAME} ${SW_MATH}/libswfft.a)
820825
target_link_libraries(${ABACUS_BIN_NAME} ${SW_MATH}/libswscalapack.a)
821826
target_link_libraries(${ABACUS_BIN_NAME} ${SW_MATH}/libswlapack.a)
@@ -826,13 +831,14 @@ endif()
826831
list(APPEND math_libs m)
827832
target_link_libraries(${ABACUS_BIN_NAME} ${math_libs})
828833

829-
install(PROGRAMS ${ABACUS_BIN_PATH}
830-
TYPE BIN
831-
# DESTINATION ${CMAKE_INSTALL_BINDIR}
834+
install(PROGRAMS ${ABACUS_BIN_PATH} TYPE BIN # DESTINATION
835+
# ${CMAKE_INSTALL_BINDIR}
832836
)
833837

834838
# Create a symbolic link 'abacus' pointing to the actual executable
835-
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${ABACUS_BIN_NAME} ${CMAKE_INSTALL_PREFIX}/bin/abacus WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)")
839+
install(
840+
CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${ABACUS_BIN_NAME} ${CMAKE_INSTALL_PREFIX}/bin/abacus WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)"
841+
)
836842

837843
if(ENABLE_COVERAGE)
838844
coverage_evaluate()

0 commit comments

Comments
 (0)