Skip to content

Commit aa10375

Browse files
committed
temp
1 parent e46c819 commit aa10375

File tree

8 files changed

+235
-133
lines changed

8 files changed

+235
-133
lines changed

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ include(${TORCH_XPU_OPS_ROOT}/cmake/SYCL.cmake)
4242
include(${TORCH_XPU_OPS_ROOT}/cmake/ONEMKL.cmake)
4343
include(${TORCH_XPU_OPS_ROOT}/cmake/BuildFlags.cmake)
4444

45+
set_build_flags()
46+
4547
# -- [ Re-generate the macros file for https://github.com/pytorch/pytorch/pull/147161
4648
macro(update_caffe2_macros_file)
4749
configure_file(
@@ -59,6 +61,15 @@ if(USE_XCCL)
5961
endif()
6062
endif()
6163

64+
set(USE_SYCLTLA ON)
65+
if (WIN32)
66+
set(USE_SYCLTLA OFF)
67+
endif()
68+
69+
if (USE_SYCLTLA)
70+
include(${TORCH_XPU_OPS_ROOT}/cmake/SYCLTLA.cmake)
71+
endif()
72+
6273
if(BUILD_TEST)
6374
add_subdirectory(${TORCH_XPU_OPS_ROOT}/test/sycl ${CMAKE_BINARY_DIR}/test_sycl)
6475
endif()

cmake/BuildFlags.cmake

Lines changed: 145 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -22,138 +22,159 @@ function(CHECK_SYCL_FLAG FLAG VARIABLE_NAME)
2222
file(REMOVE_RECURSE ${TEMP_DIR})
2323
endfunction()
2424

25-
# Support GCC on Linux and MSVC on Windows at the moment.
26-
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
27-
# # -- Host flags (SYCL_CXX_FLAGS)
28-
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
29-
list(APPEND SYCL_HOST_FLAGS /std:c++17)
30-
list(APPEND SYCL_HOST_FLAGS /MD)
31-
list(APPEND SYCL_HOST_FLAGS /EHsc) # exception handling
32-
# SYCL headers warnings
33-
list(APPEND SYCL_HOST_FLAGS /wd4996) # allow usage of deprecated functions
34-
list(APPEND SYCL_HOST_FLAGS /wd4018) # allow signed and unsigned comparison
35-
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
36-
list(APPEND SYCL_HOST_FLAGS -fPIC)
37-
list(APPEND SYCL_HOST_FLAGS -std=c++17)
38-
list(APPEND SYCL_HOST_FLAGS -Wunused-variable)
39-
# Some versions of DPC++ compiler pass paths to SYCL headers as user include paths (`-I`) rather
40-
# than system paths (`-isystem`). This makes host compiler to report warnings encountered in the
41-
# SYCL headers, such as deprecated warnings, even if warned API is not actually used in the program.
42-
# We expect that this issue will be addressed in the later version of DPC++ compiler. To workaround
43-
# the issue we wrap paths to SYCL headers in `-isystem`.
44-
foreach(FLAGS IN LISTS SYCL_INCLUDE_DIR)
45-
list(APPEND SYCL_HOST_FLAGS "-isystem ${FLAGS}")
46-
endforeach()
47-
# Excluding warnings which flood the compilation output
48-
# TODO: fix warnings in the source code and then reenable them in compilation
49-
list(APPEND SYCL_HOST_FLAGS -Wno-sign-compare)
50-
endif()
25+
macro(set_build_flags)
26+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
27+
set(SYCL_HOST_FLAGS)
28+
set(SYCL_KERNEL_OPTIONS)
29+
set(SYCL_COMPILE_FLAGS ${SYCL_FLAGS})
30+
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_LINK_FLAGS})
31+
set(SYCL_OFFLINE_COMPILER_AOT_OPTIONS)
32+
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS)
33+
set(SYCL_OFFLINE_COMPILER_FLAGS)
5134

