summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorDavid Elsing <david.elsing@posteo.net>2024-03-23 22:04:59 +0000
committerLudovic Courtès <ludo@gnu.org>2024-06-18 11:44:09 +0200
commit35f4f3313842a670befebb7d4cb68b6de639af9e (patch)
tree27a5e181dfeaa58295be7f55d5f985933b09be4d /gnu/packages
parentca63ef4f5b62bd6b3adcee6e9f00d69be3e26398 (diff)
gnu: Add qnnpack.
* gnu/packages/machine-learning.scm (qnnpack): New variable.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/machine-learning.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 837ff7df11..ae54fe5bbf 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4039,6 +4039,57 @@ and Darknet.")
(supported-systems '("x86_64-linux" "armhf-linux" "aarch64-linux"))
(license license:bsd-2))))
+(define-public qnnpack
+ (let ((commit "7d2a4e9931a82adc3814275b6219a03e24e36b4c")
+ (revision "0"))
+ (package
+ (name "qnnpack")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pytorch/qnnpack")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1dgzriiaz9arsrfwhx42y4l74wbzn6xvdmllfb66v4pmvi5gpxc5"))
+ (modules '((guix build utils)))
+ (snippet
+ '(delete-file-recursively "deps"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; The shared library build fails with linker errors, so we build the
+ ;; static library with -fPIC as in the bundled PyTorch version.
+ #:configure-flags
+ ''("-DQNNPACK_LIBRARY_TYPE=static"
+ "-DCMAKE_POSITION_INDEPENDENT_CODE=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-cmake
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("IF.*SOURCE_DIR.*")
+ "IF(FALSE)\n")
+ (("IF\\(NOT TARGET.*")
+ "IF(FALSE)\n")
+ (("TARGET_LINK_LIBRARIES.*(fxdiv|psimd|fp16)\\).*")
+ "")
+ (("(TARGET_LINK_LIBRARIES.*) fp16 (.*)" _ before after)
+ (string-append before " " after))))))))
+ (inputs (list clog cpuinfo fp16 fxdiv psimd pthreadpool))
+ (native-inputs (list googletest googlebenchmark))
+ (home-page "https://github.com/pytorch/qnnpack")
+ (synopsis "Quantized Neural Network PACKage")
+ (description "QNNPACK is a library for low-precision neural network
+inference. It contains the implementation of common neural network operators
+on quantized 8-bit tensors.")
+ (supported-systems
+ '("armv7-linux" "aarch64-linux" "i686-linux" "x86_64-linux"))
+ (license license:bsd-3))))
+
(define-public xnnpack
;; There's currently no tag on this repo.
(let ((version "0.0")