Merge pull request #319880 from jkachmar/onnxruntime-1_18_0

onnxruntime: 1.16.3 -> 1.18.1
This commit is contained in:
Martin Weinelt
2024-07-13 13:29:07 +02:00
committed by GitHub
4 changed files with 187 additions and 62 deletions
@@ -1,45 +1,20 @@
From a29cffa646356228d6ec7bd7ce21fe3ab90fdd19 Mon Sep 17 00:00:00 2001
From: Someone Serge <sergei.kozlukov@aalto.fi>
Date: Wed, 7 Feb 2024 16:59:09 +0000
Subject: [PATCH] eigen: allow dependency injection
---
cmake/external/eigen.cmake | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/cmake/external/eigen.cmake b/cmake/external/eigen.cmake
index c0f7ddc50e..996b83d18a 100644
index b123adb..aab2483 100644
--- a/cmake/external/eigen.cmake
+++ b/cmake/external/eigen.cmake
@@ -1,4 +1,3 @@
-
if (onnxruntime_USE_PREINSTALLED_EIGEN)
add_library(eigen INTERFACE)
file(TO_CMAKE_PATH ${eigen_SOURCE_PATH} eigen_INCLUDE_DIRS)
@@ -10,14 +9,21 @@ else ()
URL ${DEP_URL_eigen}
URL_HASH SHA1=${DEP_SHA1_eigen}
PATCH_COMMAND ${Patch_EXECUTABLE} --ignore-space-change --ignore-whitespace < ${PROJECT_SOURCE_DIR}/patches/eigen/Fix_Eigen_Build_Break.patch
+ FIND_PACKAGE_ARGS NAMES Eigen3
)
else()
FetchContent_Declare(
eigen
URL ${DEP_URL_eigen}
URL_HASH SHA1=${DEP_SHA1_eigen}
+ FIND_PACKAGE_ARGS NAMES Eigen3
)
endif()
@@ -7,8 +7,13 @@ else ()
eigen
URL ${DEP_URL_eigen}
URL_HASH SHA1=${DEP_SHA1_eigen}
+ FIND_PACKAGE_ARGS NAMES Eigen3
)
- FetchContent_Populate(eigen)
- set(eigen_INCLUDE_DIRS "${eigen_SOURCE_DIR}")
+ FetchContent_MakeAvailable(eigen)
+ add_library(eigen ALIAS Eigen3::Eigen)
+
+ # Onnxruntime doesn't always use `eigen` as a target in
+ # `target_link_libraries`, sometimes it just uses
+ # `target_include_directories`:
+ get_target_property(eigen_INCLUDE_DIRS Eigen3::Eigen INTERFACE_INCLUDE_DIRECTORIES)
endif()
--
2.42.0
@@ -2,10 +2,15 @@
, stdenv
, lib
, fetchFromGitHub
, fetchpatch
, Foundation
, abseil-cpp
, cmake
, cpuinfo
, eigen
, flatbuffers
, gbenchmark
, glibcLocales
, gtest
, libpng
, nlohmann_json
@@ -24,7 +29,7 @@
let
version = "1.16.3";
version = "1.18.1";
stdenv = throw "Use effectiveStdenv instead";
effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
@@ -34,15 +39,15 @@ let
howard-hinnant-date = fetchFromGitHub {
owner = "HowardHinnant";
repo = "date";
rev = "v2.4.1";
sha256 = "sha256-BYL7wxsYRI45l8C3VwxYIIocn5TzJnBtU0UZ9pHwwZw=";
rev = "v3.0.1";
sha256 = "sha256-ZSjeJKAcT7mPym/4ViDvIR9nFMQEBCSUtPEuMO27Z+I=";
};
mp11 = fetchFromGitHub {
owner = "boostorg";
repo = "mp11";
rev = "boost-1.79.0";
hash = "sha256-ZxgPDLvpISrjpEHKpLGBowRKGfSwTf6TBfJD18yw+LM=";
rev = "boost-1.82.0";
hash = "sha256-cLPvjkf2Au+B19PJNrUkTW/VPxybi1MpPxnIl4oo4/o=";
};
safeint = fetchFromGitHub {
@@ -52,34 +57,34 @@ let
hash = "sha256-PK1ce4C0uCR4TzLFg+elZdSk5DdPCRhhwT3LvEwWnPU=";
};
pytorch_cpuinfo = fetchFromGitHub {
owner = "pytorch";
repo = "cpuinfo";
# There are no tags in the repository
rev = "5916273f79a21551890fd3d56fc5375a78d1598d";
hash = "sha256-nXBnloVTuB+AVX59VDU/Wc+Dsx94o92YQuHp3jowx2A=";
};
pytorch_clog = effectiveStdenv.mkDerivation {
pname = "clog";
version = "3c8b153";
src = "${cpuinfo.src}/deps/clog";
flatbuffers = fetchFromGitHub {
owner = "google";
repo = "flatbuffers";
rev = "v1.12.0";
hash = "sha256-L1B5Y/c897Jg9fGwT2J3+vaXsZ+lfXnskp8Gto1p/Tg=";
nativeBuildInputs = [ cmake gbenchmark gtest ];
cmakeFlags = [
"-DUSE_SYSTEM_GOOGLEBENCHMARK=ON"
"-DUSE_SYSTEM_GOOGLETEST=ON"
"-DUSE_SYSTEM_LIBS=ON"
# 'clog' tests set 'CXX_STANDARD 11'; this conflicts with our 'gtest'.
"-DCLOG_BUILD_TESTS=OFF"
];
};
onnx = fetchFromGitHub {
owner = "onnx";
repo = "onnx";
rev = "refs/tags/v1.14.1";
hash = "sha256-ZVSdk6LeAiZpQrrzLxphMbc1b3rNUMpcxcXPP8s/5tE=";
rev = "refs/tags/v1.16.1";
hash = "sha256-I1wwfn91hdH3jORIKny0Xc73qW2P04MjkVCgcaNnQUE=";
};
cutlass = fetchFromGitHub {
owner = "NVIDIA";
repo = "cutlass";
rev = "v3.0.0";
sha256 = "sha256-YPD5Sy6SvByjIcGtgeGH80TEKg2BtqJWSg46RvnJChY=";
};
rev = "v3.1.0";
hash = "sha256-mpaiCxiYR1WaSSkcEPTzvcREenJWklD+HRdTT5/pD54=";
};
in
effectiveStdenv.mkDerivation rec {
pname = "onnxruntime";
@@ -89,7 +94,7 @@ effectiveStdenv.mkDerivation rec {
owner = "microsoft";
repo = "onnxruntime";
rev = "refs/tags/v${version}";
hash = "sha256-bTW9Pc3rvH+c8VIlDDEtAXyA3sajVyY5Aqr6+SxaMF4=";
hash = "sha256-+zWtbLKekGhwdBU3bm1u2F7rYejQ62epE+HcHj05/8A=";
fetchSubmodules = true;
};
@@ -102,6 +107,13 @@ effectiveStdenv.mkDerivation rec {
# - use MakeAvailable instead of the low-level Populate,
# - use Eigen3::Eigen as the target name (as declared by libeigen/eigen).
./0001-eigen-allow-dependency-injection.patch
# Incorporate a patch that has landed upstream which exposes new
# 'abseil-cpp' libraries & modifies the 're2' CMakeLists to fix a
# configuration error that around missing 'gmock' exports.
#
# TODO: Check if it can be dropped after 1.19.0
# https://github.com/microsoft/onnxruntime/commit/b522df0ae477e59f60acbe6c92c8a64eda96cace
./update-re2.patch
] ++ lib.optionals cudaSupport [
# We apply the referenced 1064.patch ourselves to our nix dependency.
# FIND_PACKAGE_ARGS for CUDA was added in https://github.com/microsoft/onnxruntime/commit/87744e5 so it might be possible to delete this patch after upgrading to 1.17.0
@@ -124,11 +136,14 @@ effectiveStdenv.mkDerivation rec {
];
buildInputs = [
cpuinfo
eigen
glibcLocales
libpng
zlib
nlohmann_json
microsoft-gsl
pytorch_clog
zlib
] ++ lib.optionals pythonSupport (with python3Packages; [
numpy
pybind11
@@ -168,11 +183,11 @@ effectiveStdenv.mkDerivation rec {
"-DFETCHCONTENT_QUIET=OFF"
"-DFETCHCONTENT_SOURCE_DIR_ABSEIL_CPP=${abseil-cpp.src}"
"-DFETCHCONTENT_SOURCE_DIR_DATE=${howard-hinnant-date}"
"-DFETCHCONTENT_SOURCE_DIR_FLATBUFFERS=${flatbuffers}"
"-DFETCHCONTENT_SOURCE_DIR_FLATBUFFERS=${flatbuffers.src}"
"-DFETCHCONTENT_SOURCE_DIR_GOOGLETEST=${gtest.src}"
"-DFETCHCONTENT_SOURCE_DIR_GOOGLE_NSYNC=${nsync.src}"
"-DFETCHCONTENT_SOURCE_DIR_MP11=${mp11}"
"-DFETCHCONTENT_SOURCE_DIR_ONNX=${onnx}"
"-DFETCHCONTENT_SOURCE_DIR_PYTORCH_CPUINFO=${pytorch_cpuinfo}"
"-DFETCHCONTENT_SOURCE_DIR_RE2=${re2.src}"
"-DFETCHCONTENT_SOURCE_DIR_SAFEINT=${safeint}"
"-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS"
@@ -194,11 +209,13 @@ effectiveStdenv.mkDerivation rec {
env = lib.optionalAttrs effectiveStdenv.cc.isClang {
NIX_CFLAGS_COMPILE = toString [
"-Wno-error=deprecated-declarations"
"-Wno-error=deprecated-pragma"
"-Wno-error=unused-but-set-variable"
];
};
doCheck = !cudaSupport;
# aarch64-linux fails cpuinfo test, because /sys/devices/system/cpu/ does not exist in the sandbox
doCheck = !(cudaSupport || effectiveStdenv.buildPlatform.system == "aarch64-linux");
requiredSystemFeatures = lib.optionals cudaSupport [ "big-parallel" ];
@@ -1,8 +1,8 @@
diff --git a/cmake/external/onnxruntime_external_deps.cmake b/cmake/external/onnxruntime_external_deps.cmake
index 9effd1a2db..faff5e8de7 100644
index 775576a..ccea13c 100644
--- a/cmake/external/onnxruntime_external_deps.cmake
+++ b/cmake/external/onnxruntime_external_deps.cmake
@@ -280,21 +280,12 @@ if (NOT WIN32)
@@ -367,22 +367,12 @@ if (NOT WIN32)
endif()
endif()
@@ -12,6 +12,7 @@ index 9effd1a2db..faff5e8de7 100644
- URL ${DEP_URL_microsoft_gsl}
- URL_HASH SHA1=${DEP_SHA1_microsoft_gsl}
- PATCH_COMMAND ${Patch_EXECUTABLE} --binary --ignore-whitespace -p1 < ${PROJECT_SOURCE_DIR}/patches/gsl/1064.patch
- FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL
- )
-else()
- FetchContent_Declare(
@@ -0,0 +1,132 @@
From 0d1e631c365944d54e87bdce39beb13b225ba8f8 Mon Sep 17 00:00:00 2001
From: Changming Sun <chasun@microsoft.com>
Date: Thu, 23 May 2024 14:30:15 -0700
Subject: [PATCH] Update RE2 to the latest (#20775)
Update RE2 to the latest.
To keep the components up to date.
(cherry picked from commit b522df0ae477e59f60acbe6c92c8a64eda96cace)
---
cgmanifests/generated/cgmanifest.json | 2 +-
cmake/deps.txt | 4 +--
cmake/external/abseil-cpp.cmake | 35 ++++++++++++++++++++++-----
cmake/external/helper_functions.cmake | 6 +++++
4 files changed, 38 insertions(+), 9 deletions(-)
diff --git a/cgmanifests/generated/cgmanifest.json b/cgmanifests/generated/cgmanifest.json
index eb74178b3e..e3e9be67ae 100644
--- a/cgmanifests/generated/cgmanifest.json
+++ b/cgmanifests/generated/cgmanifest.json
@@ -276,7 +276,7 @@
"component": {
"type": "git",
"git": {
- "commitHash": "5723bb8950318135ed9cf4fc76bed988a087f536",
+ "commitHash": "2b354c6ad0d0479dcff68dab23fb0d1143a482c2",
"repositoryUrl": "https://github.com/google/re2.git"
},
"comments": "re2"
diff --git a/cmake/deps.txt b/cmake/deps.txt
index d213b09034..d4d19dea08 100644
--- a/cmake/deps.txt
+++ b/cmake/deps.txt
@@ -50,11 +50,11 @@ psimd;https://github.com/Maratyszcza/psimd/archive/072586a71b55b7f8c584153d223e9
pthreadpool;https://github.com/Maratyszcza/pthreadpool/archive/4fe0e1e183925bf8cfa6aae24237e724a96479b8.zip;07a0aa91dd9bf86f31b95497e00f31d8a261a4bd
pybind11;https://github.com/pybind/pybind11/archive/refs/tags/v2.10.1.zip;769b6aa67a77f17a770960f604b727645b6f6a13
pytorch_cpuinfo;https://github.com/pytorch/cpuinfo/archive/959002f82d7962a473d8bf301845f2af720e0aa4.zip;85da3caa60eb2b148613b443fbc2bfdc30689965
-re2;https://github.com/google/re2/archive/refs/tags/2022-06-01.zip;aa77313b76e91b531ee7f3e45f004c6a502a5374
+re2;https://github.com/google/re2/archive/refs/tags/2024-05-01.tar.gz;206cfee5ee0b4c6844680ba66275e9e8faa77405
safeint;https://github.com/dcleblanc/SafeInt/archive/refs/tags/3.0.28.zip;23f252040ff6cb9f1fd18575b32fa8fb5928daac
tensorboard;https://github.com/tensorflow/tensorboard/archive/373eb09e4c5d2b3cc2493f0949dc4be6b6a45e81.zip;67b833913605a4f3f499894ab11528a702c2b381
cutlass;https://github.com/NVIDIA/cutlass/archive/refs/tags/v3.1.0.zip;757f90a795034a89d4f48a79d1f009f7a04c8dee
utf8_range;https://github.com/protocolbuffers/utf8_range/archive/72c943dea2b9240cd09efde15191e144bc7c7d38.zip;9925739c9debc0efa2adcb194d371a35b6a03156
extensions;https://github.com/microsoft/onnxruntime-extensions/archive/94142d8391c9791ec71c38336436319a2d4ac7a0.zip;4365ac5140338b4cb75a39944a4be276e3829b3c
composable_kernel;https://github.com/ROCmSoftwarePlatform/composable_kernel/archive/5356c4a943a35e74d7cdc69486afcb8703b9a59a.zip;522382c2af437e09124287e5879ab64af5b2e299
-directx_headers;https://github.com/microsoft/DirectX-Headers/archive/refs/tags/v1.613.1.zip;47653509a3371eabb156360f42faf582f314bf2e
\ No newline at end of file
+directx_headers;https://github.com/microsoft/DirectX-Headers/archive/refs/tags/v1.613.1.zip;47653509a3371eabb156360f42faf582f314bf2e
diff --git a/cmake/external/abseil-cpp.cmake b/cmake/external/abseil-cpp.cmake
index 57cfbee464..c01195c99e 100644
--- a/cmake/external/abseil-cpp.cmake
+++ b/cmake/external/abseil-cpp.cmake
@@ -45,10 +45,8 @@ endif()
# TODO: since multiple ORT's dependencies depend on Abseil, the list below would vary from version to version.
# We'd better to not manually manage the list.
-set(ABSEIL_LIBS absl::base
+set(ABSEIL_LIBS
absl::city
-absl::core_headers
-absl::fixed_array
absl::flags
absl::flat_hash_map
absl::flat_hash_set
@@ -60,9 +58,34 @@ absl::node_hash_set
absl::optional
absl::raw_hash_set
absl::raw_logging_internal
-absl::span
absl::str_format
-absl::strings
+absl::str_format_internal
+absl::bits
+absl::fixed_array
+absl::numeric_representation
+absl::utility
+absl::type_traits
+absl::string_view
+absl::core_headers
+absl::nullability
+absl::span
+absl::config
absl::synchronization
+absl::base
+absl::civil_time
+absl::debugging_internal
+absl::demangle_internal
+absl::graphcycles_internal
+absl::int128
+absl::kernel_timeout_internal
+absl::log_severity
+absl::malloc_internal
+absl::spinlock_wait
+absl::stacktrace
+absl::string_view
+absl::strings
+absl::strings_internal
+absl::symbolize
absl::throw_delegate
-absl::time)
+absl::time
+absl::time_zone)
\ No newline at end of file
diff --git a/cmake/external/helper_functions.cmake b/cmake/external/helper_functions.cmake
index 768e807b40..eefb3ba2e8 100644
--- a/cmake/external/helper_functions.cmake
+++ b/cmake/external/helper_functions.cmake
@@ -159,7 +159,12 @@ macro(onnxruntime_fetchcontent_makeavailable)
endif()
if(EXISTS ${__cmake_srcdir}/CMakeLists.txt)
+ set(CMAKE_SKIP_INSTALL_RULES TRUE)
+ if (__cmake_arg_SYSTEM)
+ add_subdirectory(${__cmake_srcdir} ${${__cmake_contentNameLower}_BINARY_DIR} SYSTEM)
+ else()
add_subdirectory(${__cmake_srcdir} ${${__cmake_contentNameLower}_BINARY_DIR} EXCLUDE_FROM_ALL)
+ endif()
get_property(subdir_import_targets DIRECTORY "${__cmake_srcdir}" PROPERTY BUILDSYSTEM_TARGETS)
foreach(subdir_target ${subdir_import_targets})
if(TARGET ${subdir_target})
@@ -176,6 +181,7 @@ macro(onnxruntime_fetchcontent_makeavailable)
set_target_properties(${subdir_target} PROPERTIES COMPILE_WARNING_AS_ERROR OFF)
endif()
endforeach()
+ set(CMAKE_SKIP_INSTALL_RULES FALSE)
endif()
unset(__cmake_srcdir)
--
2.45.2