52-
if(CMAKE_BUILD_TYPE MATCHES Debug)
53-
list(APPEND SYCL_HOST_FLAGS -g -fno-omit-frame-pointer -O0)
54-
elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
55-
list(APPEND SYCL_HOST_FLAGS -g -O2)
56-
endif()
57-
if(USE_PER_OPERATOR_HEADERS)
58-
list(APPEND SYCL_HOST_FLAGS -DAT_PER_OPERATOR_HEADERS)
59-
endif()
60-
list(APPEND SYCL_HOST_FLAGS -D__INTEL_LLVM_COMPILER_VERSION=${__INTEL_LLVM_COMPILER})
61-
# -- Kernel flags (SYCL_KERNEL_OPTIONS)
62-
# The fast-math will be enabled by default in SYCL compiler.
63-
# Refer to [https://clang.llvm.org/docs/UsersManual.html#cmdoption-fno-fast-math]
64-
# 1. We enable below flags here to be warn about NaN and Infinity,
65-
# which will be hidden by fast-math by default.
66-
# 2. The associative-math in fast-math allows floating point
67-
# operations to be reassociated, which will lead to non-deterministic
68-
# results compared with CUDA backend.
69-
# 3. The approx-func allows certain math function calls (such as log, sqrt, pow, etc)
70-
# to be replaced with an approximately equivalent set of instructions or
71-
# alternative math function calls, which have great errors.
72-
#
73-
# PSEUDO of separate compilation with DPCPP compiler.
74-
# 1. Kernel source compilation:
75-
# icpx -fsycl -fsycl-target=${SYCL_TARGETS_OPTION} ${SYCL_FLAGS} -fsycl-host-compiler=gcc -fsycl-host-compiler-options='${CMAKE_HOST_FLAGS}' kernel.cpp -o kernel.o
76-
# 2. Device code linkage:
77-
# icpx -fsycl -fsycl-target=${SYCL_TARGETS_OPTION} -fsycl-link ${SYCL_DEVICE_LINK_FLAGS} -Xs '${SYCL_OFFLINE_COMPILER_FLAGS}' kernel.o -o device-code.o
78-
# 3. Host only source compilation:
79-
# gcc ${CMAKE_HOST_FLAGS} host.cpp -o host.o
80-
# 4. Linkage:
81-
# gcc -shared host.o kernel.o device-code.o -o libxxx.so
82-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fno-sycl-unnamed-lambda)
83-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -sycl-std=2020)
84-
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
85-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} /fp:strict)
86-
# Suppress warnings about dllexport.
87-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -Wno-ignored-attributes)
88-
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
89-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fhonor-nans)
90-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fhonor-infinities)
91-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fno-associative-math)
92-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fno-approx-func)
93-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -Wno-absolute-value)
94-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -no-ftz)
95-
endif()
35+
if(REPLACE_FLAGS_FOR_SYCLTLA)
36+
set(CPP_STD c++20)
37+
else()
38+
set(CPP_STD c++17)
39+
endif()
40+
# # -- Host flags (SYCL_CXX_FLAGS)
41+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
42+
list(APPEND SYCL_HOST_FLAGS /std:${CPP_STD})
43+
list(APPEND SYCL_HOST_FLAGS /MD)
44+
list(APPEND SYCL_HOST_FLAGS /EHsc) # exception handling
45+
# SYCL headers warnings
46+
list(APPEND SYCL_HOST_FLAGS /wd4996) # allow usage of deprecated functions
47+
list(APPEND SYCL_HOST_FLAGS /wd4018) # allow signed and unsigned comparison
48+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
49+
list(APPEND SYCL_HOST_FLAGS -fPIC)
50+
list(APPEND SYCL_HOST_FLAGS -std=${CPP_STD})
51+
list(APPEND SYCL_HOST_FLAGS -Wunused-variable)
52+
# Some versions of DPC++ compiler pass paths to SYCL headers as user include paths (`-I`) rather
53+
# than system paths (`-isystem`). This makes host compiler to report warnings encountered in the
54+
# SYCL headers, such as deprecated warnings, even if warned API is not actually used in the program.
55+
# We expect that this issue will be addressed in the later version of DPC++ compiler. To workaround
56+
# the issue we wrap paths to SYCL headers in `-isystem`.
57+
foreach(FLAGS IN LISTS SYCL_INCLUDE_DIR)
58+
list(APPEND SYCL_HOST_FLAGS "-isystem ${FLAGS}")
59+
endforeach()
60+
# Excluding warnings which flood the compilation output
61+
# TODO: fix warnings in the source code and then reenable them in compilation
62+
list(APPEND SYCL_HOST_FLAGS -Wno-sign-compare)
63+
endif()
9664

