mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-22 00:55:56 +02:00
gnu: Add onednn.
* gnu/packages/oneapi.scm (onednn): New variable. Change-Id: I10e5446aefea2978134495d25b9df504114a7530 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
committed by
Ludovic Courtès
parent
7fae1a6950
commit
496ee0c006
@@ -18,6 +18,9 @@
|
||||
|
||||
(define-module (gnu packages oneapi)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (guix build-system cmake)
|
||||
@@ -27,6 +30,80 @@
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils))
|
||||
|
||||
;;; Updates and replaces oneapi-dnnl in (gnu packages machine-learning)
|
||||
(define-public onednn
|
||||
;; See doc/build/build.md.
|
||||
(package
|
||||
(name "onednn")
|
||||
(version "3.9.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/uxlfoundation/oneDNN/")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0ybq8zb4dcd2g139gdq4bpv20v9jgws5d7ln3x4s0ydrmbgm2qwj"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 rdelim)))
|
||||
;; Copyright date used by code generation script
|
||||
(snippet
|
||||
'(for-each
|
||||
(lambda (file)
|
||||
(with-atomic-file-replacement
|
||||
file
|
||||
(lambda (in out)
|
||||
(let loop ((line (read-line in 'concat)))
|
||||
(if (string-contains line "Copyright")
|
||||
(display line out)
|
||||
(loop (read-line in 'concat)))))))
|
||||
'("include/oneapi/dnnl/dnnl_debug.h"
|
||||
"src/common/dnnl_debug_autogenerated.cpp"
|
||||
"tests/benchdnn/dnnl_debug_autogenerated.cpp"
|
||||
"tests/benchdnn/dnnl_debug.hpp")))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags ;see doc/build/build_options.md
|
||||
#~(list
|
||||
#$@(if (target-riscv64?)
|
||||
(list "-DDNNL_CPU_RUNTIME=SEQ")
|
||||
;; Default; also tbb and sycl.
|
||||
(list "-DDNNL_CPU_RUNTIME=OMP"))
|
||||
"-DDNNL_EXPERIMENTAL_UKERNEL=ON" ;Used in PyTorch
|
||||
"-DONEDNN_BUILD_GRAPH=OFF") ;See scripts/README.md
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
;; This test times out after 3600 seconds.
|
||||
(add-after 'unpack 'disable-matmul-testing
|
||||
(lambda _
|
||||
(substitute* "tests/benchdnn/benchdnn.cpp"
|
||||
(("matmul::bench.*") ";\n"))))
|
||||
;; See scripts/README.md.
|
||||
(add-after 'configure 'codegen
|
||||
(lambda _
|
||||
(with-directory-excursion "../source"
|
||||
;; Generate types.xml.
|
||||
(invoke "castxml" "--castxml-cc-gnu-c" "clang"
|
||||
"--castxml-output=1" "-Iinclude" "-I../build/include"
|
||||
"include/oneapi/dnnl/dnnl_types.h" "-o" "types.xml")
|
||||
;; Run generate_dnnl_debug.py.
|
||||
(invoke
|
||||
"python3" "scripts/generate_dnnl_debug.py" "types.xml")
|
||||
;; Generating format tags.
|
||||
;; Modifies include/oneapi/dnnl/dnnl.hpp
|
||||
(invoke "python3" "scripts/generate_format_tags.py")))))))
|
||||
(native-inputs
|
||||
(list castxml clang-17 googletest python-minimal-wrapper))
|
||||
(home-page "https://uxlfoundation.github.io/oneDNN/")
|
||||
(synopsis "Deep neural network library")
|
||||
(description
|
||||
"@acronym{OneDNN, OneAPI Deep Neural Network Library} is a cross-platform
|
||||
performance library of basic building blocks for deep learning applications.")
|
||||
(supported-systems %64bit-supported-systems)
|
||||
(license license:asl2.0)))
|
||||
|
||||
;;; Updates and replaces tbb in (gnu packages tbb)
|
||||
(define-public onetbb
|
||||
(package
|
||||
|
||||
Reference in New Issue
Block a user