diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-12-06 19:57:55 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-02-08 13:48:30 +0000 |
commit | bf3aadfdd39aa197e18bade671fab6726349ffa4 (patch) | |
tree | 698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/development/libraries/onnxruntime | |
parent | f4afc5a01d9539ce09e47494e679c51f80723d07 (diff) | |
parent | 99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff) | |
download | nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2 nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip |
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/onnxruntime')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/onnxruntime/default.nix | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix new file mode 100644 index 000000000000..e3ef22676412 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix @@ -0,0 +1,117 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, fetchurl +, pkg-config +, cmake +, python3 +, libpng +, zlib +, eigen +, protobuf +, howard-hinnant-date +, nlohmann_json +, boost +, oneDNN +, gtest +}: + +let + # prefetch abseil + # Note: keep URL in sync with `cmake/external/abseil-cpp.cmake` + abseil = fetchurl { + url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.zip"; + sha256 = "sha256-pFZ/8C+spnG5XjHTFbqxi0K2xvGmDpHG6oTlohQhEsI="; + }; +in +stdenv.mkDerivation rec { + pname = "onnxruntime"; + version = "1.12.1"; + + src = fetchFromGitHub { + owner = "microsoft"; + repo = "onnxruntime"; + rev = "v${version}"; + sha256 = "sha256-wwllEemiHTp9aJcCd1gsTS4WUVMp5wW+4i/+6DzmAeM="; + 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=0185531906bda3a9aba93bbb0f3dcfeb0ae671ad"; + sha256 = "sha256-58RBrQnAWNtc/1pmFs+PkZ6qCsL1LfMY3P0exMKzotA="; + }) + ]; + + nativeBuildInputs = [ + cmake + pkg-config + python3 + gtest + ]; + + buildInputs = [ + libpng + zlib + protobuf + howard-hinnant-date + nlohmann_json + boost + oneDNN + ]; + + # TODO: build server, and move .so's to lib output + outputs = [ "out" "dev" ]; + + enableParallelBuilding = true; + + cmakeDir = "../cmake"; + + cmakeFlags = [ + "-Donnxruntime_PREFER_SYSTEM_LIB=ON" + "-Donnxruntime_BUILD_SHARED_LIB=ON" + "-Donnxruntime_ENABLE_LTO=ON" + "-Donnxruntime_BUILD_UNIT_TESTS=ON" + "-Donnxruntime_USE_PREINSTALLED_EIGEN=ON" + "-Donnxruntime_USE_MPI=ON" + "-Deigen_SOURCE_PATH=${eigen.src}" + "-Donnxruntime_USE_DNNL=YES" + ]; + + doCheck = true; + + postPatch = '' + substituteInPlace cmake/external/abseil-cpp.cmake \ + --replace "${abseil.url}" "${abseil}" + ''; + + postInstall = '' + # perform parts of `tools/ci_build/github/linux/copy_strip_binary.sh` + install -m644 -Dt $out/include \ + ../include/onnxruntime/core/framework/provider_options.h \ + ../include/onnxruntime/core/providers/cpu/cpu_provider_factory.h \ + ../include/onnxruntime/core/session/onnxruntime_*.h + ''; + + meta = with lib; { + description = "Cross-platform, high performance scoring engine for ML models"; + longDescription = '' + ONNX Runtime is a performance-focused complete scoring engine + for Open Neural Network Exchange (ONNX) models, with an open + extensible architecture to continually address the latest developments + in AI and Deep Learning. ONNX Runtime stays up to date with the ONNX + standard with complete implementation of all ONNX operators, and + supports all ONNX releases (1.2+) with both future and backwards + compatibility. + ''; + homepage = "https://github.com/microsoft/onnxruntime"; + changelog = "https://github.com/microsoft/onnxruntime/releases/tag/v${version}"; + # https://github.com/microsoft/onnxruntime/blob/master/BUILD.md#architectures + platforms = platforms.unix; + license = licenses.mit; + maintainers = with maintainers; [ jonringer puffnfresh ck3d ]; + }; +} |