97-
if(CMAKE_BUILD_TYPE MATCHES Debug)
98-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -g -O0 -Rno-debug-disables-optimization)
99-
elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
100-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -gline-tables-only -O2)
101-
endif()
65+
if(CMAKE_BUILD_TYPE MATCHES Debug)
66+
list(APPEND SYCL_HOST_FLAGS -g -fno-omit-frame-pointer -O0)
67+
elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
68+
list(APPEND SYCL_HOST_FLAGS -g -O2)
69+
endif()
70+
if(USE_PER_OPERATOR_HEADERS)
71+
list(APPEND SYCL_HOST_FLAGS -DAT_PER_OPERATOR_HEADERS)
72+
endif()
73+
list(APPEND SYCL_HOST_FLAGS -D__INTEL_LLVM_COMPILER_VERSION=${__INTEL_LLVM_COMPILER})
74+
# -- Kernel flags (SYCL_KERNEL_OPTIONS)
75+
# The fast-math will be enabled by default in SYCL compiler.
76+
# Refer to [https://clang.llvm.org/docs/UsersManual.html#cmdoption-fno-fast-math]
77+
# 1. We enable below flags here to be warn about NaN and Infinity,
78+
# which will be hidden by fast-math by default.
79+
# 2. The associative-math in fast-math allows floating point
80+
# operations to be reassociated, which will lead to non-deterministic
81+
# results compared with CUDA backend.
82+
# 3. The approx-func allows certain math function calls (such as log, sqrt, pow, etc)
83+
# to be replaced with an approximately equivalent set of instructions or
84+
# alternative math function calls, which have great errors.
85+
#
86+
# PSEUDO of separate compilation with DPCPP compiler.
87+
# 1. Kernel source compilation:
88+
# icpx -fsycl -fsycl-target=${SYCL_TARGETS_OPTION} ${SYCL_KERNEL_OPTIONS} -fsycl-host-compiler=gcc -fsycl-host-compiler-options='${CMAKE_HOST_FLAGS}' kernel.cpp -o kernel.o
89+
# 2. Device code linkage:
90+
# icpx -fsycl -fsycl-target=${SYCL_TARGETS_OPTION} -fsycl-link ${SYCL_DEVICE_LINK_FLAGS} -Xs '${SYCL_OFFLINE_COMPILER_FLAGS}' kernel.o -o device-code.o
91+
# 3. Host only source compilation:
92+
# gcc ${CMAKE_HOST_FLAGS} host.cpp -o host.o
93+
# 4. Linkage:
94+
# gcc -shared host.o kernel.o device-code.o -o libxxx.so
95+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fno-sycl-unnamed-lambda)
96+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -sycl-std=2020)
97+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
98+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} /fp:strict)
99+
# Suppress warnings about dllexport.
100+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -Wno-ignored-attributes)
101+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
102+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fhonor-nans)
103+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fhonor-infinities)
104+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fno-associative-math)
105+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fno-approx-func)
106+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -Wno-absolute-value)
107+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -no-ftz)
108+
endif()
102109

