From 42d99a3e5d5bb95579794f54272fdae447839afd Mon Sep 17 00:00:00 2001 From: David Rohr Date: Tue, 22 Apr 2025 09:28:39 +0200 Subject: [PATCH 1/2] GPU CMake: Set GPU architecture before checking the language, to suppress warnings about architecture detection failure --- dependencies/FindO2GPU.cmake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dependencies/FindO2GPU.cmake b/dependencies/FindO2GPU.cmake index d50705d106bf3..0c5313c16af68 100644 --- a/dependencies/FindO2GPU.cmake +++ b/dependencies/FindO2GPU.cmake @@ -103,6 +103,9 @@ endif() # ---------------------------------- CUDA ---------------------------------- if(ENABLE_CUDA) + if(CUDA_COMPUTETARGET) + set(CMAKE_CUDA_ARCHITECTURES ${CUDA_COMPUTETARGET} CACHE STRING "" FORCE) + endif() set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD}) set(CMAKE_CUDA_STANDARD_REQUIRED TRUE) include(CheckLanguage) @@ -227,6 +230,9 @@ endif() # ---------------------------------- HIP ---------------------------------- if(ENABLE_HIP) + if(HIP_AMDGPUTARGET) + set(CMAKE_HIP_ARCHITECTURES "${HIP_AMDGPUTARGET}" CACHE STRING "" FORCE) + endif() if(NOT "$ENV{CMAKE_PREFIX_PATH}" MATCHES "rocm" AND NOT CMAKE_PREFIX_PATH MATCHES "rocm" AND EXISTS "/opt/rocm/lib/cmake/") list(APPEND CMAKE_PREFIX_PATH "/opt/rocm/lib/cmake") endif() @@ -300,7 +306,7 @@ if(ENABLE_HIP) endif() string(REGEX REPLACE "(gfx1[0-9]+;?)" "" CMAKE_HIP_ARCHITECTURES "${CMAKE_HIP_ARCHITECTURES}") # ROCm currently doesn’t support integrated graphics if(HIP_AMDGPUTARGET) - set(CMAKE_HIP_ARCHITECTURES "${HIP_AMDGPUTARGET}") # If GPU build is enforced we override autodetection + set(CMAKE_HIP_ARCHITECTURES "${HIP_AMDGPUTARGET}") endif() else() set(HIP_ENABLED OFF) From b89c640565a4b55b14d0ee4277fc19401ee2b448 Mon Sep 17 00:00:00 2001 From: David Rohr Date: Tue, 22 Apr 2025 09:34:49 +0200 Subject: [PATCH 2/2] ONNXRuntime CMake: Use standard ONNXRuntime lowercase library syntax, remove obsolete wrapper, move detection from toplevel CMake to dependencies --- CMakeLists.txt | 2 -- Common/ML/CMakeLists.txt | 2 +- GPU/GPUTracking/Base/cuda/CMakeLists.txt | 2 +- GPU/GPUTracking/Base/hip/CMakeLists.txt | 2 +- GPU/GPUTracking/CMakeLists.txt | 2 +- dependencies/FindONNXRuntime.cmake | 23 ----------------------- dependencies/O2Dependencies.cmake | 3 +++ 7 files changed, 7 insertions(+), 29 deletions(-) delete mode 100644 dependencies/FindONNXRuntime.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d28f191021fdf..b71d05175e9e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,8 +41,6 @@ o2_build_sanity_checks() set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) -include(dependencies/FindONNXRuntime.cmake) - include(O2CheckCXXFeatures) o2_check_cxx_features() diff --git a/Common/ML/CMakeLists.txt b/Common/ML/CMakeLists.txt index 2db91fc4f4320..a5b336bf7e820 100644 --- a/Common/ML/CMakeLists.txt +++ b/Common/ML/CMakeLists.txt @@ -12,7 +12,7 @@ o2_add_library(ML SOURCES src/OrtInterface.cxx TARGETVARNAME targetName - PRIVATE_LINK_LIBRARIES O2::Framework ONNXRuntime::ONNXRuntime) + PRIVATE_LINK_LIBRARIES O2::Framework onnxruntime::onnxruntime) # Pass ORT variables as a preprocessor definition target_compile_definitions(${targetName} PRIVATE diff --git a/GPU/GPUTracking/Base/cuda/CMakeLists.txt b/GPU/GPUTracking/Base/cuda/CMakeLists.txt index f595fb051db54..8dd430d00a5c0 100644 --- a/GPU/GPUTracking/Base/cuda/CMakeLists.txt +++ b/GPU/GPUTracking/Base/cuda/CMakeLists.txt @@ -114,7 +114,7 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2") ${MODULE} SOURCES ${SRCS} PUBLIC_LINK_LIBRARIES O2::GPUTracking O2::ITStrackingCUDA - PRIVATE_LINK_LIBRARIES ONNXRuntime::ONNXRuntime + PRIVATE_LINK_LIBRARIES onnxruntime::onnxruntime PRIVATE_INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/Detectors/Base/src ${CMAKE_SOURCE_DIR}/Detectors/TRD/base/src diff --git a/GPU/GPUTracking/Base/hip/CMakeLists.txt b/GPU/GPUTracking/Base/hip/CMakeLists.txt index d29a6afb60899..315a6c2fa3080 100644 --- a/GPU/GPUTracking/Base/hip/CMakeLists.txt +++ b/GPU/GPUTracking/Base/hip/CMakeLists.txt @@ -162,7 +162,7 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2") ${MODULE} SOURCES ${SRCS} PUBLIC_LINK_LIBRARIES O2::GPUTracking O2::ITStrackingHIP - PRIVATE_LINK_LIBRARIES ONNXRuntime::ONNXRuntime + PRIVATE_LINK_LIBRARIES onnxruntime::onnxruntime PRIVATE_INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/Detectors/Base/src ${CMAKE_SOURCE_DIR}/Detectors/TRD/base/src diff --git a/GPU/GPUTracking/CMakeLists.txt b/GPU/GPUTracking/CMakeLists.txt index 0cd302cc0be94..c0648b3274108 100644 --- a/GPU/GPUTracking/CMakeLists.txt +++ b/GPU/GPUTracking/CMakeLists.txt @@ -343,7 +343,7 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2") O2::DetectorsRaw O2::Steer O2::ML - PRIVATE_LINK_LIBRARIES ONNXRuntime::ONNXRuntime + PRIVATE_LINK_LIBRARIES onnxruntime::onnxruntime PUBLIC_INCLUDE_DIRECTORIES ${INCDIRS} SOURCES ${SRCS} ${SRCS_NO_CINT} ${SRCS_NO_H}) diff --git a/dependencies/FindONNXRuntime.cmake b/dependencies/FindONNXRuntime.cmake deleted file mode 100644 index b783c2e1c7bf3..0000000000000 --- a/dependencies/FindONNXRuntime.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2019-2020 CERN and copyright holders of ALICE O2. -# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -# All rights not expressly granted are reserved. -# -# This software is distributed under the terms of the GNU General Public -# License v3 (GPL Version 3), copied verbatim in the file "COPYING". -# -# In applying this license CERN does not waive the privileges and immunities -# granted to it by virtue of its status as an Intergovernmental Organization -# or submit itself to any jurisdiction. - -find_package(ONNXRuntime::ONNXRuntime CONFIG) -if (ONNXRuntime::ONNXRuntime_FOUND) - set(onnxruntime_FOUND 1) - add_library(onnxruntime::onnxruntime ALIAS ONNXRuntime::ONNXRuntime) -endif() - -if (NOT ONNXRuntime::ONNXRuntime_FOUND) - find_package(onnxruntime CONFIG) - if (onnxruntime_FOUND) - add_library(ONNXRuntime::ONNXRuntime ALIAS onnxruntime::onnxruntime) - endif() -endif() diff --git a/dependencies/O2Dependencies.cmake b/dependencies/O2Dependencies.cmake index c5c22b3a79097..9020f99b4877b 100644 --- a/dependencies/O2Dependencies.cmake +++ b/dependencies/O2Dependencies.cmake @@ -69,6 +69,9 @@ if (NOT TARGET Gandiva::gandiva_shared) add_library(Gandiva::gandiva_shared ALIAS gandiva_shared) endif() +find_package(onnxruntime CONFIG) +set_package_properties(onnxruntime PROPERTIES TYPE REQUIRED) + find_package(Vc) set_package_properties(Vc PROPERTIES TYPE REQUIRED)