Skip to content

Commit 2e362ee

Browse files
phanimotamarriknikhil1995
authored andcommitted
Merged in syclMacroTesting (pull request #674)
SyclMacroTesting Approved-by: Phani Motamarri Approved-by: Sambit Das
2 parents 21ae715 + 3762638 commit 2e362ee

File tree

95 files changed

+8054
-6557
lines changed

Some content is hidden

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

95 files changed

+8054
-6557
lines changed

CMakeLists.txt

Lines changed: 58 additions & 0 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"
@@ -274,6 +276,26 @@ SET(DEVICE_SRC
274276
./utils/FEBasisOperationsKernelsInternalDevice.cc
275277
./src/atom/AtomicCenteredNonLocalOperatorKernelsDevice.cc
276278
)
279+
ELSEIF ("${GPU_LANG}" STREQUAL "sycl")
280+
SET(DEVICE_SRC
281+
./utils/MemoryTransferKernelsDevice.cc
282+
./utils/DeviceKernelsGeneric.cc
283+
./utils/DeviceDirectCCLWrapper.cc
284+
./src/dft/densityCalculatorDeviceKernels.cc
285+
./src/dft/densityFirstOrderResponseCalculatorDeviceKernels.cc
286+
./src/dft/solveVselfInBinsDeviceKernels.cc
287+
./src/dft/kineticEnergyDensityCalculatorDeviceKernels.cc
288+
./src/linAlg/linearAlgebraOperationsDeviceKernels.cc
289+
./src/force/forceWfcContractionsDeviceKernels.cc
290+
./utils/constraintMatrixInfoDeviceKernels.cc
291+
./utils/DeviceAPICalls.sycl.cc
292+
./utils/BLASWrapperDevice.cc
293+
./utils/MPICommunicatorP2PKernelsDevice.cc
294+
./src/solvers/linearSolverCGDeviceKernels.cc
295+
./utils/matrixFreeDeviceKernels.cc
296+
./utils/FEBasisOperationsKernelsInternalDevice.cc
297+
./src/atom/AtomicCenteredNonLocalOperatorKernelsDevice.cc
298+
)
277299

278300
ENDIF()
279301

@@ -288,6 +310,8 @@ IF (WITH_GPU)
288310
ELSEIF ("${GPU_VENDOR}" STREQUAL "nvidia")
289311
ADD_DEFINITIONS(-D__HIP_PLATFORM_NVIDIA__)
290312
ENDIF()
313+
ELSEIF ("${GPU_LANG}" STREQUAL "sycl")
314+
set_source_files_properties(${DEVICE_SRC} PROPERTIES COMPILE_FLAGS ${CMAKE_SYCL_FLAGS})
291315
ENDIF()
292316
ENDIF()
293317
IF (WITH_GPU)
@@ -353,6 +377,9 @@ ENDIF()
353377

354378
IF (USE_64BIT_INT)
355379
ADD_DEFINITIONS(-DDFTFE_WITH_64BIT_INT)
380+
IF ("${GPU_VENDOR}" STREQUAL "intel")
381+
add_compile_options("-fno-sycl-id-queries-fit-in-int")
382+
ENDIF()
356383
ENDIF()
357384

358385
#
@@ -379,6 +406,9 @@ IF (WITH_GPU)
379406
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_NVIDIA)
380407
ELSEIF ("${GPU_VENDOR}" STREQUAL "amd")
381408
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_AMD)
409+
ELSEIF ("${GPU_VENDOR}" STREQUAL "intel")
410+
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_INTEL)
411+
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_MKL)
382412
ENDIF()
383413

384414
IF ("${GPU_LANG}" STREQUAL "cuda")
@@ -393,6 +423,34 @@ IF (WITH_GPU)
393423
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_LANG_HIP)
394424
find_package(hipblas)
395425
target_link_libraries(${TARGETLIB} PUBLIC roc::hipblas)
426+
ELSEIF ("${GPU_LANG}" STREQUAL "sycl")
427+
MESSAGE(STATUS "DFTFE with GPU LANG SYCL")
428+
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_LANG_SYCL)
429+
find_program(MPI_BASE_CXX_COMPILER "icpx")
430+
get_filename_component(_REALPATH_SYCL_COMPILER "${MPI_BASE_CXX_COMPILER}" REALPATH)
431+
get_filename_component(SYCL_BIN_DIR "${_REALPATH_SYCL_COMPILER}" DIRECTORY)
432+
get_filename_component(SYCL_PACKAGE_DIR "${SYCL_BIN_DIR}" DIRECTORY CACHE)
433+
find_file(SYCL_INCLUDE_DIR
434+
NAMES
435+
include
436+
HINTS
437+
${SYCL_PACKAGE_DIR}
438+
NO_DEFAULT_PATH)
439+
target_include_directories(${TARGETLIB} PUBLIC ${SYCL_INCLUDE_DIR})
440+
target_include_directories(${TARGETLIB} PUBLIC ${SYCL_INCLUDE_DIR}/sycl)
441+
set(MKL_INTERFACE lp64)
442+
set(ENABLE_SCALAPACK ON)
443+
set(MKL_MPI mpich)
444+
find_PACKAGE(IntelSYCL REQUIRED)
445+
find_package(MKL REQUIRED)
446+
target_link_libraries(${TARGETLIB} PUBLIC MKL::MKL)
447+
get_target_property(MKL_SYCL_INCLUDE_DIRS MKL::MKL_SYCL INTERFACE_INCLUDE_DIRECTORIES)
448+
target_include_directories(${TARGETLIB} PUBLIC ${MKL_SYCL_INCLUDE_DIRS})
449+
get_target_property(mkl_sycl_includes MKL::MKL_SYCL INTERFACE_INCLUDE_DIRECTORIES)
450+
target_include_directories(${TARGETLIB} PUBLIC ${mkl_sycl_includes})
451+
get_target_property(mkl_sycl_libs MKL::MKL_SYCL INTERFACE_LINK_LIBRARIES)
452+
target_link_libraries(${TARGETLIB} PUBLIC ${mkl_sycl_libs})
453+
set_target_properties(${TARGETLIB} PROPERTIES LINK_FLAGS ${CMAKE_SYCL_FLAGS})
396454
ENDIF()
397455
IF (WITH_GPU_AWARE_MPI)
398456
ADD_DEFINITIONS(-DDFTFE_WITH_DEVICE_AWARE_MPI)

include/AtomicCenteredNonLocalOperatorKernelsDevice.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <DeviceAPICalls.h>
2424
#include <DeviceDataTypeOverloads.h>
2525
#include <DeviceTypeConfig.h>
26-
#include <DeviceKernelLauncherConstants.h>
26+
#include <DeviceKernelLauncherHelpers.h>
2727
#include <MemoryStorage.h>
2828
namespace dftfe
2929
{

0 commit comments

Comments
 (0)