Merge pull request #226734 from cbourjau/onnxruntime-macos
onnxruntime: 1.13.1 -> 1.15.1 and build on Darwin
This commit is contained in:
commit
6e877eacf2
|
@ -2778,6 +2778,12 @@
|
||||||
githubId = 3471749;
|
githubId = 3471749;
|
||||||
name = "Claudio Bley";
|
name = "Claudio Bley";
|
||||||
};
|
};
|
||||||
|
cbourjau = {
|
||||||
|
email = "christianb@posteo.de";
|
||||||
|
github = "cbourjau";
|
||||||
|
githubId = 3288058;
|
||||||
|
name = "Christian Bourjau";
|
||||||
|
};
|
||||||
cbrewster = {
|
cbrewster = {
|
||||||
email = "cbrewster@hey.com";
|
email = "cbrewster@hey.com";
|
||||||
github = "cbrewster";
|
github = "cbrewster";
|
||||||
|
|
|
@ -1,59 +1,98 @@
|
||||||
{ stdenv
|
{ stdenv
|
||||||
, lib
|
, lib
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, fetchFromGitLab
|
||||||
, fetchpatch
|
, fetchpatch
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, pkg-config
|
, Foundation
|
||||||
, cmake
|
|
||||||
, python3Packages
|
|
||||||
, libpng
|
|
||||||
, zlib
|
|
||||||
, eigen
|
|
||||||
, protobuf
|
|
||||||
, howard-hinnant-date
|
|
||||||
, nlohmann_json
|
|
||||||
, boost
|
|
||||||
, oneDNN_2
|
|
||||||
, abseil-cpp
|
, abseil-cpp
|
||||||
, gtest
|
, cmake
|
||||||
, pythonSupport ? false
|
, libpng
|
||||||
|
, nlohmann_json
|
||||||
, nsync
|
, nsync
|
||||||
, flatbuffers
|
, pkg-config
|
||||||
|
, python3Packages
|
||||||
|
, re2
|
||||||
|
, zlib
|
||||||
|
, microsoft-gsl
|
||||||
|
, iconv
|
||||||
|
, gtest
|
||||||
|
, protobuf3_21
|
||||||
|
, pythonSupport ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# Python Support
|
|
||||||
#
|
|
||||||
# When enabling Python support a wheel is made and stored in a `dist` output.
|
|
||||||
# This wheel is then installed in a separate derivation.
|
|
||||||
|
|
||||||
assert pythonSupport -> lib.versionOlder protobuf.version "3.20";
|
let
|
||||||
|
howard-hinnant-date = fetchFromGitHub {
|
||||||
|
owner = "HowardHinnant";
|
||||||
|
repo = "date";
|
||||||
|
rev = "v2.4.1";
|
||||||
|
sha256 = "sha256-BYL7wxsYRI45l8C3VwxYIIocn5TzJnBtU0UZ9pHwwZw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
eigen = fetchFromGitLab {
|
||||||
|
owner = "libeigen";
|
||||||
|
repo = "eigen";
|
||||||
|
rev = "d10b27fe37736d2944630ecd7557cefa95cf87c9";
|
||||||
|
sha256 = "sha256-Lmco0s9gIm9sIw7lCr5Iewye3RmrHEE4HLfyzRkQCm0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
mp11 = fetchFromGitHub {
|
||||||
|
owner = "boostorg";
|
||||||
|
repo = "mp11";
|
||||||
|
rev = "boost-1.79.0";
|
||||||
|
sha256 = "sha256-ZxgPDLvpISrjpEHKpLGBowRKGfSwTf6TBfJD18yw+LM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
safeint = fetchFromGitHub {
|
||||||
|
owner = "dcleblanc";
|
||||||
|
repo = "safeint";
|
||||||
|
rev = "ff15c6ada150a5018c5ef2172401cb4529eac9c0";
|
||||||
|
sha256 = "sha256-PK1ce4C0uCR4TzLFg+elZdSk5DdPCRhhwT3LvEwWnPU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
pytorch_cpuinfo = fetchFromGitHub {
|
||||||
|
owner = "pytorch";
|
||||||
|
repo = "cpuinfo";
|
||||||
|
# There are no tags in the repository
|
||||||
|
rev = "5916273f79a21551890fd3d56fc5375a78d1598d";
|
||||||
|
sha256 = "sha256-nXBnloVTuB+AVX59VDU/Wc+Dsx94o92YQuHp3jowx2A=";
|
||||||
|
};
|
||||||
|
|
||||||
|
flatbuffers = fetchFromGitHub {
|
||||||
|
owner = "google";
|
||||||
|
repo = "flatbuffers";
|
||||||
|
rev = "v1.12.0";
|
||||||
|
sha256 = "sha256-L1B5Y/c897Jg9fGwT2J3+vaXsZ+lfXnskp8Gto1p/Tg=";
|
||||||
|
};
|
||||||
|
|
||||||
|
gtest' = gtest.overrideAttrs (oldAttrs: rec {
|
||||||
|
version = "1.13.0";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "google";
|
||||||
|
repo = "googletest";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-LVLEn+e7c8013pwiLzJiiIObyrlbBHYaioO/SWbItPQ=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "onnxruntime";
|
pname = "onnxruntime";
|
||||||
version = "1.13.1";
|
version = "1.15.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "microsoft";
|
owner = "microsoft";
|
||||||
repo = "onnxruntime";
|
repo = "onnxruntime";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-paaeq6QeiOzwiibbz0GkYZxEI/V80lvYNYTm6AuyAXQ=";
|
sha256 = "sha256-SnHo2sVACc++fog7Tg6f2LK/Sv/EskFzN7RZS7D113s=";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
|
||||||
# Use dnnl from nixpkgs instead of submodules
|
|
||||||
(fetchpatch {
|
|
||||||
name = "system-dnnl.patch";
|
|
||||||
url = "https://aur.archlinux.org/cgit/aur.git/plain/system-dnnl.diff?h=python-onnxruntime&id=9c392fb542979981fe0026e0fe3cc361a5f00a36";
|
|
||||||
sha256 = "sha256-+kedzJHLFU1vMbKO9cn8fr+9A5+IxIuiqzOfR2AfJ0k=";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
pkg-config
|
pkg-config
|
||||||
python3Packages.python
|
python3Packages.python
|
||||||
gtest
|
protobuf3_21
|
||||||
] ++ lib.optionals pythonSupport (with python3Packages; [
|
] ++ lib.optionals pythonSupport (with python3Packages; [
|
||||||
setuptools
|
setuptools
|
||||||
wheel
|
wheel
|
||||||
|
@ -64,18 +103,26 @@ stdenv.mkDerivation rec {
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libpng
|
libpng
|
||||||
zlib
|
zlib
|
||||||
howard-hinnant-date
|
|
||||||
nlohmann_json
|
nlohmann_json
|
||||||
boost
|
|
||||||
oneDNN_2
|
|
||||||
protobuf
|
|
||||||
] ++ lib.optionals pythonSupport [
|
|
||||||
nsync
|
nsync
|
||||||
|
re2
|
||||||
|
microsoft-gsl
|
||||||
|
] ++ lib.optionals pythonSupport [
|
||||||
python3Packages.numpy
|
python3Packages.numpy
|
||||||
python3Packages.pybind11
|
python3Packages.pybind11
|
||||||
python3Packages.packaging
|
python3Packages.packaging
|
||||||
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
|
Foundation
|
||||||
|
iconv
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = lib.optionals pythonSupport (with python3Packages; [
|
||||||
|
gtest'
|
||||||
|
pytest
|
||||||
|
sympy
|
||||||
|
onnx
|
||||||
|
]);
|
||||||
|
|
||||||
# TODO: build server, and move .so's to lib output
|
# TODO: build server, and move .so's to lib output
|
||||||
# Python's wheel is stored in a separate dist output
|
# Python's wheel is stored in a separate dist output
|
||||||
outputs = [ "out" "dev" ] ++ lib.optionals pythonSupport [ "dist" ];
|
outputs = [ "out" "dev" ] ++ lib.optionals pythonSupport [ "dist" ];
|
||||||
|
@ -85,15 +132,23 @@ stdenv.mkDerivation rec {
|
||||||
cmakeDir = "../cmake";
|
cmakeDir = "../cmake";
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-Donnxruntime_PREFER_SYSTEM_LIB=ON"
|
"-DCMAKE_BUILD_TYPE=RELEASE"
|
||||||
"-Donnxruntime_BUILD_SHARED_LIB=ON"
|
"-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
|
||||||
"-Donnxruntime_ENABLE_LTO=ON"
|
"-DFETCHCONTENT_QUIET=OFF"
|
||||||
"-Donnxruntime_BUILD_UNIT_TESTS=ON"
|
|
||||||
"-Donnxruntime_USE_PREINSTALLED_EIGEN=ON"
|
|
||||||
"-Donnxruntime_USE_MPI=ON"
|
|
||||||
"-Deigen_SOURCE_PATH=${eigen.src}"
|
|
||||||
"-DFETCHCONTENT_SOURCE_DIR_ABSEIL_CPP=${abseil-cpp.src}"
|
"-DFETCHCONTENT_SOURCE_DIR_ABSEIL_CPP=${abseil-cpp.src}"
|
||||||
"-Donnxruntime_USE_DNNL=YES"
|
"-DFETCHCONTENT_SOURCE_DIR_DATE=${howard-hinnant-date}"
|
||||||
|
"-DFETCHCONTENT_SOURCE_DIR_EIGEN=${eigen}"
|
||||||
|
"-DFETCHCONTENT_SOURCE_DIR_FLATBUFFERS=${flatbuffers}"
|
||||||
|
"-DFETCHCONTENT_SOURCE_DIR_GOOGLE_NSYNC=${nsync.src}"
|
||||||
|
"-DFETCHCONTENT_SOURCE_DIR_MP11=${mp11}"
|
||||||
|
"-DFETCHCONTENT_SOURCE_DIR_ONNX=${python3Packages.onnx.src}"
|
||||||
|
"-DFETCHCONTENT_SOURCE_DIR_PYTORCH_CPUINFO=${pytorch_cpuinfo}"
|
||||||
|
"-DFETCHCONTENT_SOURCE_DIR_SAFEINT=${safeint}"
|
||||||
|
"-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS"
|
||||||
|
"-Donnxruntime_BUILD_SHARED_LIB=ON"
|
||||||
|
"-Donnxruntime_BUILD_UNIT_TESTS=ON"
|
||||||
|
"-Donnxruntime_ENABLE_LTO=ON"
|
||||||
|
"-Donnxruntime_USE_FULL_PROTOBUF=OFF"
|
||||||
] ++ lib.optionals pythonSupport [
|
] ++ lib.optionals pythonSupport [
|
||||||
"-Donnxruntime_ENABLE_PYTHON=ON"
|
"-Donnxruntime_ENABLE_PYTHON=ON"
|
||||||
];
|
];
|
||||||
|
@ -103,6 +158,9 @@ stdenv.mkDerivation rec {
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace cmake/libonnxruntime.pc.cmake.in \
|
substituteInPlace cmake/libonnxruntime.pc.cmake.in \
|
||||||
--replace '$'{prefix}/@CMAKE_INSTALL_ @CMAKE_INSTALL_
|
--replace '$'{prefix}/@CMAKE_INSTALL_ @CMAKE_INSTALL_
|
||||||
|
'' + lib.optionalString (stdenv.hostPlatform.system == "aarch64-linux") ''
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/226734#issuecomment-1663028691
|
||||||
|
rm -v onnxruntime/test/optimizer/nhwc_transformer_test.cc
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postBuild = lib.optionalString pythonSupport ''
|
postBuild = lib.optionalString pythonSupport ''
|
||||||
|
@ -118,7 +176,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit protobuf;
|
protobuf = protobuf3_21;
|
||||||
tests = lib.optionalAttrs pythonSupport {
|
tests = lib.optionalAttrs pythonSupport {
|
||||||
python = python3Packages.onnxruntime;
|
python = python3Packages.onnxruntime;
|
||||||
};
|
};
|
||||||
|
@ -140,6 +198,6 @@ stdenv.mkDerivation rec {
|
||||||
# https://github.com/microsoft/onnxruntime/blob/master/BUILD.md#architectures
|
# https://github.com/microsoft/onnxruntime/blob/master/BUILD.md#architectures
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ jonringer puffnfresh ck3d ];
|
maintainers = with maintainers; [ jonringer puffnfresh ck3d cbourjau ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ lib
|
{ lib
|
||||||
|
, stdenv
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
, pythonRelaxDepsHook
|
, pythonRelaxDepsHook
|
||||||
|
@ -7,6 +8,7 @@
|
||||||
, numpy
|
, numpy
|
||||||
, packaging
|
, packaging
|
||||||
, oneDNN
|
, oneDNN
|
||||||
|
, re2
|
||||||
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -34,8 +36,9 @@ buildPythonPackage {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
autoPatchelfHook
|
|
||||||
pythonRelaxDepsHook
|
pythonRelaxDepsHook
|
||||||
|
] ++ lib.optionals stdenv.isLinux [
|
||||||
|
autoPatchelfHook
|
||||||
];
|
];
|
||||||
|
|
||||||
# This project requires fairly large dependencies such as sympy which we really don't always need.
|
# This project requires fairly large dependencies such as sympy which we really don't always need.
|
||||||
|
@ -48,6 +51,7 @@ buildPythonPackage {
|
||||||
# Libraries are not linked correctly.
|
# Libraries are not linked correctly.
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
oneDNN
|
oneDNN
|
||||||
|
re2
|
||||||
onnxruntime.protobuf
|
onnxruntime.protobuf
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,10 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
sourceRoot = "source/src/cpp";
|
sourceRoot = "source/src/cpp";
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./fix-compilation-with-newer-onnxruntime.patch
|
||||||
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace CMakeLists.txt \
|
substituteInPlace CMakeLists.txt \
|
||||||
--replace "/usr/local/include/onnxruntime" "${onnxruntime}"
|
--replace "/usr/local/include/onnxruntime" "${onnxruntime}"
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
diff --git a/src/cpp/synthesize.hpp b/src/cpp/synthesize.hpp
|
||||||
|
index ef61aef..4c7db7a 100644
|
||||||
|
--- a/synthesize.hpp
|
||||||
|
+++ b/synthesize.hpp
|
||||||
|
@@ -119,11 +119,11 @@ void synthesize(SynthesisConfig &synthesisConfig, ModelSession &session,
|
||||||
|
|
||||||
|
// Clean up
|
||||||
|
for (size_t i = 0; i < outputTensors.size(); i++) {
|
||||||
|
- Ort::OrtRelease(outputTensors[i].release());
|
||||||
|
+ Ort::detail::OrtRelease(outputTensors[i].release());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < inputTensors.size(); i++) {
|
||||||
|
- Ort::OrtRelease(inputTensors[i].release());
|
||||||
|
+ Ort::detail::OrtRelease(inputTensors[i].release());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} // namespace larynx
|
|
@ -5956,7 +5956,7 @@ with pkgs;
|
||||||
online-judge-tools = with python3.pkgs; toPythonApplication online-judge-tools;
|
online-judge-tools = with python3.pkgs; toPythonApplication online-judge-tools;
|
||||||
|
|
||||||
onnxruntime = callPackage ../development/libraries/onnxruntime {
|
onnxruntime = callPackage ../development/libraries/onnxruntime {
|
||||||
protobuf = protobuf3_19;
|
inherit (darwin.apple_sdk.frameworks) Foundation;
|
||||||
};
|
};
|
||||||
|
|
||||||
xkbd = callPackage ../applications/misc/xkbd { };
|
xkbd = callPackage ../applications/misc/xkbd { };
|
||||||
|
|
Loading…
Reference in a new issue