Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase sycl-nliber2 into develop #3231

Closed
wants to merge 87 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
b986a13
SYCL Initial commit adding the ability to compile a sycl code
crtrott May 21, 2019
04f0640
SYCL: enable simple parallel for
crtrott May 21, 2019
3195afd
Partly fix multipl kernel calls
crtrott May 21, 2019
314d9d3
Use templated wrapping launch class
crtrott May 28, 2019
47a7cb2
SYCL Initial commit adding the ability to compile a sycl code
Aug 28, 2019
582edcf
SYCL Initial commit adding the ability to compile a sycl code
nliber Jan 11, 2020
4444c0d
WIP SyclHostUSMSpace (passes simple test)
nliber Jan 11, 2020
8e78cff
Revert change for printing out make variables
nliber Jan 11, 2020
e3f9cd3
SYCLHostUSMSpace now should pass Test02a
nliber Jan 29, 2020
e39897d
Added USM_memcpy for the deep_copy of SYCLHostUSMSpace views
nliber Mar 13, 2020
d58b6e8
deep_copy between HostSpace and SYCLHostUSMSpace
nliber Mar 13, 2020
8ee767c
Additions and fixes for SYCLDeviceUSMSpace and SYCLSharedUSMSpace
nliber Apr 22, 2020
6e994a3
Added SYCLDeviceUSMSpace and SYCLSharedUSMSpace
nliber May 5, 2020
c7ffa0f
Cleanup
nliber May 5, 2020
0375510
Initialize SYCL with the first GPU or accelerator
nliber May 5, 2020
2dfdbdc
Refactored so that can init with a specific device or the first GPU or
nliber May 5, 2020
92657e7
Kokkos::SYCL::SelectDevice now defaults to the first GPU device
nliber May 5, 2020
d49673f
Dump more device info out
nliber May 12, 2020
d038435
SYCL Initial commit adding the ability to compile a sycl code
nliber May 20, 2020
78e6d56
Restored SharedAllocationTracker constructor
nliber May 20, 2020
5df2b64
SYCL Initial commit adding the ability to compile a sycl code
nliber May 27, 2020
a4f52ac
SYCL Initial commit adding the ability to compile a sycl code
nliber Jun 2, 2020
c159276
In SYCL parallel_for, added wait() afterwards
nliber Jun 2, 2020
2b4acbc
Fix for deep_copy of Kokkos::View
nliber Jun 12, 2020
3ab25a1
Cleanup
nliber Jun 13, 2020
b9ce947
Reworked how SYCL initialization was done
nliber Jun 24, 2020
04b584c
Removed SYCL::SelectDevice
nliber Jun 24, 2020
f182d9e
Removed SYCLDevice
nliber Jun 24, 2020
9de66ad
Renamed SelectDevice2 to SYCLDevice
nliber Jun 26, 2020
4d6f80f
Changed passing sycl::device by value to by const reference
nliber Jun 26, 2020
1dcf97b
Have a serial version of SYCL ParallelReduce working
nliber Jun 30, 2020
2f804e4
First got parallel_reduce working under DPC++.
nliber Jul 7, 2020
8d1da18
Use reducer.combine() directly
nliber Jul 7, 2020
1221ad8
Some cleanup of reduce
nliber Jul 8, 2020
751e278
Added support in SYCL ParallelReduce for WorkTag
nliber Jul 9, 2020
dd04a43
Adding Kokkos_SYCL.cpp
nliber Jul 1, 2020
273c7b7
Cleanup of SYCL Parallel Reduce
nliber Jul 9, 2020
34e8df0
Fix compiling initial version of SYCL backend with CMake
masterleinad Jul 27, 2020
f8690ba
Merge pull request #3 from masterleinad/fix_sycl
nliber Jul 27, 2020
028ed75
Indentation Makefile
masterleinad Jul 28, 2020
d374e88
Indentation source files
masterleinad Jul 28, 2020
552c410
Merge remote-tracking branch 'upstream/develop' into rebase-sycl-nlib…
masterleinad Jul 28, 2020
dc765e0
Fix
masterleinad Jul 28, 2020
5de94eb
More indentation Makefile
masterleinad Jul 28, 2020
1a0413f
Add flags in CMake
masterleinad Jul 28, 2020
5412631
Fix compiler warnings
masterleinad Jul 28, 2020
e9e7db8
Fix print_configuration
masterleinad Jul 29, 2020
eef70d7
Use defaulted special member functions for View and ViewMapping
masterleinad Jul 29, 2020
3d4acfc
Use defaulted special member functions for View and ViewMapping
masterleinad Jul 29, 2020
139d55b
Don't enable tasks for HIP just yet
masterleinad Jul 30, 2020
0f0c44f
CLeaned up wrong guard around in_parallel and removed unneeded
nliber Jul 31, 2020
6c711cb
Added trivial check define to Kokkos_SYCL.hpp and call from Kernel La…
Aug 3, 2020
ee8844b
Merge pull request #4 from pvelesko/rebase_static_assert
nliber Aug 3, 2020
274afa9
Expanded on the isTriviallyCopyable checks
nliber Aug 3, 2020
f391338
Merge pull request #5 from nliber/triviallycopyablecheck
nliber Aug 3, 2020
e16a7ec
Add CPU CI for SYCL
masterleinad Aug 4, 2020
b2b8d83
Fix indentation
masterleinad Aug 4, 2020
186b9d3
Merge remote-tracking branch 'upstream/develop' into rebase-sycl-nlib…
masterleinad Aug 6, 2020
32ed264
Merge remote-tracking branch 'upstream/develop' into rebase-sycl-nlib…
masterleinad Aug 7, 2020
9f143d6
Merge remote-tracking branch 'upstream/develop' into develop
masterleinad Sep 10, 2020
25c5469
Merge remote-tracking branch 'upstream/develop' into rebase-sycl-nlib…
masterleinad Sep 21, 2020
cd20340
Disable performance tests for SYCL
masterleinad Sep 23, 2020
47e3b14
Rename struct ViewMapping to class
masterleinad Sep 23, 2020
af1a65f
C++14 compatibility
masterleinad Sep 23, 2020
ef2f3aa
Make ViewMapping trivially copyable
masterleinad Sep 23, 2020
ce86d48
Disable more tests for SYCL
masterleinad Sep 23, 2020
970a010
Handle string in ViewMapping
masterleinad Sep 23, 2020
11ac78e
Handle ViewTracker
masterleinad Sep 23, 2020
1e7a8f4
Only use one active SYCL memory space for now
masterleinad Sep 23, 2020
58465b9
Adapt output of ProfilingTestLibraryLoad
masterleinad Sep 23, 2020
c20a9d1
Disable tests that ask for a GPU in the SYCL CI
masterleinad Sep 23, 2020
88aa004
Lower FEATURE_LEVEL for SYCL to 4
masterleinad Sep 23, 2020
8fc70af
Fix Serial incremental test
masterleinad Sep 23, 2020
3522edc
Remove some debug comments
masterleinad Sep 25, 2020
7d13423
Merge remote-tracking branch 'upstream/develop' into sycl_newest
masterleinad Sep 25, 2020
31345ea
Call std::abort() in some more places
masterleinad Sep 29, 2020
f3a88c1
Address KOKKOS_ENABLE_PROFILING
masterleinad Sep 29, 2020
6355690
Abort on deep_copy
masterleinad Sep 29, 2020
ded3e56
Revert change to Kokkos_Core.cpp
masterleinad Sep 29, 2020
c9247bd
Added support for SYCL indirect kernel execution.
nliber Oct 5, 2020
145a9be
Merge pull request #7 from nliber/indirect-launch
nliber Oct 6, 2020
c4b0f6b
WIP: Replaced IndirectKernel from using a vector to a hand rolled
nliber Oct 7, 2020
0b0274a
For IndirectKernelMemory, changed from USM shared to USM device
nliber Oct 7, 2020
5708d9d
Optimization for USMObject::reserve() to free the buffer it is holding
nliber Oct 7, 2020
f41cb3f
Made USMObject default constructible (and moveable, as that
nliber Oct 8, 2020
0427232
Renamed USMObject to USMObjectMem
nliber Oct 8, 2020
c08e5b2
Merge pull request #8 from nliber/indirect-launch
nliber Oct 8, 2020
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
30 changes: 30 additions & 0 deletions .jenkins
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,36 @@ pipeline {

stage('Build') {
parallel {
stage('SYCL-OneAPI') {
agent {
dockerfile {
filename 'Dockerfile.sycl'
dir 'scripts/docker'
additionalBuildArgs '--pull --build-arg BASE=intel/oneapi-basekit:devel-ubuntu18.04'
label 'docker'
args '-v /tmp/ccache.kokkos:/tmp/ccache'
}
}
steps {
sh 'ccache --zero-stats'
sh '''rm -rf build && mkdir -p build && cd build && \
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER=clang++ \
-DKokkos_ENABLE_COMPILER_WARNINGS=OFF \
-DKokkos_ENABLE_TESTS=ON \
-DKokkos_ENABLE_SYCL=ON \
-DCMAKE_CXX_STANDARD=17 \
.. && \
make -j8 && ctest --output-on-failure'''
}
post {
always {
sh 'ccache --show-stats'
}
}
}
stage('HIP-ROCm-3.8-C++14') {
agent {
dockerfile {
Expand Down
45 changes: 44 additions & 1 deletion Makefile.kokkos
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ KOKKOS_VERSION_MINOR = 2
KOKKOS_VERSION_PATCH = 0
KOKKOS_VERSION = $(shell echo $(KOKKOS_VERSION_MAJOR)*10000+$(KOKKOS_VERSION_MINOR)*100+$(KOKKOS_VERSION_PATCH) | bc)

# Options: Cuda,HIP,OpenMP,Pthread,Serial
# Options: Cuda,HIP,OpenMP,Pthread,Serial,SYCL
#KOKKOS_DEVICES ?= "OpenMP"
KOKKOS_DEVICES ?= "Pthread"
# Options:
Expand Down Expand Up @@ -102,6 +102,7 @@ endif
# Check for other Execution Spaces.
KOKKOS_INTERNAL_USE_CUDA := $(call kokkos_has_string,$(KOKKOS_DEVICES),Cuda)
KOKKOS_INTERNAL_USE_HIP := $(call kokkos_has_string,$(KOKKOS_DEVICES),HIP)
KOKKOS_INTERNAL_USE_SYCL := $(call kokkos_has_string,$(KOKKOS_DEVICES),SYCL)
KOKKOS_INTERNAL_USE_OPENMPTARGET := $(call kokkos_has_string,$(KOKKOS_DEVICES),OpenMPTarget)

KOKKOS_DEVICELIST =
Expand All @@ -123,6 +124,9 @@ endif
ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
KOKKOS_DEVICELIST += HIP
endif
ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
KOKKOS_DEVICELIST += SYCL
endif
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
KOKKOS_DEVICELIST += OPENMPTARGET
KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER := $(shell expr $(KOKKOS_INTERNAL_ENABLE_CXX17) \
Expand Down Expand Up @@ -161,6 +165,8 @@ KOKKOS_INTERNAL_COMPILER_CLANG := $(call kokkos_has_string,$(KOKKOS_CXX_VE
KOKKOS_INTERNAL_COMPILER_APPLE_CLANG := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),Apple LLVM)
KOKKOS_INTERNAL_COMPILER_HCC := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),HCC)
KOKKOS_INTERNAL_COMPILER_GCC := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),GCC)
KOKKOS_INTERNAL_COMPILER_COMPUTEPP := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),Codeplay)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't have anything corresponding in the CMake configuration. Is this required?

KOKKOS_INTERNAL_COMPILER_DPCPP := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),DPC)