103-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -D__INTEL_LLVM_COMPILER_VERSION=${__INTEL_LLVM_COMPILER})
110+
if(CMAKE_BUILD_TYPE MATCHES Debug)
111+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -g -O0 -Rno-debug-disables-optimization)
112+
elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
113+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -gline-tables-only -O2)
114+
endif()
104115

105-
CHECK_SYCL_FLAG("-fsycl-fp64-conv-emu" SUPPORTS_FP64_CONV_EMU)
106-
if(SUPPORTS_FP64_CONV_EMU)
107-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fsycl-fp64-conv-emu)
108-
else()
109-
message(WARNING "The compiler does not support the '-fsycl-fp64-conv-emu' flag, \
110-
will disable it. On some platforms that don't support FP64, \
111-
running operations with the FP64 datatype will raise a Runtime error: Required aspect fp64 is not supported on the device \
112-
or a Native API failed error.")
113-
endif()
116+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -D__INTEL_LLVM_COMPILER_VERSION=${__INTEL_LLVM_COMPILER})
114117

115-
set(TORCH_XPU_OPS_FLAGS ${SYCL_HOST_FLAGS})
118+
CHECK_SYCL_FLAG("-fsycl-fp64-conv-emu" SUPPORTS_FP64_CONV_EMU)
119+
if(SUPPORTS_FP64_CONV_EMU)
120+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} -fsycl-fp64-conv-emu)
121+
else()
122+
message(WARNING "The compiler does not support the '-fsycl-fp64-conv-emu' flag, \
123+
will disable it. On some platforms that don't support FP64, \
124+
running operations with the FP64 datatype will raise a Runtime error: Required aspect fp64 is not supported on the device \
125+
or a Native API failed error.")
126+
endif()
116127

117-
# -- SYCL device object linkage flags
118-
include(ProcessorCount)
119-
ProcessorCount(proc_cnt)
120-
if((DEFINED ENV{MAX_JOBS}) AND ("$ENV{MAX_JOBS}" LESS_EQUAL ${proc_cnt}))
121-
set(SYCL_MAX_PARALLEL_LINK_JOBS $ENV{MAX_JOBS})
122-
else()
123-
set(SYCL_MAX_PARALLEL_LINK_JOBS ${proc_cnt})
124-
endif()
125-
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} -fsycl-max-parallel-link-jobs=${SYCL_MAX_PARALLEL_LINK_JOBS})
126-
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} --offload-compress)
128+
set(TORCH_XPU_OPS_FLAGS ${SYCL_HOST_FLAGS})
127129

128-
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-poison-unsupported-fp64-kernels")
129-
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-intel-enable-auto-large-GRF-mode")
130-
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-fp32-correctly-rounded-divide-sqrt")
131-
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-intel-greater-than-4GB-buffer-required")
130+
# -- SYCL device object linkage flags
131+
include(ProcessorCount)
132+
ProcessorCount(proc_cnt)
133+
if((DEFINED ENV{MAX_JOBS}) AND ("$ENV{MAX_JOBS}" LESS_EQUAL ${proc_cnt}))
134+
set(SYCL_MAX_PARALLEL_LINK_JOBS $ENV{MAX_JOBS})
135+
else()
136+
set(SYCL_MAX_PARALLEL_LINK_JOBS ${proc_cnt})
137+
endif()
138+
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} -fsycl-max-parallel-link-jobs=${SYCL_MAX_PARALLEL_LINK_JOBS})
139+
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} --offload-compress)
132140

141+
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-poison-unsupported-fp64-kernels")
142+
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-intel-enable-auto-large-GRF-mode")
143+
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-fp32-correctly-rounded-divide-sqrt")
144+
set(SYCL_OFFLINE_COMPILER_CG_OPTIONS "${SYCL_OFFLINE_COMPILER_CG_OPTIONS} -options -cl-intel-greater-than-4GB-buffer-required")
133145

