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