From f0403d2b092115a6b0146cd030ff4a006520d3a9 Mon Sep 17 00:00:00 2001 From: Tom Lin Date: Mon, 3 Aug 2020 16:45:06 +0100 Subject: [PATCH 1/6] Add CXX support for hipSYCL, dpcpp, and ComputeCpp --- SYCL.make | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 5 deletions(-) diff --git a/SYCL.make b/SYCL.make index 3572681..4afc6a7 100644 --- a/SYCL.make +++ b/SYCL.make @@ -1,17 +1,86 @@ +ifndef COMPILER +define compiler_help +Set COMPILER to change flags (defaulting to GNU). +Available compilers are: + HIPSYCL, DPCPP, COMPUTECPP + -COMPUTECPP_FLAGS = $(shell $(COMPUTECPP_PACKAGE_ROOT_DIR)/bin/computecpp_info --dump-device-compiler-flags) + For HIPSYCL and COMPUTECPP, SYCL_SDK_DIR must be specified, the directory should contain [/lib, /bin, ...] + For DPCPP, the compiler must be on path +endef +$(info $(compiler_help)) +COMPILER=HIPSYCL +endif + +ifndef TARGET +define target_help +Set TARGET to change device (defaulting to CPU). +Available targets are: + CPU AMD NVIDIA + +endef +$(info $(target_help)) +TARGET=CPU +endif + + +ifndef ARCH +define arch_help +Set ARCH to change device (defaulting to ""). +(GPU *only*) Available targets for HIPSYCL are: + For CUDA, the architecture has the form sm_XX, e.g. sm_60 for Pascal. + For ROCm, the architecture has the form gfxYYY, e.g. gfx900 for Vega 10, gfx906 for Vega 20. + +endef + +ifneq ($(COMPILER), DPCPP) +$(info $(arch_help)) +ARCH= +endif + +endif + +SYCL_COMPUTECPP_FLAGS = $(shell $(SYCL_SDK_DIR)/bin/computecpp_info --dump-device-compiler-flags) +SYCL_COMPUTECPP_FLAGS_AMD = $(COMPUTECPP_FLAGS) +SYCL_COMPUTECPP_FLAGS_CPU = $(COMPUTECPP_FLAGS) +SYCL_COMPUTECPP_FLAGS_NVIDIA = $(COMPUTECPP_FLAGS) -sycl-target ptx64 +SYCL_COMPUTECPP_LINK_FLAGS = -L$(SYCL_SDK_DIR)/lib -lComputeCpp -lOpenCL -Wl,--rpath=$(SYCL_SDK_DIR)/lib/ +SYCL_COMPUTECPP_INCLUDE = -I$(SYCL_SDK_DIR)/include +SYCL_COMPUTECPP_SYCL_CXX = $(SYCL_SDK_DIR)/bin/compute++ +SYCL_COMPUTECPP_CXX_CXX = g++ + +SYCL_HIPSYCL_FLAGS_CPU = -O3 --hipsycl-platform=cpu +SYCL_HIPSYCL_FLAGS_AMD = -O3 --hipsycl-platform=rocm --hipsycl-gpu-arch=$(ARCH) +SYCL_HIPSYCL_FLAGS_NVIDIA = -O3 --hipsycl-platform=cuda --hipsycl-gpu-arch=$(ARCH) +SYCL_HIPSYCL_LINK_FLAGS = -L$(SYCL_SDK_DIR)/lib -Wl,-rpath,$(SYCL_SDK_DIR)/lib +SYCL_HIPSYCL_INCLUDE = +SYCL_HIPSYCL_SYCL_CXX = $(SYCL_SDK_DIR)/bin/syclcc +SYCL_HIPSYCL_CXX_CXX = $(SYCL_HIPSYCL_SYCL_CXX) + +SYCL_DPCPP_FLAGS_CPU = -O3 +SYCL_DPCPP_LINK_FLAGS = +SYCL_DPCPP_INCLUDE = +SYCL_DPCPP_SYCL_CXX = dpcpp +SYCL_DPCPP_CXX_CXX = dpcpp + + +SYCL_FLAGS = $(SYCL_$(COMPILER)_FLAGS_$(TARGET)) +SYCL_LINK_FLAGS = $(SYCL_$(COMPILER)_LINK_FLAGS) +SYCL_INCLUDE = $(SYCL_$(COMPILER)_INCLUDE) +SYCL_SYCL_CXX = $(SYCL_$(COMPILER)_SYCL_CXX) +SYCL_CXX_CXX = $(SYCL_$(COMPILER)_CXX_CXX) sycl-stream: main.o SYCLStream.o SYCLStream.sycl - $(CXX) -O3 -std=c++11 -DSYCL main.o SYCLStream.o $(EXTRA_FLAGS) -L$(COMPUTECPP_PACKAGE_ROOT_DIR)/lib -lComputeCpp -lOpenCL -Wl,--rpath=$(COMPUTECPP_PACKAGE_ROOT_DIR)/lib/ -o $@ + $(SYCL_CXX_CXX) -O3 -std=c++17 -DSYCL main.o SYCLStream.o $(EXTRA_FLAGS) $(SYCL_LINK_FLAGS) -o $@ main.o: main.cpp - $(CXX) -O3 -std=c++11 -DSYCL main.cpp -c -I$(COMPUTECPP_PACKAGE_ROOT_DIR)/include $(EXTRA_FLAGS) -o $@ + $(SYCL_CXX_CXX) -O3 -std=c++17 -DSYCL main.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ SYCLStream.o: SYCLStream.cpp SYCLStream.sycl - $(CXX) -O3 -std=c++11 -DSYCL SYCLStream.cpp -c -I$(COMPUTECPP_PACKAGE_ROOT_DIR)/include -include SYCLStream.sycl $(EXTRA_FLAGS) -o $@ + $(SYCL_CXX_CXX) -O3 -std=c++17 -DSYCL SYCLStream.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ SYCLStream.sycl: SYCLStream.cpp - $(COMPUTECPP_PACKAGE_ROOT_DIR)/bin/compute++ -DSYCL SYCLStream.cpp $(COMPUTECPP_FLAGS) -c -I$(COMPUTECPP_PACKAGE_ROOT_DIR)/include -o $@ + $(SYCL_SYCL_CXX) -DSYCL SYCLStream.cpp $(SYCL_FLAGS) -c $(SYCL_INCLUDE) -o $@ .PHONY: clean clean: From 09458ef8665da8d90adba3c2aeeabbc66ca588d5 Mon Sep 17 00:00:00 2001 From: Tom Lin Date: Mon, 3 Aug 2020 17:22:39 +0100 Subject: [PATCH 2/6] Fixed hipSYCL flag propagation --- SYCL.make | 50 +++++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/SYCL.make b/SYCL.make index 4afc6a7..d52c603 100644 --- a/SYCL.make +++ b/SYCL.make @@ -36,51 +36,59 @@ endef ifneq ($(COMPILER), DPCPP) $(info $(arch_help)) ARCH= + endif endif -SYCL_COMPUTECPP_FLAGS = $(shell $(SYCL_SDK_DIR)/bin/computecpp_info --dump-device-compiler-flags) -SYCL_COMPUTECPP_FLAGS_AMD = $(COMPUTECPP_FLAGS) -SYCL_COMPUTECPP_FLAGS_CPU = $(COMPUTECPP_FLAGS) -SYCL_COMPUTECPP_FLAGS_NVIDIA = $(COMPUTECPP_FLAGS) -sycl-target ptx64 +SYCL_COMPUTECPP_SYCLFLAGS = $(shell $(SYCL_SDK_DIR)/bin/computecpp_info --dump-device-compiler-flags) +SYCL_COMPUTECPP_SYCLFLAGS_AMD = $(COMPUTECPP_FLAGS) +SYCL_COMPUTECPP_SYCLFLAGS_CPU = $(COMPUTECPP_FLAGS) +SYCL_COMPUTECPP_SYCLFLAGS_NVIDIA = $(COMPUTECPP_FLAGS) -sycl-target ptx64 +SYCL_COMPUTECPP_SYCLCXX = $(SYCL_SDK_DIR)/bin/compute++ +SYCL_COMPUTECPP_FLAGS = -O3 --std=c++17 SYCL_COMPUTECPP_LINK_FLAGS = -L$(SYCL_SDK_DIR)/lib -lComputeCpp -lOpenCL -Wl,--rpath=$(SYCL_SDK_DIR)/lib/ SYCL_COMPUTECPP_INCLUDE = -I$(SYCL_SDK_DIR)/include -SYCL_COMPUTECPP_SYCL_CXX = $(SYCL_SDK_DIR)/bin/compute++ -SYCL_COMPUTECPP_CXX_CXX = g++ +SYCL_COMPUTECPP_CXX = g++ -SYCL_HIPSYCL_FLAGS_CPU = -O3 --hipsycl-platform=cpu -SYCL_HIPSYCL_FLAGS_AMD = -O3 --hipsycl-platform=rocm --hipsycl-gpu-arch=$(ARCH) -SYCL_HIPSYCL_FLAGS_NVIDIA = -O3 --hipsycl-platform=cuda --hipsycl-gpu-arch=$(ARCH) + +SYCL_HIPSYCL_SYCLFLAGS_CPU = -O3 --std=c++17 --hipsycl-platform=cpu +SYCL_HIPSYCL_SYCLFLAGS_AMD = -O3 --std=c++17 --hipsycl-platform=rocm --hipsycl-gpu-arch=$(ARCH) +SYCL_HIPSYCL_SYCLFLAGS_NVIDIA = -O3 --std=c++17 --hipsycl-platform=cuda --hipsycl-gpu-arch=$(ARCH) +SYCL_HIPSYCL_SYCLCXX = $(SYCL_SDK_DIR)/bin/syclcc +SYCL_HIPSYCL_FLAGS = $(SYCL_HIPSYCL_SYCLFLAGS_$(TARGET)) SYCL_HIPSYCL_LINK_FLAGS = -L$(SYCL_SDK_DIR)/lib -Wl,-rpath,$(SYCL_SDK_DIR)/lib SYCL_HIPSYCL_INCLUDE = -SYCL_HIPSYCL_SYCL_CXX = $(SYCL_SDK_DIR)/bin/syclcc -SYCL_HIPSYCL_CXX_CXX = $(SYCL_HIPSYCL_SYCL_CXX) +SYCL_HIPSYCL_CXX = $(SYCL_HIPSYCL_SYCLCXX) -SYCL_DPCPP_FLAGS_CPU = -O3 + +SYCL_DPCPP_SYCLFLAGS_CPU = -O3 --std=c++17 +SYCL_DPCPP_SYCLCXX = dpcpp +SYCL_DPCPP_FLAGS = $(SYCL_DPCPP_SYCLFLAGS_CPU) SYCL_DPCPP_LINK_FLAGS = SYCL_DPCPP_INCLUDE = -SYCL_DPCPP_SYCL_CXX = dpcpp -SYCL_DPCPP_CXX_CXX = dpcpp +SYCL_DPCPP_CXX = dpcpp -SYCL_FLAGS = $(SYCL_$(COMPILER)_FLAGS_$(TARGET)) +SYCL_SYCLFLAGS = $(SYCL_$(COMPILER)_SYCLFLAGS_$(TARGET)) +SYCL_SYCLCXX = $(SYCL_$(COMPILER)_SYCLCXX) + +SYCL_FLAGS = $(SYCL_$(COMPILER)_FLAGS) SYCL_LINK_FLAGS = $(SYCL_$(COMPILER)_LINK_FLAGS) SYCL_INCLUDE = $(SYCL_$(COMPILER)_INCLUDE) -SYCL_SYCL_CXX = $(SYCL_$(COMPILER)_SYCL_CXX) -SYCL_CXX_CXX = $(SYCL_$(COMPILER)_CXX_CXX) +SYCL_CXX = $(SYCL_$(COMPILER)_CXX) sycl-stream: main.o SYCLStream.o SYCLStream.sycl - $(SYCL_CXX_CXX) -O3 -std=c++17 -DSYCL main.o SYCLStream.o $(EXTRA_FLAGS) $(SYCL_LINK_FLAGS) -o $@ + $(SYCL_CXX) $(SYCL_FLAGS) -DSYCL main.o SYCLStream.o $(EXTRA_FLAGS) $(SYCL_LINK_FLAGS) -o $@ main.o: main.cpp - $(SYCL_CXX_CXX) -O3 -std=c++17 -DSYCL main.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ + $(SYCL_CXX) $(SYCL_FLAGS) -DSYCL main.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ SYCLStream.o: SYCLStream.cpp SYCLStream.sycl - $(SYCL_CXX_CXX) -O3 -std=c++17 -DSYCL SYCLStream.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ + $(SYCL_CXX) $(SYCL_FLAGS) -DSYCL SYCLStream.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ SYCLStream.sycl: SYCLStream.cpp - $(SYCL_SYCL_CXX) -DSYCL SYCLStream.cpp $(SYCL_FLAGS) -c $(SYCL_INCLUDE) -o $@ + $(SYCL_SYCLCXX) -DSYCL SYCLStream.cpp $(SYCL_SYCLFLAGS) -c $(SYCL_INCLUDE) -o $@ .PHONY: clean clean: From 98b09396692623c6e969f8d781c5b983a10bcead Mon Sep 17 00:00:00 2001 From: Tom Lin Date: Tue, 4 Aug 2020 23:52:08 +0100 Subject: [PATCH 3/6] Add Intel GT OMP offloading support for icpc --- OpenMP.make | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OpenMP.make b/OpenMP.make index 753b14f..7b745d0 100644 --- a/OpenMP.make +++ b/OpenMP.make @@ -16,7 +16,7 @@ ifndef TARGET define target_help Set TARGET to change device (defaulting to CPU). Available targets are: - CPU NVIDIA AMD + CPU NVIDIA AMD INTEL_GT endef $(info $(target_help)) @@ -36,7 +36,7 @@ CXX = $(COMPILER_$(COMPILER)) FLAGS_GNU = -O3 -std=c++11 -march=native FLAGS_GNU_PPC = -O3 -std=c++11 -mcpu=native -FLAGS_INTEL = -O3 -std=c++11 -xHOST -qopt-streaming-stores=always +FLAGS_INTEL = -O3 -std=c++11 FLAGS_CRAY = -O3 -std=c++11 FLAGS_CLANG = -O3 -std=c++11 FLAGS_XL = -O5 -qarch=auto -qtune=auto -std=c++11 @@ -61,6 +61,9 @@ OMP_CLANG_NVIDIA = -DOMP_TARGET_GPU -fopenmp=libomp -fopenmp-targets=nvptx64-nvi OMP_GNU_NVIDIA = -DOMP_TARGET_GPU -fopenmp -foffload=nvptx-none OMP_GNU_AMD = -DOMP_TARGET_GPU -fopenmp -foffload=amdgcn-amdhsa +OMP_INTEL_CPU = -xHOST -qopt-streaming-stores=always +OMP_INTEL_INTEL_GT = -DOMP_TARGET_GPU -qnextgen -fiopenmp -fopenmp-targets=spir64 + ifndef OMP_$(COMPILER)_$(TARGET) $(error Targeting $(TARGET) with $(COMPILER) not supported) endif From 603dc7d1367a743826f37fed6313e7dab9ee0258 Mon Sep 17 00:00:00 2001 From: Tom Lin Date: Wed, 5 Aug 2020 08:49:18 +0100 Subject: [PATCH 4/6] Add HIP compilers for Kokkos --- Kokkos.make | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Kokkos.make b/Kokkos.make index e46236e..af7ac5f 100644 --- a/Kokkos.make +++ b/Kokkos.make @@ -5,7 +5,7 @@ ifndef DEVICE define device_help Set DEVICE to change flags (defaulting to OpenMP). Available devices are: - OpenMP, Serial, Pthreads, Cuda + OpenMP, Serial, Pthreads, Cuda, HIP endef $(info $(device_help)) @@ -36,7 +36,9 @@ ifndef COMPILER define compiler_help Set COMPILER to change flags (defaulting to GNU). Available compilers are: - GNU INTEL CRAY PGI ARMCLANG + GNU INTEL CRAY PGI ARMCLANG HIPCC + + Note: you may have to do `export CXX=\path\to\hipcc` in case Kokkos detects the wrong compiler endef $(info $(compiler_help)) @@ -44,6 +46,7 @@ COMPILER=GNU endif COMPILER_ARMCLANG = armclang++ +COMPILER_HIPCC = hipcc COMPILER_GNU = g++ COMPILER_INTEL = icpc -qopt-streaming-stores=always COMPILER_CRAY = CC @@ -56,6 +59,9 @@ Set TARGET to change to offload device. Defaulting to CPU. Available targets are: CPU (default) GPU + + Note: Use CPU or leave default if compiling with HIPCC + endef $(info $(target_help)) TARGET=CPU From 59274d6a91758b12495ed87c98b9fd2c7ca8fa44 Mon Sep 17 00:00:00 2001 From: Tom Lin Date: Wed, 5 Aug 2020 08:54:40 +0100 Subject: [PATCH 5/6] Add NVIDIA as target for dpcpp --- SYCL.make | 1 + 1 file changed, 1 insertion(+) diff --git a/SYCL.make b/SYCL.make index d52c603..f2071d2 100644 --- a/SYCL.make +++ b/SYCL.make @@ -63,6 +63,7 @@ SYCL_HIPSYCL_CXX = $(SYCL_HIPSYCL_SYCLCXX) SYCL_DPCPP_SYCLFLAGS_CPU = -O3 --std=c++17 +SYCL_DPCPP_SYCLFLAGS_NVIDIA = -O3 --std=c++17 -fsycl -fsycl-targets=nvptx64-nvidia-cuda-sycldevice -fsycl-unnamed-lambda SYCL_DPCPP_SYCLCXX = dpcpp SYCL_DPCPP_FLAGS = $(SYCL_DPCPP_SYCLFLAGS_CPU) SYCL_DPCPP_LINK_FLAGS = From cdaf6cb88eecd5df3ff02a0457697a9cff2db01f Mon Sep 17 00:00:00 2001 From: Tom Lin Date: Fri, 7 Aug 2020 11:00:16 +0100 Subject: [PATCH 6/6] Fixed a bug where ComputeCpp's flags is omitted Renamed INTEL_GT -> INTEL_GPU Only use NVCC with Kokkos if not using HIPCC --- Kokkos.make | 4 ++-- OpenMP.make | 4 ++-- SYCL.make | 16 +++++++++------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Kokkos.make b/Kokkos.make index af7ac5f..7dd6af8 100644 --- a/Kokkos.make +++ b/Kokkos.make @@ -60,16 +60,16 @@ Available targets are: CPU (default) GPU - Note: Use CPU or leave default if compiling with HIPCC - endef $(info $(target_help)) TARGET=CPU endif ifeq ($(TARGET), GPU) +ifneq ($(COMPILER), HIPCC) CXX = $(NVCC_WRAPPER) endif +endif OBJ = main.o KokkosStream.o CXXFLAGS = -O3 diff --git a/OpenMP.make b/OpenMP.make index 7b745d0..a3ec90f 100644 --- a/OpenMP.make +++ b/OpenMP.make @@ -16,7 +16,7 @@ ifndef TARGET define target_help Set TARGET to change device (defaulting to CPU). Available targets are: - CPU NVIDIA AMD INTEL_GT + CPU NVIDIA AMD INTEL_GPU endef $(info $(target_help)) @@ -62,7 +62,7 @@ OMP_GNU_NVIDIA = -DOMP_TARGET_GPU -fopenmp -foffload=nvptx-none OMP_GNU_AMD = -DOMP_TARGET_GPU -fopenmp -foffload=amdgcn-amdhsa OMP_INTEL_CPU = -xHOST -qopt-streaming-stores=always -OMP_INTEL_INTEL_GT = -DOMP_TARGET_GPU -qnextgen -fiopenmp -fopenmp-targets=spir64 +OMP_INTEL_INTEL_GPU = -DOMP_TARGET_GPU -qnextgen -fiopenmp -fopenmp-targets=spir64 ifndef OMP_$(COMPILER)_$(TARGET) $(error Targeting $(TARGET) with $(COMPILER) not supported) diff --git a/SYCL.make b/SYCL.make index f2071d2..4326da5 100644 --- a/SYCL.make +++ b/SYCL.make @@ -42,15 +42,15 @@ endif endif SYCL_COMPUTECPP_SYCLFLAGS = $(shell $(SYCL_SDK_DIR)/bin/computecpp_info --dump-device-compiler-flags) -SYCL_COMPUTECPP_SYCLFLAGS_AMD = $(COMPUTECPP_FLAGS) -SYCL_COMPUTECPP_SYCLFLAGS_CPU = $(COMPUTECPP_FLAGS) -SYCL_COMPUTECPP_SYCLFLAGS_NVIDIA = $(COMPUTECPP_FLAGS) -sycl-target ptx64 +SYCL_COMPUTECPP_SYCLFLAGS_AMD = $(SYCL_COMPUTECPP_SYCLFLAGS) +SYCL_COMPUTECPP_SYCLFLAGS_CPU = $(SYCL_COMPUTECPP_SYCLFLAGS) +SYCL_COMPUTECPP_SYCLFLAGS_NVIDIA = $(SYCL_COMPUTECPP_SYCLFLAGS) -sycl-target ptx64 SYCL_COMPUTECPP_SYCLCXX = $(SYCL_SDK_DIR)/bin/compute++ SYCL_COMPUTECPP_FLAGS = -O3 --std=c++17 SYCL_COMPUTECPP_LINK_FLAGS = -L$(SYCL_SDK_DIR)/lib -lComputeCpp -lOpenCL -Wl,--rpath=$(SYCL_SDK_DIR)/lib/ SYCL_COMPUTECPP_INCLUDE = -I$(SYCL_SDK_DIR)/include SYCL_COMPUTECPP_CXX = g++ - +SYCL_COMPUTECPP_DEPS = SYCLStream.sycl SYCL_HIPSYCL_SYCLFLAGS_CPU = -O3 --std=c++17 --hipsycl-platform=cpu SYCL_HIPSYCL_SYCLFLAGS_AMD = -O3 --std=c++17 --hipsycl-platform=rocm --hipsycl-gpu-arch=$(ARCH) @@ -60,7 +60,7 @@ SYCL_HIPSYCL_FLAGS = $(SYCL_HIPSYCL_SYCLFLAGS_$(TARGET)) SYCL_HIPSYCL_LINK_FLAGS = -L$(SYCL_SDK_DIR)/lib -Wl,-rpath,$(SYCL_SDK_DIR)/lib SYCL_HIPSYCL_INCLUDE = SYCL_HIPSYCL_CXX = $(SYCL_HIPSYCL_SYCLCXX) - +SYCL_HIPSYCL_DEPS = SYCL_DPCPP_SYCLFLAGS_CPU = -O3 --std=c++17 SYCL_DPCPP_SYCLFLAGS_NVIDIA = -O3 --std=c++17 -fsycl -fsycl-targets=nvptx64-nvidia-cuda-sycldevice -fsycl-unnamed-lambda @@ -69,6 +69,7 @@ SYCL_DPCPP_FLAGS = $(SYCL_DPCPP_SYCLFLAGS_CPU) SYCL_DPCPP_LINK_FLAGS = SYCL_DPCPP_INCLUDE = SYCL_DPCPP_CXX = dpcpp +SYCL_DPCPP_DEPS = SYCL_SYCLFLAGS = $(SYCL_$(COMPILER)_SYCLFLAGS_$(TARGET)) @@ -78,14 +79,15 @@ SYCL_FLAGS = $(SYCL_$(COMPILER)_FLAGS) SYCL_LINK_FLAGS = $(SYCL_$(COMPILER)_LINK_FLAGS) SYCL_INCLUDE = $(SYCL_$(COMPILER)_INCLUDE) SYCL_CXX = $(SYCL_$(COMPILER)_CXX) +SYCL_DEPS = $(SYCL_$(COMPILER)_DEPS) -sycl-stream: main.o SYCLStream.o SYCLStream.sycl +sycl-stream: main.o SYCLStream.o $(SYCL_DEPS) $(SYCL_CXX) $(SYCL_FLAGS) -DSYCL main.o SYCLStream.o $(EXTRA_FLAGS) $(SYCL_LINK_FLAGS) -o $@ main.o: main.cpp $(SYCL_CXX) $(SYCL_FLAGS) -DSYCL main.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ -SYCLStream.o: SYCLStream.cpp SYCLStream.sycl +SYCLStream.o: SYCLStream.cpp $(SYCL_DEPS) $(SYCL_CXX) $(SYCL_FLAGS) -DSYCL SYCLStream.cpp -c $(SYCL_INCLUDE) $(EXTRA_FLAGS) -o $@ SYCLStream.sycl: SYCLStream.cpp