134-
if(WIN32)
135-
set(AOT_TARGETS "mtl,mtl-h,bmg,dg2,arl-h,lnl-m")
136-
else()
137-
set(AOT_TARGETS "pvc,bmg,dg2,arl-h,mtl-h,lnl-m")
138-
endif()
139-
if(TORCH_XPU_ARCH_LIST)
140-
set(AOT_TARGETS "${TORCH_XPU_ARCH_LIST}")
141-
endif()
142-
if(AOT_TARGETS STREQUAL "none")
143-
set(TORCH_XPU_ARCH_LIST "" PARENT_SCOPE)
144-
else()
145-
set(SYCL_TARGETS_OPTION -fsycl-targets=spir64_gen,spir64)
146-
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} ${SYCL_TARGETS_OPTION})
147-
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} ${SYCL_TARGETS_OPTION})
148-
set(SYCL_OFFLINE_COMPILER_AOT_OPTIONS "-device ${AOT_TARGETS}")
149-
set(TORCH_XPU_ARCH_LIST ${AOT_TARGETS} PARENT_SCOPE)
150-
endif()
151-
message(STATUS "Compile Intel GPU AOT Targets for ${AOT_TARGETS}")
146+
if(REPLACE_FLAGS_FOR_SYCLTLA)
147+
set(SYCL_TARGETS_OPTION -fsycl-targets=spir64_gen)
148+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} ${SYCL_TARGETS_OPTION})
149+
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} ${SYCL_TARGETS_OPTION})
150+
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} "-Xspirv-translator;-spirv-ext=+SPV_INTEL_split_barrier,+SPV_INTEL_2d_block_io,+SPV_INTEL_subgroup_matrix_multiply_accumulate")
151+
set(SYCL_OFFLINE_COMPILER_AOT_OPTIONS "-device pvc,bmg")
152+
else()
153+
if(WIN32)
154+
set(AOT_TARGETS "mtl,mtl-h,bmg,dg2,arl-h,lnl-m")
155+
else()
156+
set(AOT_TARGETS "pvc,bmg,dg2,arl-h,mtl-h,lnl-m")
157+
endif()
158+
if(TORCH_XPU_ARCH_LIST)
159+
set(AOT_TARGETS "${TORCH_XPU_ARCH_LIST}")
160+
endif()
161+
if(AOT_TARGETS STREQUAL "none")
162+
set(TORCH_XPU_ARCH_LIST "" PARENT_SCOPE)
163+
else()
164+
set(SYCL_TARGETS_OPTION -fsycl-targets=spir64_gen,spir64)
165+
set(SYCL_KERNEL_OPTIONS ${SYCL_KERNEL_OPTIONS} ${SYCL_TARGETS_OPTION})
166+
set(SYCL_DEVICE_LINK_FLAGS ${SYCL_DEVICE_LINK_FLAGS} ${SYCL_TARGETS_OPTION})
167+
set(SYCL_OFFLINE_COMPILER_AOT_OPTIONS "-device ${AOT_TARGETS}")
168+
set(TORCH_XPU_ARCH_LIST ${AOT_TARGETS} PARENT_SCOPE)
169+
endif()
170+
message(STATUS "Compile Intel GPU AOT Targets for ${AOT_TARGETS}")
171+
endif()
152172

153-
set(SYCL_FLAGS ${SYCL_FLAGS} ${SYCL_KERNEL_OPTIONS})
173+
set(SYCL_COMPILE_FLAGS ${SYCL_COMPILE_FLAGS} ${SYCL_KERNEL_OPTIONS})
154174

