Skip to content

Commit 8b6a920

Browse files
committed
Merge branch 'publicGithubDevelop' into release1.2
2 parents 31a2141 + 07ecb61 commit 8b6a920

File tree

231 files changed

+11700
-17704
lines changed

Some content is hidden

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

231 files changed

+11700
-17704
lines changed

CMakeLists.txt

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.17)
55
set(CMAKE_CXX_STANDARD 17
66
CACHE STRING "Minimum required C++ standard (default is 17)")
77
set(CMAKE_CXX_STANDARD_REQUIRED ON)
8+
set(CMAKE_CXX_EXTENSIONS OFF)
89
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
910
# Set the name of the project and target:
1011
SET(TARGET "dftfe_exe")
@@ -30,6 +31,7 @@ IF (WITH_GPU)
3031
enable_language(CUDA)
3132
ELSEIF ("${GPU_LANG}" STREQUAL "hip")
3233
enable_language(HIP)
34+
ELSEIF ("${GPU_LANG}" STREQUAL "sycl")
3335
ELSE ()
3436
MESSAGE(FATAL_ERROR "\n"
3537
"*** Could not find valid GPU_LANG=cuda/hip ***\n\n"
@@ -101,6 +103,7 @@ SET(TARGET_SRC
101103
./src/excManager/SlaterBasis.cpp
102104
./src/excManager/GaussianBasis.cpp
103105
./src/excManager/hubbardClass.cpp
106+
./src/excManager/exchangeCorrelationFunctionalEvaluatorCPU.cc
104107
./src/poisson/poissonSolverProblem.cc
105108
./src/poisson/MultiVectorPoissonLinearSolverProblem.cpp
106109
./src/helmholtz/kerkerSolverProblem.cc
@@ -180,7 +183,6 @@ SET(TARGET_SRC
180183
./src/dft/moveAtoms.cc
181184
./src/dft/moveMeshToAtoms.cc
182185
./src/dft/kerker.cc
183-
./src/dft/kineticEnergyDensityCalculator.cc
184186
./src/dft/pRefinedDoFHandler.cc
185187
./src/dft/psiInitialGuess.cc
186188
./src/dft/publicMethods.cc
@@ -242,7 +244,6 @@ SET(DEVICE_SRC
242244
./src/dft/densityCalculatorDeviceKernels.cc
243245
./src/dft/densityFirstOrderResponseCalculatorDeviceKernels.cc
244246
./src/dft/solveVselfInBinsDeviceKernels.cc
245-
./src/dft/kineticEnergyDensityCalculatorDeviceKernels.cc
246247
./src/linAlg/linearAlgebraOperationsDeviceKernels.cc
247248
./src/force/forceWfcContractionsDeviceKernels.cc
248249
./utils/constraintMatrixInfoDeviceKernels.cc
@@ -253,6 +254,9 @@ SET(DEVICE_SRC
253254
./utils/matrixFreeDeviceKernels.cc
254255
./utils/FEBasisOperationsKernelsInternalDevice.cc
255256
./src/atom/AtomicCenteredNonLocalOperatorKernelsDevice.cc
257+
./src/dftOperator/KohnShamHamiltonianOperatorDeviceKernels.cc
258+
./src/excManager/excManagerDeviceKernels.cc
259+
./src/excManager/exchangeCorrelationFunctionalEvaluatorDevice.cc
256260
)
257261
ELSEIF ("${GPU_LANG}" STREQUAL "hip")
258262
SET(DEVICE_SRC
@@ -262,7 +266,6 @@ SET(DEVICE_SRC
262266
./src/dft/densityCalculatorDeviceKernels.cc
263267
./src/dft/densityFirstOrderResponseCalculatorDeviceKernels.cc
264268
./src/dft/solveVselfInBinsDeviceKernels.cc
265-
./src/dft/kineticEnergyDensityCalculatorDeviceKernels.cc
266269
./src/linAlg/linearAlgebraOperationsDeviceKernels.cc
267270
./src/force/forceWfcContractionsDeviceKernels.cc
268271
./utils/constraintMatrixInfoDeviceKernels.cc
@@ -273,6 +276,31 @@ SET(DEVICE_SRC
273276
./utils/matrixFreeDeviceKernels.cc
274277
./utils/FEBasisOperationsKernelsInternalDevice.cc
275278
./src/atom/AtomicCenteredNonLocalOperatorKernelsDevice.cc
279+
./src/dftOperator/KohnShamHamiltonianOperatorDeviceKernels.cc
280+
./src/excManager/excManagerDeviceKernels.cc
281+
./src/excManager/exchangeCorrelationFunctionalEvaluatorDevice.cc
282+
)
283+
ELSEIF ("${GPU_LANG}" STREQUAL "sycl")
284+
SET(DEVICE_SRC
285+
./utils/MemoryTransferKernelsDevice.cc
286+
./utils/DeviceKernelsGeneric.cc
287+
./utils/DeviceDirectCCLWrapper.cc
288+
./src/dft/densityCalculatorDeviceKernels.cc
289+
./src/dft/densityFirstOrderResponseCalculatorDeviceKernels.cc
290+
./src/dft/solveVselfInBinsDeviceKernels.cc
291+
./src/linAlg/linearAlgebraOperationsDeviceKernels.cc
292+
./src/force/forceWfcContractionsDeviceKernels.cc
293+
./utils/constraintMatrixInfoDeviceKernels.cc
294+
./utils/DeviceAPICalls.sycl.cc
295+
./utils/BLASWrapperDevice.cc
296+
./utils/MPICommunicatorP2PKernelsDevice.cc
297+
./src/solvers/linearSolverCGDeviceKernels.cc
298+
./utils/matrixFreeDeviceKernels.cc
299+
./utils/FEBasisOperationsKernelsInternalDevice.cc
300+
./src/atom/AtomicCenteredNonLocalOperatorKernelsDevice.cc
301+
./src/dftOperator/KohnShamHamiltonianOperatorDeviceKernels.cc
302+
./src/excManager/excManagerDeviceKernels.cc
303+
./src/excManager/exchangeCorrelationFunctionalEvaluatorDevice.cc
276304
)
277305

278306
ENDIF()
@@ -288,6 +316,8 @@ IF (WITH_GPU)
288316
ELSEIF ("${GPU_VENDOR}" STREQUAL "nvidia")
289317
ADD_DEFINITIONS(-D__HIP_PLATFORM_NVIDIA__)
290318
ENDIF()
319+
ELSEIF ("${GPU_LANG}" STREQUAL "sycl")
320+
set_source_files_properties(${DEVICE_SRC} PROPERTIES COMPILE_FLAGS ${CMAKE_SYCL_FLAGS})
291321
ENDIF()
292322
ENDIF()
293323
IF (WITH_GPU)
@@ -353,6 +383,9 @@ ENDIF()
353383

354384
IF (USE_64BIT_INT)
355385
ADD_DEFINITIONS(-DDFTFE_WITH_64BIT_INT)
386+
IF ("${GPU_VENDOR}" STREQUAL "intel")
387+
add_compile_options("-fno-sycl-id-queries-fit-in-int")
388+
ENDIF()
356389
ENDIF()
357390

358391
#
@@ -379,6 +412,9 @@ IF (WITH_GPU)
379412
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_NVIDIA)
380413
ELSEIF ("${GPU_VENDOR}" STREQUAL "amd")
381414
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_AMD)
415+
ELSEIF ("${GPU_VENDOR}" STREQUAL "intel")
416+
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_INTEL)
417+
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_MKL)
382418
ENDIF()
383419

384420
IF ("${GPU_LANG}" STREQUAL "cuda")
@@ -393,6 +429,34 @@ IF (WITH_GPU)
393429
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_LANG_HIP)
394430
find_package(hipblas)
395431
target_link_libraries(${TARGETLIB} PUBLIC roc::hipblas)
432+
ELSEIF ("${GPU_LANG}" STREQUAL "sycl")
433+
MESSAGE(STATUS "DFTFE with GPU LANG SYCL")
434+
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_LANG_SYCL)
435+
find_program(MPI_BASE_CXX_COMPILER "icpx")
436+
get_filename_component(_REALPATH_SYCL_COMPILER "${MPI_BASE_CXX_COMPILER}" REALPATH)
437+
get_filename_component(SYCL_BIN_DIR "${_REALPATH_SYCL_COMPILER}" DIRECTORY)
438+
get_filename_component(SYCL_PACKAGE_DIR "${SYCL_BIN_DIR}" DIRECTORY CACHE)
439+
find_file(SYCL_INCLUDE_DIR
440+
NAMES
441+
include
442+
HINTS
443+
${SYCL_PACKAGE_DIR}
444+
NO_DEFAULT_PATH)
445+
target_include_directories(${TARGETLIB} PUBLIC ${SYCL_INCLUDE_DIR})
446+
target_include_directories(${TARGETLIB} PUBLIC ${SYCL_INCLUDE_DIR}/sycl)
447+
set(MKL_INTERFACE lp64)
448+
set(ENABLE_SCALAPACK ON)
449+
set(MKL_MPI mpich)
450+
find_PACKAGE(IntelSYCL REQUIRED)
451+
find_package(MKL REQUIRED)
452+
target_link_libraries(${TARGETLIB} PUBLIC MKL::MKL)
453+
get_target_property(MKL_SYCL_INCLUDE_DIRS MKL::MKL_SYCL INTERFACE_INCLUDE_DIRECTORIES)
454+
target_include_directories(${TARGETLIB} PUBLIC ${MKL_SYCL_INCLUDE_DIRS})
455+
get_target_property(mkl_sycl_includes MKL::MKL_SYCL INTERFACE_INCLUDE_DIRECTORIES)
456+
target_include_directories(${TARGETLIB} PUBLIC ${mkl_sycl_includes})
457+
get_target_property(mkl_sycl_libs MKL::MKL_SYCL INTERFACE_LINK_LIBRARIES)
458+
target_link_libraries(${TARGETLIB} PUBLIC ${mkl_sycl_libs})
459+
set_target_properties(${TARGETLIB} PROPERTIES LINK_FLAGS ${CMAKE_SYCL_FLAGS})
396460
ENDIF()
397461
IF (WITH_GPU_AWARE_MPI)
398462
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_AWARE_MPI)

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ Installation instructions
1212
-------------------------
1313

