@@ -40,6 +40,7 @@ add_library(DPCPP::DPCPP INTERFACE IMPORTED)
4040
4141set (DPCPP_FLAGS "-fsycl;" )
4242set (DPCPP_COMPILE_ONLY_FLAGS "" )
43+ set (DPCPP_LINK_ONLY_FLAGS "" )
4344
4445if (NOT "${DPCPP_SYCL_TARGET} " STREQUAL "" )
4546 list (APPEND DPCPP_FLAGS "-fsycl-targets=${DPCPP_SYCL_TARGET} ;" )
@@ -63,10 +64,10 @@ if("${DPCPP_SYCL_TARGET}" STREQUAL "intel_gpu_pvc" OR
6364 "${DPCPP_SYCL_TARGET} " STREQUAL "spir64" OR
6465 "${DPCPP_SYCL_TARGET} " STREQUAL "intel_gpu_bmg_g21" )
6566 if ((CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2025.2) OR CUTLASS_SYCL_BUILTIN_ENABLE)
66- list (APPEND DPCPP_FLAGS "-Xspirv-translator;-spirv-ext=+SPV_INTEL_split_barrier" )
67+ list (APPEND DPCPP_LINK_ONLY_FLAGS "-Xspirv-translator;-spirv-ext=+SPV_INTEL_split_barrier" )
6768 else ()
68- list (APPEND DPCPP_FLAGS "-Xspirv-translator;-spirv-ext=+SPV_INTEL_split_barrier,+SPV_INTEL_2d_block_io,+SPV_INTEL_subgroup_matrix_multiply_accumulate" )
69- endif ()
69+ list (APPEND DPCPP_LINK_ONLY_FLAGS "-Xspirv-translator;-spirv-ext=+SPV_INTEL_split_barrier,+SPV_INTEL_2d_block_io,+SPV_INTEL_subgroup_matrix_multiply_accumulate" )
70+ endif ()
7071 if (DPCPP_DISABLE_ITT_FOR_CUTLASS)
7172 list (APPEND DPCPP_FLAGS "-fno-sycl-instrument-device-code" )
7273 endif ()
@@ -76,14 +77,16 @@ endif()
7677if (UNIX )
7778 set_target_properties (DPCPP::DPCPP PROPERTIES
7879 INTERFACE_COMPILE_OPTIONS "${DPCPP_FLAGS} ;${DPCPP_COMPILE_ONLY_FLAGS} "
79- INTERFACE_LINK_OPTIONS "${DPCPP_FLAGS} "
80+ INTERFACE_LINK_OPTIONS "${DPCPP_FLAGS} ; ${DPCPP_LINK_ONLY_FLAGS} "
8081 INTERFACE_LINK_LIBRARIES ${DPCPP_LIB_DIR}
8182 INTERFACE_INCLUDE_DIRECTORIES "${DPCPP_BIN_DIR} /../include/sycl;${DPCPP_BIN_DIR} /../include" )
8283 message (STATUS "DPCPP INCLUDE DIR: ${DPCPP_BIN_DIR} /../include/sycl;${DPCPP_BIN_DIR} /../include" )
83- message (STATUS "Using DPCPP flags: ${DPCPP_FLAGS} ;${DPCPP_COMPILE_ONLY_FLAGS} " )
84+ message (STATUS "Using DPCPP compile flags: ${DPCPP_FLAGS} ;${DPCPP_COMPILE_ONLY_FLAGS} " )
85+ message (STATUS "Using DPCPP link flags: ${DPCPP_FLAGS} ;${DPCPP_LINK_ONLY_FLAGS} " )
8486else ()
8587 set_target_properties (DPCPP::DPCPP PROPERTIES
8688 INTERFACE_COMPILE_OPTIONS "${DPCPP_FLAGS} ;${DPCPP_COMPILE_ONLY_FLAGS} "
89+ INTERFACE_LINK_OPTIONS "${DPCPP_FLAGS} ;${DPCPP_LINK_ONLY_FLAGS} "
8790 INTERFACE_LINK_LIBRARIES ${DPCPP_LIB_DIR}
8891 INTERFACE_INCLUDE_DIRECTORIES "${DPCPP_BIN_DIR} /../include/sycl" )
8992endif ()
@@ -105,7 +108,7 @@ function(add_sycl_to_target)
105108 )
106109 get_target_property (target_type ${CUTLASS_ADD_SYCL_TARGET} TYPE )
107110 if (NOT target_type STREQUAL "OBJECT_LIBRARY" )
108- target_link_options (${CUTLASS_ADD_SYCL_TARGET} PUBLIC ${DPCPP_FLAGS} )
111+ target_link_options (${CUTLASS_ADD_SYCL_TARGET} PUBLIC ${DPCPP_FLAGS} ${DPCPP_LINK_ONLY_FLAGS} )
109112 endif ()
110113endfunction ()
111114
0 commit comments