155-
set(SYCL_OFFLINE_COMPILER_FLAGS "${SYCL_OFFLINE_COMPILER_AOT_OPTIONS}${SYCL_OFFLINE_COMPILER_CG_OPTIONS}")
156-
else()
157-
message("Not compiling with XPU. Currently only support GCC compiler on Linux and MSVC compiler on Windows as CXX compiler.")
158-
return()
159-
endif()
175+
set(SYCL_OFFLINE_COMPILER_FLAGS "${SYCL_OFFLINE_COMPILER_AOT_OPTIONS}${SYCL_OFFLINE_COMPILER_CG_OPTIONS}")
176+
else()
177+
message("Not compiling with XPU. Currently only support GCC compiler on Linux and MSVC compiler on Windows as CXX compiler.")
178+
return()
179+
endif()
180+
endmacro()

cmake/Modules/FindSYCL.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# SYCL_COMPILER
1111
# -- SYCL compiler's executable.
1212
#
13-
# SYCL_FLAGS
13+
# SYCL_COMPILE_FLAGS
1414
# -- SYCL compiler's compilation command line arguments.
1515
#
1616
# SYCL_HOST_FLAGS
@@ -212,7 +212,6 @@ endfunction()
212212

213213
macro(SYCL_WRAP_SRCS sycl_target generated_files)
214214
# Optional arguments
215-
set(SYCL_flags "")
216215
set(generated_extension ${CMAKE_${SYCL_C_OR_CXX}_OUTPUT_EXTENSION})
217216

218217
set(SYCL_include_dirs "${SYCL_INCLUDE_DIR}")
@@ -383,7 +382,6 @@ macro(SYCL_LINK_DEVICE_OBJECTS output_file sycl_target)
383382
set(SYCL_device_link_flags
384383
${link_type_flag}
385384
${important_host_flags}
386-
${SYCL_FLAGS}
387385
${SYCL_DEVICE_LINK_FLAGS})
388386

389387
file(RELATIVE_PATH output_file_relative_path "${CMAKE_BINARY_DIR}" "${output_file}")

cmake/Modules/FindSYCL/run_sycl.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ set(SYCL_host_compiler "@SYCL_HOST_COMPILER@") # path
2727
set(generated_file_path "@generated_file_path@") # path
2828
set(generated_file_internal "@generated_file@") # path
2929
set(SYCL_executable "@SYCL_EXECUTABLE@") # path
30-
set(SYCL_flags @SYCL_FLAGS@) # list
30+
set(SYCL_compile_flags @SYCL_COMPILE_FLAGS@) # list
3131
set(SYCL_include_dirs [==[@SYCL_include_dirs@]==]) # list
3232
set(SYCL_compile_definitions [==[@SYCL_compile_definitions@]==]) # list
3333

@@ -47,10 +47,10 @@ foreach(dir ${SYCL_include_dirs})
4747
endif()
4848
endforeach()
4949

50-
# Clean up list of compile definitions, add -D flags, and append to SYCL_flags
50+
# Clean up list of compile definitions, add -D flags, and append to SYCL_compile_flags
5151
list(REMOVE_DUPLICATES SYCL_compile_definitions)
5252
foreach(def ${SYCL_compile_definitions})
53-
list(APPEND SYCL_flags "-D${def}")
53+
list(APPEND SYCL_compile_flags "-D${def}")
5454
endforeach()
5555

5656
# Choose host flags in FindSYCL.cmake
@@ -72,7 +72,7 @@ foreach(def ${SYCL_compile_definitions})
7272
endforeach()
7373

7474
# string(APPEND SYCL_host_compiler_flags "\"")
75-
set(SYCL_host_compiler "-fsycl-host-compiler=${SYCL_host_compiler}")
75+
set(SYCL_host_compiler "-fsycl-host-compiler=g++-13")
7676

7777
# SYCL_execute_process - Executes a command with optional command echo and status message.
7878
#
@@ -134,7 +134,7 @@ SYCL_execute_process(
134134
${SYCL_include_args}
135135
${SYCL_host_compiler}
136136
${SYCL_host_compiler_flags}
137-
${SYCL_flags}
137+
${SYCL_compile_flags}
138138
)
139139

140140
if(SYCL_result)

0 commit comments

Comments
 (0)