# Check Host Compiler if using NVCC through nvcc_wrapper
ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
Expand All @@ -174,6 +180,21 @@ ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
endif
endif

ifeq ($(KOKKOS_INTERNAL_COMPILER_COMPUTEPP), 1)
KOKKOS_INTERNAL_COMPUTEPP_PATH := $(shell which compute++)
ifeq ($(origin COMPUTEPP_PATH), undefined)
COMPUTEPP_PATH = $(KOKKOS_INTERNAL_COMPUTEPP_PATH:/bin/compute++=)
endif
ifeq ($(COMPUTEPP_PATH),)
COMPUTEPP_PATH = $(KOKKOS_INTERNAL_COMPUTEPP_PATH:/bin/compute++=)
endif
KOKKOS_INTERNAL_COMPILER_CLANG = 1
endif

ifeq ($(KOKKOS_INTERNAL_COMPILER_DPCPP), 1)
KOKKOS_INTERNAL_COMPILER_CLANG = 1
endif

ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 2)
KOKKOS_INTERNAL_COMPILER_CLANG = 1
endif
Expand Down Expand Up @@ -464,6 +485,10 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_HIP')
endif

ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_SYCL')
endif

ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_OPENMPTARGET')
ifeq ($(KOKKOS_INTERNAL_COMPILER_GCC), 1)
Expand Down Expand Up @@ -1244,6 +1269,24 @@ ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1)
KOKKOS_TPL_LIBRARY_NAMES += hpx
endif