1414
DFT-FE code builds on top of the deal.II library for everything that has to do with finite elements, geometries, meshes, etc., and, through deal.II on p4est for parallel adaptive mesh handling.
15-
The steps to install the necessary dependencies and DFT-FE itself are described in the *Installation* section of the DFT-FE manual (compile doc/manual/manual.tex or download the release version manual [here](https://github.com/dftfeDevelopers/dftfe/blob/manual/manual-release1.2.pdf)).
15+
The steps to install the necessary dependencies and DFT-FE itself are described in the *Installation* section of the DFT-FE manual (download the release version manual [here](https://github.com/dftfeDevelopers/dftfe/blob/manual/manual-release.pdf)).
1616

1717
We have created several shell based installation scripts for the development version of DFT-FE (`publicGithubDevelop` branch) on various machines:
18-
- [OLCF Frontier](https://github.com/dftfeDevelopers/install_DFTFE/tree/frontierCurrentRelease)
19-
- [NERSC Perlmutter](https://github.com/dftfeDevelopers/install_DFTFE/tree/perlmutterCurrentRelease)
20-
- [UMICH Greatlakes](https://github.com/dftfeDevelopers/install_DFTFE/tree/greatlakesCurrentRelease)
18+
- [OLCF Frontier](https://github.com/dftfeDevelopers/install_DFTFE/tree/frontierRelease)
19+
- [NERSC Perlmutter](https://github.com/dftfeDevelopers/install_DFTFE/tree/perlmutterRelease)
20+
- [UMICH Greatlakes](https://github.com/dftfeDevelopers/install_DFTFE/tree/greatlakesRelease)
2121

2222

2323

2424
Running DFT-FE
2525
--------------
2626

27-
Instructions on how to run DFT-FE including demo examples can also be found in the *Running DFT-FE* section of the manual (compile doc/manual/manual.tex or download the release version manual [here](https://github.com/dftfeDevelopers/dftfe/blob/manual/manual-release1.2.pdf)). Beyond the demo examples in the manual, we also refer to our [benchmarks repository](https://github.com/dftfeDevelopers/dftfe-benchmarks) which contains several accuracy and performance benchmarks on a range of system sizes.
27+
Instructions on how to run DFT-FE including demo examples can also be found in the *Running DFT-FE* section of the manual (download the release version manual [here](https://github.com/dftfeDevelopers/dftfe/blob/manual/manual-release.pdf)). Beyond the demo examples in the manual, we also refer to our [benchmarks repository](https://github.com/dftfeDevelopers/dftfe-benchmarks) which contains several accuracy and performance benchmarks on a range of system sizes.
2828

2929

3030
Contributing to DFT-FE

authors

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ at the Indian Institute of Science.
1010
'DFT-FE authors' is an all encompassing list of contributors to the DFT-FE code.
1111

1212
DFT-FE code is currently maintained by a group of development leads/mentors and principal developers,
13-
who manage the architecture of the code and the core functionalities. Developers with significant contributions
14-
to core functionalities and code architecture in the past who are no longer active principal developers,
15-
are listed under principal developers emeriti. Finally, all contributors who have contributed to major parts
13+
who manage the architecture of the code and the core functionalities. Finally, all contributors who have contributed to major parts
1614
of the DFT-FE code or sent important fixes and enhancements are listed under contributors. All the underlying
1715
lists are in alphabetical order based on the last name.
1816

doc/manual/CoE-vert.png

-7.21 KB
Binary file not shown.

doc/manual/N2.png

-119 KB
Binary file not shown.

doc/manual/SiCTriplet0000.png

-105 KB
Binary file not shown.

doc/manual/background.tex

Lines changed: 0 additions & 18 deletions
This file was deleted.

doc/manual/contacts.tex

Lines changed: 0 additions & 20 deletions
This file was deleted.

doc/manual/contour_5x5x5.pdf

-64.5 KB
Binary file not shown.

doc/manual/futurePlans.tex

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)