From 2f8de1a1655e60fe96aa3972d600fa59613f5951 Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Tue, 19 Aug 2025 13:45:12 -0700 Subject: [PATCH 1/7] [UR][Offload] Add option to build offload adapter --- buildbot/configure.py | 13 +++ .../source/adapters/offload/CMakeLists.txt | 98 ++++++++++++++----- 2 files changed, 89 insertions(+), 22 deletions(-) diff --git a/buildbot/configure.py b/buildbot/configure.py index 4dcbd85a355c6..ff3112165c64a 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -82,6 +82,10 @@ def do_configure(args, passthrough_args): if libclc_enabled: llvm_enable_projects += ";libclc" + # DeviceRIL uses -fuse-ld=lld, so enbale lld. + if args.offload: + llvm_enable_projects += ";lld" + if args.cuda: llvm_targets_to_build += ";NVPTX" libclc_targets_to_build = libclc_nvidia_target_names @@ -210,6 +214,12 @@ def do_configure(args, passthrough_args): "-DSYCL_ENABLE_MAJOR_RELEASE_PREVIEW_LIB={}".format(sycl_preview_lib), "-DBUG_REPORT_URL=https://github.com/intel/llvm/issues", ] + if args.offload: + cmake_cmd.extend( + [ + "-DUR_BUILD_ADAPTER_OFFLOAD=ON", + ] + ) if libclc_enabled: cmake_cmd.extend( @@ -340,6 +350,9 @@ def main(): default="AMD", help="choose hardware platform for HIP backend", ) + parser.add_argument( + "--offload", action="store_true", help="Enable UR liboffload adapter (experimental)" + ) parser.add_argument( "--level_zero_adapter_version", type=str, diff --git a/unified-runtime/source/adapters/offload/CMakeLists.txt b/unified-runtime/source/adapters/offload/CMakeLists.txt index 9411139a3e2d4..d45e40b799485 100644 --- a/unified-runtime/source/adapters/offload/CMakeLists.txt +++ b/unified-runtime/source/adapters/offload/CMakeLists.txt @@ -5,14 +5,84 @@ set(TARGET_NAME ur_adapter_offload) -set(UR_OFFLOAD_INSTALL_DIR "" CACHE PATH "Path to the directory containing libomptarget.so etc") -if (UR_OFFLOAD_INSTALL_DIR STREQUAL "") - message(FATAL_ERROR "UR_OFFLOAD_INSTALL_DIR must be defined for the Offload adapter") -endif() +add_ur_adapter(${TARGET_NAME} + SHARED + ${CMAKE_CURRENT_SOURCE_DIR}/adapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/context.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/device.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/enqueue.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/event.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/memory.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/platform.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/program.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/queue.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ur2offload.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/ur_interface_loader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/usm.cpp +) +set(UR_OFFLOAD_INSTALL_DIR "" CACHE PATH "Path to the directory containing libomptarget.so etc") set(UR_OFFLOAD_INCLUDE_DIR "" CACHE PATH "Path to the directory containing LLVM headers") -if (UR_OFFLOAD_INCLUDE_DIR STREQUAL "") - message(FATAL_ERROR "UR_OFFLOAD_INCLUDE_DIR must be defined for the Offload adapter") +if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") + include(ExternalProject) + + set(LLVM_PROJECT_GIT https://github.com/llvm/llvm-project.git) + set(LLVM_PROJECT_TAG ffddf33beb8097e760fafcbdd28d56c1d055e820) + message(STATUS "UR_OFFLOAD_INSTALL_DIR and/or UR_OFFLOAD_INCLUDE_DIR not set, building liboffload runtime from source using llvm-project tag: ${LLVM_PROJECT_TAG}") + set(LLVM_PROJECT_SOURCE_DIR ${CMAKE_BINARY_DIR}/llvm-project-src) + set(OPENMP_INSTALL_DIR ${CMAKE_BINARY_DIR}/openmp-install) + # Install to the same directory as main build + set(UR_OFFLOAD_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) + set(UR_OFFLOAD_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include) + # Clone llvm-project only once + ExternalProject_Add(llvm_project_src + GIT_REPOSITORY ${LLVM_PROJECT_GIT} + GIT_TAG ${LLVM_PROJECT_TAG} + SOURCE_DIR ${LLVM_PROJECT_SOURCE_DIR} + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + UPDATE_COMMAND "" + ) + # Build OpenMP runtime (required dependency for offlload's libomptarget) from the cloned source + ExternalProject_Add(openmp_ext + # DeviceRIL uses -fuse-ld=lld, so add lld to the dependencies. + DEPENDS llvm_project_src llvm-tblgen LLVMSupport clang lld + SOURCE_DIR ${LLVM_PROJECT_SOURCE_DIR}/openmp + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${OPENMP_INSTALL_DIR} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_BINARY_DIR}/bin/clang + -DCMAKE_CXX_COMPILER=${CMAKE_BINARY_DIR}/bin/clang++ + -DLIBOMP_OMPD_GDB_SUPPORT=OFF + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install + UPDATE_COMMAND "" + DOWNLOAD_COMMAND "" + ) + + # Build liboffload runtime from the same source tree + ExternalProject_Add(offload_ext + DEPENDS openmp_ext + SOURCE_DIR ${LLVM_PROJECT_SOURCE_DIR}/offload + LIST_SEPARATOR | + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${UR_OFFLOAD_INSTALL_DIR} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_BINARY_DIR}/bin/clang + -DCMAKE_CXX_COMPILER=${CMAKE_BINARY_DIR}/bin/clang++ + -DLIBOMPTARGET_LLVM_INCLUDE_DIRS=${LLVM_PROJECT_SOURCE_DIR}/llvm/include;${CMAKE_BINARY_DIR}/include + -DLLVM_DIR=${CMAKE_BINARY_DIR}/lib/cmake/llvm + -DLIBOMPTARGET_PLUGINS_TO_BUILD=cuda|amdgpu + -DLIBOMP_INCLUDE_DIR=${OPENMP_INSTALL_DIR}/include + -DLLVM_TABLEGEN=${CMAKE_BINARY_DIR}/bin/llvm-tblgen + -DCMAKE_PREFIX_PATH=${OPENMP_INSTALL_DIR};${CMAKE_BINARY_DIR}/bin + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install + UPDATE_COMMAND "" + DOWNLOAD_COMMAND "" + BUILD_BYPRODUCTS "${UR_OFFLOAD_INSTALL_DIR}/lib/libLLVMOffload.so" + ) + add_dependencies(${TARGET_NAME} offload_ext) endif() # When targetting CUDA devices, we need a workaround to avoid sending PTX to @@ -29,22 +99,6 @@ if (NOT TARGET cudadrv) ) endif() -add_ur_adapter(${TARGET_NAME} - SHARED - ${CMAKE_CURRENT_SOURCE_DIR}/adapter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/context.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/device.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/enqueue.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/event.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/memory.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/platform.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/program.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/queue.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/ur2offload.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/ur_interface_loader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/usm.cpp -) install_ur_library(${TARGET_NAME}) set_target_properties(${TARGET_NAME} PROPERTIES From 750d5aaec5fc625de22c644a01d93c77676aac22 Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Fri, 22 Aug 2025 13:58:27 -0700 Subject: [PATCH 2/7] Format --- buildbot/configure.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/buildbot/configure.py b/buildbot/configure.py index ff3112165c64a..2001b36eae6a7 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -351,7 +351,9 @@ def main(): help="choose hardware platform for HIP backend", ) parser.add_argument( - "--offload", action="store_true", help="Enable UR liboffload adapter (experimental)" + "--offload", + action="store_true", + help="Enable UR liboffload adapter (experimental)", ) parser.add_argument( "--level_zero_adapter_version", From 13d5408d23262c4d0c639711357a642a7054fc52 Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Fri, 22 Aug 2025 14:01:58 -0700 Subject: [PATCH 3/7] Fix typos --- buildbot/configure.py | 2 +- unified-runtime/source/adapters/offload/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildbot/configure.py b/buildbot/configure.py index 2001b36eae6a7..4277e222f79b4 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -82,7 +82,7 @@ def do_configure(args, passthrough_args): if libclc_enabled: llvm_enable_projects += ";libclc" - # DeviceRIL uses -fuse-ld=lld, so enbale lld. + # DeviceRTL uses -fuse-ld=lld, so enable lld. if args.offload: llvm_enable_projects += ";lld" diff --git a/unified-runtime/source/adapters/offload/CMakeLists.txt b/unified-runtime/source/adapters/offload/CMakeLists.txt index d45e40b799485..bf7c9b70f2c4f 100644 --- a/unified-runtime/source/adapters/offload/CMakeLists.txt +++ b/unified-runtime/source/adapters/offload/CMakeLists.txt @@ -47,7 +47,7 @@ if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") ) # Build OpenMP runtime (required dependency for offlload's libomptarget) from the cloned source ExternalProject_Add(openmp_ext - # DeviceRIL uses -fuse-ld=lld, so add lld to the dependencies. + # DeviceRTL uses -fuse-ld=lld, so add lld to the dependencies. DEPENDS llvm_project_src llvm-tblgen LLVMSupport clang lld SOURCE_DIR ${LLVM_PROJECT_SOURCE_DIR}/openmp CMAKE_ARGS From d31e63cf2fb8b3474b6e4d0cb0cb3f2948f70664 Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Fri, 22 Aug 2025 14:05:08 -0700 Subject: [PATCH 4/7] Typo --- unified-runtime/source/adapters/offload/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unified-runtime/source/adapters/offload/CMakeLists.txt b/unified-runtime/source/adapters/offload/CMakeLists.txt index bf7c9b70f2c4f..760101b4ad680 100644 --- a/unified-runtime/source/adapters/offload/CMakeLists.txt +++ b/unified-runtime/source/adapters/offload/CMakeLists.txt @@ -45,7 +45,7 @@ if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") INSTALL_COMMAND "" UPDATE_COMMAND "" ) - # Build OpenMP runtime (required dependency for offlload's libomptarget) from the cloned source + # Build OpenMP runtime (required dependency for offload's libomptarget) from the cloned source ExternalProject_Add(openmp_ext # DeviceRTL uses -fuse-ld=lld, so add lld to the dependencies. DEPENDS llvm_project_src llvm-tblgen LLVMSupport clang lld From b65d04205fd1bd787678502fb701247ab6898c4d Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Mon, 25 Aug 2025 08:46:33 -0700 Subject: [PATCH 5/7] Create worktree from existing workspace --- buildbot/configure.py | 1 + sycl/CMakeLists.txt | 9 +++ sycl/cmake/modules/FetchUnifiedRuntime.cmake | 4 ++ .../source/adapters/offload/CMakeLists.txt | 60 ++++++++++++------- 4 files changed, 54 insertions(+), 20 deletions(-) diff --git a/buildbot/configure.py b/buildbot/configure.py index 4277e222f79b4..b2f9a9805976f 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -85,6 +85,7 @@ def do_configure(args, passthrough_args): # DeviceRTL uses -fuse-ld=lld, so enable lld. if args.offload: llvm_enable_projects += ";lld" + sycl_enabled_backends.append("offload") if args.cuda: llvm_targets_to_build += ";NVPTX" diff --git a/sycl/CMakeLists.txt b/sycl/CMakeLists.txt index 4ecf9da2f84d4..0ac72d67c93e5 100644 --- a/sycl/CMakeLists.txt +++ b/sycl/CMakeLists.txt @@ -532,6 +532,15 @@ if("hip" IN_LIST SYCL_ENABLE_BACKENDS) list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS ur_adapter_hip) endif() +if("offload" IN_LIST SYCL_ENABLE_BACKENDS) + if(NOT TARGET lld) + message(FATAL_ERROR + "Offload support requires adding \"lld\" to the CMake argument \"LLVM_ENABLE_PROJECTS\"") + endif() + add_dependencies(sycl-toolchain ur_adapter_offload) + list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS ur_adapter_offload) +endif() + # Use it as fake dependency in order to force another command(s) to execute. add_custom_command(OUTPUT __force_it COMMAND "${CMAKE_COMMAND}" -E echo diff --git a/sycl/cmake/modules/FetchUnifiedRuntime.cmake b/sycl/cmake/modules/FetchUnifiedRuntime.cmake index cca4b209cebaa..0e54e8a016bd4 100644 --- a/sycl/cmake/modules/FetchUnifiedRuntime.cmake +++ b/sycl/cmake/modules/FetchUnifiedRuntime.cmake @@ -318,6 +318,10 @@ if("native_cpu" IN_LIST SYCL_ENABLE_BACKENDS) endif() endif() +if("offload" IN_LIST SYCL_ENABLE_BACKENDS) + add_sycl_ur_adapter(offload) +endif() + if(CMAKE_SYSTEM_NAME STREQUAL Windows) # On Windows, also build/install debug libraries with the d suffix that are # compiled with /MDd so users can link against these in debug builds. diff --git a/unified-runtime/source/adapters/offload/CMakeLists.txt b/unified-runtime/source/adapters/offload/CMakeLists.txt index 760101b4ad680..eea4b2f2ada1c 100644 --- a/unified-runtime/source/adapters/offload/CMakeLists.txt +++ b/unified-runtime/source/adapters/offload/CMakeLists.txt @@ -26,29 +26,44 @@ set(UR_OFFLOAD_INSTALL_DIR "" CACHE PATH "Path to the directory containing libom set(UR_OFFLOAD_INCLUDE_DIR "" CACHE PATH "Path to the directory containing LLVM headers") if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") include(ExternalProject) - - set(LLVM_PROJECT_GIT https://github.com/llvm/llvm-project.git) - set(LLVM_PROJECT_TAG ffddf33beb8097e760fafcbdd28d56c1d055e820) - message(STATUS "UR_OFFLOAD_INSTALL_DIR and/or UR_OFFLOAD_INCLUDE_DIR not set, building liboffload runtime from source using llvm-project tag: ${LLVM_PROJECT_TAG}") - set(LLVM_PROJECT_SOURCE_DIR ${CMAKE_BINARY_DIR}/llvm-project-src) + set(LLVM_PROJECT_SOURCE_DIR ${CMAKE_BINARY_DIR}/llvm-src-offload) + set(LLVM_PROJECT_TAG 4c0c295775cff0dcfc6439c3f51991ffac0345d8) set(OPENMP_INSTALL_DIR ${CMAKE_BINARY_DIR}/openmp-install) - # Install to the same directory as main build - set(UR_OFFLOAD_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) - set(UR_OFFLOAD_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include) - # Clone llvm-project only once - ExternalProject_Add(llvm_project_src - GIT_REPOSITORY ${LLVM_PROJECT_GIT} - GIT_TAG ${LLVM_PROJECT_TAG} - SOURCE_DIR ${LLVM_PROJECT_SOURCE_DIR} - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - UPDATE_COMMAND "" + set(UR_OFFLOAD_INSTALL_DIR ${CMAKE_BINARY_DIR}/offload-install) + set(UR_OFFLOAD_INCLUDE_DIR ${UR_OFFLOAD_INSTALL_DIR}/include) + + execute_process(COMMAND git -C "${CMAKE_SOURCE_DIR}" worktree prune) + + if(NOT IS_DIRECTORY "${LLVM_PROJECT_SOURCE_DIR}") + execute_process( + COMMAND git -C "${CMAKE_SOURCE_DIR}" worktree add --no-checkout --detach "${LLVM_PROJECT_SOURCE_DIR}" "${LLVM_PROJECT_TAG}" + RESULT_VARIABLE _wt_rv + COMMAND_ERROR_IS_FATAL ANY + ) + endif() + + execute_process( + COMMAND git sparse-checkout init --cone + WORKING_DIRECTORY "${LLVM_PROJECT_SOURCE_DIR}" + COMMAND_ERROR_IS_FATAL ANY ) + + execute_process( + COMMAND git sparse-checkout set openmp offload cmake llvm/include libc + WORKING_DIRECTORY "${LLVM_PROJECT_SOURCE_DIR}" + COMMAND_ERROR_IS_FATAL ANY + ) + + execute_process( + COMMAND git checkout "${LLVM_PROJECT_TAG}" + WORKING_DIRECTORY "${LLVM_PROJECT_SOURCE_DIR}" + COMMAND_ERROR_IS_FATAL ANY + ) + # Build OpenMP runtime (required dependency for offload's libomptarget) from the cloned source ExternalProject_Add(openmp_ext # DeviceRTL uses -fuse-ld=lld, so add lld to the dependencies. - DEPENDS llvm_project_src llvm-tblgen LLVMSupport clang lld + DEPENDS llvm-tblgen LLVMSupport clang lld FileCheck not SOURCE_DIR ${LLVM_PROJECT_SOURCE_DIR}/openmp CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPENMP_INSTALL_DIR} @@ -56,6 +71,8 @@ if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") -DCMAKE_C_COMPILER=${CMAKE_BINARY_DIR}/bin/clang -DCMAKE_CXX_COMPILER=${CMAKE_BINARY_DIR}/bin/clang++ -DLIBOMP_OMPD_GDB_SUPPORT=OFF + -DOPENMP_ENABLE_OMPT_TOOLS=OFF + -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/bin INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install UPDATE_COMMAND "" DOWNLOAD_COMMAND "" @@ -71,18 +88,21 @@ if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER=${CMAKE_BINARY_DIR}/bin/clang -DCMAKE_CXX_COMPILER=${CMAKE_BINARY_DIR}/bin/clang++ - -DLIBOMPTARGET_LLVM_INCLUDE_DIRS=${LLVM_PROJECT_SOURCE_DIR}/llvm/include;${CMAKE_BINARY_DIR}/include + -DLIBOMPTARGET_LLVM_INCLUDE_DIRS=${LLVM_PROJECT_SOURCE_DIR}/llvm/include|${CMAKE_BINARY_DIR}/include -DLLVM_DIR=${CMAKE_BINARY_DIR}/lib/cmake/llvm -DLIBOMPTARGET_PLUGINS_TO_BUILD=cuda|amdgpu -DLIBOMP_INCLUDE_DIR=${OPENMP_INSTALL_DIR}/include -DLLVM_TABLEGEN=${CMAKE_BINARY_DIR}/bin/llvm-tblgen - -DCMAKE_PREFIX_PATH=${OPENMP_INSTALL_DIR};${CMAKE_BINARY_DIR}/bin + -DCMAKE_PREFIX_PATH=${OPENMP_INSTALL_DIR}|${CMAKE_BINARY_DIR}/bin INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install UPDATE_COMMAND "" DOWNLOAD_COMMAND "" BUILD_BYPRODUCTS "${UR_OFFLOAD_INSTALL_DIR}/lib/libLLVMOffload.so" ) add_dependencies(${TARGET_NAME} offload_ext) + install(DIRECTORY "${UR_OFFLOAD_INSTALL_DIR}/" + DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT ur_adapter_offload) endif() # When targetting CUDA devices, we need a workaround to avoid sending PTX to From b9a0b9ffafe81ae9c54dc0cbd1b787adf0299942 Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Mon, 25 Aug 2025 22:17:05 -0700 Subject: [PATCH 6/7] Remove unused var --- unified-runtime/source/adapters/offload/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/unified-runtime/source/adapters/offload/CMakeLists.txt b/unified-runtime/source/adapters/offload/CMakeLists.txt index eea4b2f2ada1c..f5dd4769cd615 100644 --- a/unified-runtime/source/adapters/offload/CMakeLists.txt +++ b/unified-runtime/source/adapters/offload/CMakeLists.txt @@ -37,7 +37,6 @@ if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") if(NOT IS_DIRECTORY "${LLVM_PROJECT_SOURCE_DIR}") execute_process( COMMAND git -C "${CMAKE_SOURCE_DIR}" worktree add --no-checkout --detach "${LLVM_PROJECT_SOURCE_DIR}" "${LLVM_PROJECT_TAG}" - RESULT_VARIABLE _wt_rv COMMAND_ERROR_IS_FATAL ANY ) endif() From 4a94f470e1ff49686d03f3b1f02fe0f467d6a162 Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Tue, 2 Sep 2025 10:03:31 -0700 Subject: [PATCH 7/7] Update hash --- unified-runtime/source/adapters/offload/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unified-runtime/source/adapters/offload/CMakeLists.txt b/unified-runtime/source/adapters/offload/CMakeLists.txt index f5dd4769cd615..f148930b59294 100644 --- a/unified-runtime/source/adapters/offload/CMakeLists.txt +++ b/unified-runtime/source/adapters/offload/CMakeLists.txt @@ -27,7 +27,7 @@ set(UR_OFFLOAD_INCLUDE_DIR "" CACHE PATH "Path to the directory containing LLVM if (UR_OFFLOAD_INSTALL_DIR STREQUAL "" OR UR_OFFLOAD_INCLUDE_DIR STREQUAL "") include(ExternalProject) set(LLVM_PROJECT_SOURCE_DIR ${CMAKE_BINARY_DIR}/llvm-src-offload) - set(LLVM_PROJECT_TAG 4c0c295775cff0dcfc6439c3f51991ffac0345d8) + set(LLVM_PROJECT_TAG 32beea0605f37ea7a6429375d41b19ee78ddfe7d) set(OPENMP_INSTALL_DIR ${CMAKE_BINARY_DIR}/openmp-install) set(UR_OFFLOAD_INSTALL_DIR ${CMAKE_BINARY_DIR}/offload-install) set(UR_OFFLOAD_INCLUDE_DIR ${UR_OFFLOAD_INSTALL_DIR}/include)