diff options
author | David Elsing <david.elsing@posteo.net> | 2024-03-23 22:05:00 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-06-18 11:44:17 +0200 |
commit | 3ef0b4e402c20c245040e773e466afbb5cdcdee3 (patch) | |
tree | d96ef1399dc69454ae38e6172a250808609a5472 /gnu | |
parent | 35f4f3313842a670befebb7d4cb68b6de639af9e (diff) | |
download | guix-3ef0b4e402c20c245040e773e466afbb5cdcdee3.tar guix-3ef0b4e402c20c245040e773e466afbb5cdcdee3.tar.gz |
gnu: Add foxi.
* gnu/packages/machine-learning.scm (foxi): New variable.
* gnu/packages/patches/foxi-fix-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/machine-learning.scm | 29 | ||||
-rw-r--r-- | gnu/packages/patches/foxi-fix-build.patch | 55 |
3 files changed, 85 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 3b3d6b6bfa..53547b63d9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1237,6 +1237,7 @@ dist_patch_DATA = \ %D%/packages/patches/foobillard++-pkg-config.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ + %D%/packages/patches/foxi-fix-build.patch \ %D%/packages/patches/fp16-implicit-double.patch \ %D%/packages/patches/fp16-system-libraries.patch \ %D%/packages/patches/fpc-reproducibility.patch \ diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index ae54fe5bbf..deb2974e2e 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -4235,6 +4235,35 @@ rich objects from one process to another while using the fastest transport for the tensors contained therein.") (license license:bsd-3)))) +(define-public foxi + (let + ((commit "c278588e34e535f0bb8f00df3880d26928038cad") + (revision "0")) + (package + (name "foxi") + (version (git-version "1.4.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/houseroad/foxi") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0q3ssm5hmmvwfwx87mnnajbavzgpahybw6rpn8ysr9r095dwgq5a")) + (patches (search-patches "foxi-fix-build.patch")))) + (build-system cmake-build-system) + (arguments + (list + ;; No tests + #:tests? #f)) + (home-page "https://github.com/houseroad/foxi") + (synopsis "ONNXIFI with Facebook Extension") + (description "ONNX Interface for Framework Integration is a cross-platform +API for loading and executing ONNX graphs on optimized backends. This package +contains facebook extensions and is used by PyTorch.") + (license license:expat)))) + ;; Please also update python-torchvision when updating this package. (define-public python-pytorch (package diff --git a/gnu/packages/patches/foxi-fix-build.patch b/gnu/packages/patches/foxi-fix-build.patch new file mode 100644 index 0000000000..d82090ad38 --- /dev/null +++ b/gnu/packages/patches/foxi-fix-build.patch @@ -0,0 +1,55 @@ +Taken from https://github.com/houseroad/foxi/pull/25. + +diff --git a/foxi/onnxifi_dummy.c b/foxi/onnxifi_dummy.c +index 2115af9..73e25fc 100644 +--- a/foxi/onnxifi_dummy.c ++++ b/foxi/onnxifi_dummy.c +@@ -103,7 +103,10 @@ ONNXIFI_PUBLIC ONNXIFI_CHECK_RESULT onnxStatus ONNXIFI_ABI onnxInitGraph( + const void* onnxModel, + uint32_t weightCount, + const onnxTensorDescriptorV1* weightDescriptors, +- onnxGraph* graph) { ++ onnxGraph* graph, ++ uint32_t maxSeqLength, ++ void* deferredWeightReader) { ++ + if (graph == NULL) { + return ONNXIFI_STATUS_INVALID_POINTER; + } +@@ -215,6 +218,8 @@ ONNXIFI_PUBLIC ONNXIFI_CHECK_RESULT onnxStatus ONNXIFI_ABI + onnxWaitEventFor(onnxEvent event, + uint32_t timeoutMs, + onnxEventState* eventState, +- onnxStatus* eventStatus) { ++ onnxStatus* eventStatus, ++ char* message, ++ size_t* messageLength) { + return ONNXIFI_STATUS_SUCCESS; + } +\ No newline at end of file +diff --git a/foxi/onnxifi_wrapper.c b/foxi/onnxifi_wrapper.c +index 98a9325..abe1440 100644 +--- a/foxi/onnxifi_wrapper.c ++++ b/foxi/onnxifi_wrapper.c +@@ -761,7 +761,9 @@ ONNXIFI_PUBLIC onnxStatus ONNXIFI_ABI onnxInitGraph( + const void* onnxModel, + uint32_t weightsCount, + const onnxTensorDescriptorV1* weightDescriptors, +- onnxGraph* graph) ++ onnxGraph* graph, ++ uint32_t maxSeqLength, ++ void* deferredWeightReader) + { + if (graph == NULL) { + return ONNXIFI_STATUS_INVALID_POINTER; +@@ -797,7 +799,9 @@ ONNXIFI_PUBLIC onnxStatus ONNXIFI_ABI onnxInitGraph( + onnxModel, + weightsCount, + weightDescriptors, +- &graph_wrapper->graph); ++ &graph_wrapper->graph, ++ maxSeqLength, ++ deferredWeightReader); + switch (status) { + case ONNXIFI_STATUS_SUCCESS: + case ONNXIFI_STATUS_FALLBACK: |