mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-18 00:00:32 +02:00
gnu: Add onnxruntime.
* gnu/packages/machine-learning.scm (onnxruntime): New variable.
This commit is contained in:
committed by
Sharlatan Hellseher
parent
fcbfb5b140
commit
874eba31ac
@@ -17,7 +17,7 @@
|
||||
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
|
||||
;;; Copyright © 2020-2025 Vinicius Monego <monego@posteo.net>
|
||||
;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2022, 2023, 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;; Copyright © 2022-2025 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;; Copyright © 2022 Kiran Shila <me@kiranshila.com>
|
||||
;;; Copyright © 2022 Wiktor Zelazny <wzelazny@vurv.cz>
|
||||
;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
|
||||
@@ -76,6 +76,7 @@
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages calendar)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
@@ -1831,6 +1832,139 @@ aim is to provide all such passes along with ONNX so that they can be re-used
|
||||
with a single function call.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public onnxruntime
|
||||
(package
|
||||
(name "onnxruntime")
|
||||
(version "1.22.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/microsoft/onnxruntime")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0z2s79l4wdilssw9lmj319ypyyqi2y0dx0fpwr2yhq8bax3ci50n"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:modules '((guix build cmake-build-system)
|
||||
(guix build utils)
|
||||
((guix build pyproject-build-system) #:prefix py:))
|
||||
#:imported-modules (append %cmake-build-system-modules
|
||||
%pyproject-build-system-modules)
|
||||
#:configure-flags
|
||||
#~(list "-Donnxruntime_BUILD_UNIT_TESTS=OFF"
|
||||
"-Donnxruntime_BUILD_SHARED_LIB=ON"
|
||||
"-Donnxruntime_ENABLE_LTO=ON"
|
||||
"-Donnxruntime_ENABLE_PYTHON=ON"
|
||||
"-Donnxruntime_USE_FULL_PROTOBUF=OFF"
|
||||
;; XXX: Fixes build with gcc@14.
|
||||
"-DCMAKE_CXX_FLAGS=-Wl,-z,noexecstack")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "cmake")))
|
||||
(add-after 'unpack 'relax-dependencies
|
||||
(lambda _
|
||||
(with-output-to-file "cmake/external/eigen.cmake"
|
||||
(lambda _
|
||||
(display "find_package(Eigen3 REQUIRED)\n")))
|
||||
(substitute* "cmake/external/abseil-cpp.cmake"
|
||||
(("20240722")
|
||||
(car (string-split #$(package-version
|
||||
(this-package-input "abseil-cpp"))
|
||||
#\.))))))
|
||||
(add-after 'install 'build-python
|
||||
(lambda _
|
||||
(invoke "python3" "../setup.py" "bdist_wheel")))
|
||||
(add-after 'build-python 'install-python
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
((assoc-ref py:%standard-phases 'install)
|
||||
#:inputs inputs
|
||||
#:outputs `(("out" . ,#$output:python)))))
|
||||
(add-after 'install-python 'add-install-to-pythonpath
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
((assoc-ref py:%standard-phases 'add-install-to-pythonpath)
|
||||
#:inputs inputs
|
||||
#:outputs `(("out" . ,#$output:python)))))
|
||||
(delete 'check)
|
||||
(add-after 'add-install-to-pythonpath 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(with-directory-excursion "../onnxruntime/test/python"
|
||||
((assoc-ref py:%standard-phases 'check)
|
||||
#:tests? tests?
|
||||
#:test-flags
|
||||
`(;; XXX: NotImplementedError
|
||||
"--ignore-glob=quantization/*"
|
||||
;; XXX: These tests require transformer models or have
|
||||
;; import issues.
|
||||
"--ignore=transformers/test_generation.py"
|
||||
"--ignore=transformers/test_gpt2_benchmark.py"
|
||||
"--ignore=transformers/test_gpt2_to_onnx.py"
|
||||
"--ignore=transformers/test_optimizer_huggingface_bert.py"
|
||||
"--ignore=transformers/test_parity_huggingface_gpt_attention.py"
|
||||
"--ignore=transformers/test_shape_infer_helper.py"
|
||||
;; XXX: onnxscript ModuleNotFound
|
||||
"--ignore=transformers/test_gelu_fusions.py"
|
||||
"--ignore=transformers/test_gemma3_vision.py"
|
||||
;; XXX: Other failing tests.
|
||||
"-k" ,(string-append
|
||||
"not test_gelu_is_fused_by_default"
|
||||
" and not test_inverse"))))))
|
||||
(add-after 'check 'python-sanity-check
|
||||
(lambda* (#:key tests? inputs #:allow-other-keys)
|
||||
((assoc-ref py:%standard-phases 'sanity-check)
|
||||
#:inputs `(("sanity-check.py" . ,#$(default-sanity-check.py))
|
||||
,@inputs)
|
||||
#:outputs `(("out" . ,#$output:python))))))))
|
||||
(outputs (list "out" "python"))
|
||||
(inputs
|
||||
(list abseil-cpp
|
||||
boost
|
||||
cpuinfo
|
||||
dlpack
|
||||
c++-gsl
|
||||
date
|
||||
eigen-for-onnxruntime
|
||||
flatbuffers-23.5
|
||||
googletest
|
||||
nlohmann-json
|
||||
onnx
|
||||
protobuf
|
||||
pybind11
|
||||
re2-next
|
||||
safeint
|
||||
zlib))
|
||||
(native-inputs
|
||||
(list pkg-config
|
||||
python-einops
|
||||
python-wrapper
|
||||
python-numpy
|
||||
python-parameterized
|
||||
python-psutil
|
||||
python-pytest
|
||||
python-pytorch
|
||||
python-sentencepiece
|
||||
python-setuptools-next))
|
||||
(propagated-inputs
|
||||
(list python-coloredlogs
|
||||
python-flatbuffers
|
||||
python-protobuf
|
||||
python-sympy))
|
||||
(home-page "https://github.com/microsoft/onnxruntime")
|
||||
(synopsis "Cross-platform, high performance scoring engine for ML models")
|
||||
(description
|
||||
"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.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public rxcpp
|
||||
(package
|
||||
(name "rxcpp")
|
||||
|
||||
Reference in New Issue
Block a user