Commit dde879bc4 for llama.cpp
commit dde879bc4f954b809892fd0d660515f42536394a
Author: Michael Taylor <162068037+mctylr-gh@users.noreply.github.com>
Date: Sun Nov 1 02:46:43 2026 -0400
sycl: Try PkgConfig for LevelZero includes / libs (#31076)
diff --git a/ggml/src/ggml-sycl/CMakeLists.txt b/ggml/src/ggml-sycl/CMakeLists.txt
index cba39a758..35d36e583 100644
--- a/ggml/src/ggml-sycl/CMakeLists.txt
+++ b/ggml/src/ggml-sycl/CMakeLists.txt
@@ -107,24 +107,36 @@ target_compile_options(ggml-sycl PRIVATE "-Wno-narrowing")
message(STATUS "GGML_SYCL_SUPPORT_LEVEL_ZERO_API ${GGML_SYCL_SUPPORT_LEVEL_ZERO_API}")
if (GGML_SYCL_SUPPORT_LEVEL_ZERO_API)
- # Link against Level Zero loader for direct device memory allocation.
- # Avoids sycl::malloc_device triggering DMA-buf/TTM system RAM staging
- # in the xe kernel driver during multi-GPU inference.
- find_path(LEVEL_ZERO_DEV_INCLUDE_DIR level_zero/ze_api.h HINTS ${ONEAPI_ROOT}/include ${LEVEL_ZERO_V1_SDK_PATH}/include)
- find_library(ZE_LOADER_LIB ze_loader HINTS ${ONEAPI_ROOT}/lib ${LEVEL_ZERO_V1_SDK_LIB_PATH} ENV LD_LIBRARY_PATH)
- if(ZE_LOADER_LIB AND LEVEL_ZERO_DEV_INCLUDE_DIR)
- target_link_libraries(ggml-sycl PRIVATE ${ZE_LOADER_LIB})
- target_compile_definitions(ggml-sycl PRIVATE GGML_SYCL_SUPPORT_LEVEL_ZERO_API)
- message(STATUS "Level Zero loader found: ${ZE_LOADER_LIB}")
- message(STATUS "Level Zero development headers found: ${LEVEL_ZERO_DEV_INCLUDE_DIR}")
+ find_package(PkgConfig)
+ if (PkgConfig_FOUND)
+ pkg_check_modules(LEVEL_ZERO level-zero)
+ if (LEVEL_ZERO_FOUND)
+ target_include_directories(ggml-sycl PRIVATE ${LEVEL_ZERO_INCLUDE_DIRS})
+ target_link_libraries(ggml-sycl PRIVATE ${LEVEL_ZERO_LINK_LIBRARIES})
+ target_compile_definitions(ggml-sycl PRIVATE GGML_SYCL_SUPPORT_LEVEL_ZERO_API)
+ message(STATUS "Level Zero loader found: ${LEVEL_ZERO_LINK_LIBRARIES}")
+ message(STATUS "Level Zero development headers found: ${LEVEL_ZERO_INCLUDE_DIRS}")
+ endif()
else()
- message(WARNING "Level Zero loader or development headers not found, "
- "Level Zero API support disabled. "
- "Please install the Level Zero SDK/development package "
- "to support Level Zero API features. "
- "Level Zero API is not mandatory for SYCL backend, "
- "but it is required by the special features for better "
- "function & performance on Intel GPUs.")
+ # Link against Level Zero loader for direct device memory allocation.
+ # Avoids sycl::malloc_device triggering DMA-buf/TTM system RAM staging
+ # in the xe kernel driver during multi-GPU inference.
+ find_path(LEVEL_ZERO_DEV_INCLUDE_DIR level_zero/ze_api.h HINTS ${ONEAPI_ROOT}/include ${LEVEL_ZERO_V1_SDK_PATH}/include)
+ find_library(ZE_LOADER_LIB ze_loader HINTS ${ONEAPI_ROOT}/lib ${LEVEL_ZERO_V1_SDK_LIB_PATH} ENV LD_LIBRARY_PATH)
+ if(ZE_LOADER_LIB AND LEVEL_ZERO_DEV_INCLUDE_DIR)
+ target_link_libraries(ggml-sycl PRIVATE ${ZE_LOADER_LIB})
+ target_compile_definitions(ggml-sycl PRIVATE GGML_SYCL_SUPPORT_LEVEL_ZERO_API)
+ message(STATUS "Level Zero loader found: ${ZE_LOADER_LIB}")
+ message(STATUS "Level Zero development headers found: ${LEVEL_ZERO_DEV_INCLUDE_DIR}")
+ else()
+ message(WARNING "Level Zero loader or development headers not found, "
+ "Level Zero API support disabled. "
+ "Please install the Level Zero SDK/development package "
+ "to support Level Zero API features. "
+ "Level Zero API is not mandatory for SYCL backend, "
+ "but it is required by the special features for better "
+ "function & performance on Intel GPUs.")
+ endif()
endif()
endif()