# Add SYCL specific flags
ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/SYCL/*.cpp)
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/SYCL/*.hpp)
ifeq ($(KOKKOS_INTERNAL_COMPILER_COMPUTEPP), 1)
KOKKOS_CPPFLAGS += -I$(COMPUTEPP_PATH)/include
KOKKOS_CPPFLAGS += -I$(OPENCL_PATH)/include
KOKKOS_LDFLAGS += -L$(COMPUTEPP_PATH)/lib
KOKKOS_LIBS += -lComputeCpp -lOpenCL
endif

ifeq ($(KOKKOS_INTERNAL_COMPILER_DPCPP), 1)
KOKKOS_CPPFLAGS += -fsycl -fsycl-unnamed-lambda -DSYCL_JUST_DONT_NAME_KERNELS
KOKKOS_LDFLAGS += -fsycl
KOKKOS_LIBS += -lOpenCL -lsycl
endif
endif

# Explicitly set the GCC Toolchain for Clang.
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
KOKKOS_INTERNAL_GCC_PATH = $(shell which g++)
Expand Down
9 changes: 9 additions & 0 deletions Makefile.targets
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,15 @@ Kokkos_HIP_Locks.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Locks.cpp
endif

ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
Kokkos_SYCL.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL.cpp
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL.cpp
Kokkos_SYCL_Space.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Space.cpp
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Space.cpp
Kokkos_SYCL_Instance.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Instance.cpp
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Instance.cpp
endif
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far I haven't checked the Makefile system.


ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1)
Kokkos_ThreadsExec_base.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec_base.cpp
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec_base.cpp
Expand Down
57 changes: 57 additions & 0 deletions bin/sycl_cp_wrapper
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/bin/bash
FLAGS=""
dry_run=0
host_compiler=clang++

cpp_file=""

while [ $# -gt 0 ]
do
case $1 in
#show the executed command
--show)
dry_run=1
;;
--version)
compute++ --version
exit
;;
-ccbin)
shift
host_compiler=$1
;;
#Source files
*.cpp|*.cxx|*.cc|*.C|*.c++)
cpp_file="$1"
;;
#All other arguments
*)
FLAGS+=" $1"
;;
esac
shift
done

SYCLFLAGS="-sycl -intelspirmetadata -sycl-target spir64"

sycl_file_full=`echo ${cpp_file} | sed 's|\.cpp|\.sycl|g'`
sycl_file=`echo $(basename "${sycl_file_full%.*}")`.sycl

link=`echo ${#cpp_file}`

if [ ${dry_run} -eq 1 ]; then
if [ ${link} -eq 0 ]; then
echo "${host_compiler} ${FLAGS}"
else
echo "compute++ ${SYCLFLAGS} ${FLAGS} ${cpp_file}"
echo "${host_compiler} ${FLAGS} -include ${sycl_file} ${cpp_file}"
fi
else
if [ ${link} -eq 0 ]; then
${host_compiler} ${FLAGS}
else
compute++ ${SYCLFLAGS} ${FLAGS} ${cpp_file}
${host_compiler} ${FLAGS} -include ${sycl_file} ${cpp_file}
fi
fi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we still need/want this file?


1 change: 1 addition & 0 deletions cmake/KokkosCore_config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#cmakedefine KOKKOS_ENABLE_HPX
#cmakedefine KOKKOS_ENABLE_MEMKIND
#cmakedefine KOKKOS_ENABLE_LIBRT
#cmakedefine KOKKOS_ENABLE_SYCL

#ifndef __CUDA_ARCH__
#cmakedefine KOKKOS_ENABLE_TM
Expand Down
12 changes: 11 additions & 1 deletion cmake/kokkos_arch.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,16 @@ IF (Kokkos_ENABLE_HIP)
ENDIF()


IF (Kokkos_ENABLE_SYCL)
COMPILER_SPECIFIC_FLAGS(
DEFAULT -fsycl
)
COMPILER_SPECIFIC_OPTIONS(
DEFAULT -fsycl-unnamed-lambda
)
ENDIF()


SET(CUDA_ARCH_ALREADY_SPECIFIED "")
FUNCTION(CHECK_CUDA_ARCH ARCH FLAG)
IF(KOKKOS_ARCH_${ARCH})
Expand Down Expand Up @@ -486,7 +496,7 @@ ENDIF()
#Let's just always print things
MESSAGE(STATUS "Execution Spaces:")

FOREACH (_BACKEND CUDA OPENMPTARGET HIP)
FOREACH (_BACKEND CUDA OPENMPTARGET HIP SYCL)
IF(KOKKOS_ENABLE_${_BACKEND})
IF(_DEVICE_PARALLEL)
MESSAGE(FATAL_ERROR "Multiple device parallel execution spaces are not allowed! "
Expand Down
3 changes: 3 additions & 0 deletions cmake/kokkos_enable_devices.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -128,3 +128,6 @@ KOKKOS_DEVICE_OPTION(SERIAL ${SERIAL_DEFAULT} HOST "Whether to build serial back
KOKKOS_DEVICE_OPTION(HPX OFF HOST "Whether to build HPX backend (experimental)")

KOKKOS_DEVICE_OPTION(HIP OFF DEVICE "Whether to build HIP backend")

KOKKOS_DEVICE_OPTION(SYCL OFF DEVICE "Whether to build SYCL backend")

2 changes: 1 addition & 1 deletion containers/src/Kokkos_DynRankView.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1374,7 +1374,7 @@ struct DynRankSubviewTag {};
namespace Impl {

template <class SrcTraits, class... Args>
struct ViewMapping<
class ViewMapping<
typename std::enable_if<
(std::is_same<typename SrcTraits::specialize, void>::value &&
(std::is_same<typename SrcTraits::array_layout,
Expand Down
74 changes: 60 additions & 14 deletions core/perf_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,46 @@ IF(Kokkos_ENABLE_HIP)
)
ENDIF()

# FIXME_SYCL
IF(Kokkos_ENABLE_SYCL)
LIST(REMOVE_ITEM SOURCES
PerfTestGramSchmidt.cpp
PerfTestHexGrad.cpp
PerfTest_CustomReduction.cpp
PerfTest_ExecSpacePartitioning.cpp
PerfTest_ViewCopy_a123.cpp
PerfTest_ViewCopy_b123.cpp
PerfTest_ViewCopy_c123.cpp
PerfTest_ViewCopy_d123.cpp
PerfTest_ViewCopy_a45.cpp
PerfTest_ViewCopy_b45.cpp
PerfTest_ViewCopy_c45.cpp
PerfTest_ViewCopy_d45.cpp
PerfTest_ViewCopy_a6.cpp
PerfTest_ViewCopy_b6.cpp
PerfTest_ViewCopy_c6.cpp
PerfTest_ViewCopy_d6.cpp
PerfTest_ViewCopy_a7.cpp
PerfTest_ViewCopy_b7.cpp
PerfTest_ViewCopy_c7.cpp
PerfTest_ViewCopy_d7.cpp
PerfTest_ViewCopy_a8.cpp
PerfTest_ViewCopy_b8.cpp
PerfTest_ViewCopy_c8.cpp
PerfTest_ViewCopy_d8.cpp
PerfTest_ViewFill_123.cpp
PerfTest_ViewFill_45.cpp
PerfTest_ViewFill_6.cpp
PerfTest_ViewFill_7.cpp
PerfTest_ViewFill_8.cpp
PerfTest_ViewResize_123.cpp
PerfTest_ViewResize_45.cpp
PerfTest_ViewResize_6.cpp
PerfTest_ViewResize_7.cpp
PerfTest_ViewResize_8.cpp
)
ENDIF()

IF(Kokkos_ENABLE_OPENMPTARGET)
# FIXME OPENMPTARGET requires TeamPolicy Reductions and Custom Reduction
LIST(REMOVE_ITEM SOURCES
Expand Down Expand Up @@ -83,25 +123,31 @@ IF(NOT KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC")
)
ENDIF()

KOKKOS_ADD_EXECUTABLE_AND_TEST(
PerformanceTest_Atomic
SOURCES test_atomic.cpp
CATEGORIES PERFORMANCE
)

IF(NOT KOKKOS_ENABLE_CUDA OR KOKKOS_ENABLE_CUDA_LAMBDA)
# FIXME_SYCL
IF(NOT Kokkos_ENABLE_SYCL)
KOKKOS_ADD_EXECUTABLE_AND_TEST(
PerformanceTest_Atomic_MinMax
SOURCES test_atomic_minmax_simple.cpp
PerformanceTest_Atomic
SOURCES test_atomic.cpp
CATEGORIES PERFORMANCE
)
ENDIF()

KOKKOS_ADD_EXECUTABLE_AND_TEST(
PerformanceTest_Mempool
SOURCES test_mempool.cpp
CATEGORIES PERFORMANCE
)
# FIXME_SYCL
IF(NOT KOKKOS_ENABLE_SYCL)
IF(NOT KOKKOS_ENABLE_CUDA OR KOKKOS_ENABLE_CUDA_LAMBDA)
KOKKOS_ADD_EXECUTABLE_AND_TEST(
PerformanceTest_Atomic_MinMax
SOURCES test_atomic_minmax_simple.cpp
CATEGORIES PERFORMANCE
)
ENDIF()

KOKKOS_ADD_EXECUTABLE_AND_TEST(
PerformanceTest_Mempool
SOURCES test_mempool.cpp
CATEGORIES PERFORMANCE
)
ENDIF()

IF(NOT Kokkos_ENABLE_OPENMPTARGET)
# FIXME OPENMPTARGET needs tasking
Expand Down
5 changes: 5 additions & 0 deletions core/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ ELSE()
LIST(REMOVE_ITEM KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/Kokkos_Serial_task.cpp)
ENDIF()

IF (KOKKOS_ENABLE_SYCL)
APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/SYCL/*.cpp)
APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SYCL/*.hpp)
ENDIF()

KOKKOS_ADD_LIBRARY(
kokkoscore
SOURCES ${KOKKOS_CORE_SRCS}
Expand Down
8 changes: 8 additions & 0 deletions core/src/Kokkos_Atomic.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@

#define KOKKOS_ENABLE_HIP_ATOMICS

#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL_GPU)

//#define KOKKOS_ENABLE_SYCL_ATOMICS

#endif

#if !defined(KOKKOS_ENABLE_GNU_ATOMICS) && \
Expand Down Expand Up @@ -176,6 +180,10 @@ inline const char* atomic_query_version() {
#include <HIP/Kokkos_HIP_Atomic.hpp>
#endif

#if defined(KOKKOS_ENABLE_SYCL)
#include <SYCL/Kokkos_SYCL_Atomic.hpp>
#endif

#ifdef _WIN32
#include "impl/Kokkos_Atomic_Windows.hpp"
#endif
Expand Down
4 changes: 4 additions & 0 deletions core/src/Kokkos_Core.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@
#include <Kokkos_HIP.hpp>
#endif

#if defined(KOKKOS_ENABLE_SYCL)
#include <Kokkos_SYCL.hpp>
#endif

#include <Kokkos_AnonymousSpace.hpp>
#include <Kokkos_Pair.hpp>
#include <Kokkos_MemoryPool.hpp>
Expand Down
Loading