diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-12-03 23:27:09 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-01-01 15:23:25 +0100 |
commit | 6542e5713a38229f277021a0884cdb5bc7165575 (patch) | |
tree | 87f83511cf6d997fed3a01def28cfbc264f85970 | |
parent | 6756c64a8f1a22f74ea3bcb8bfb00f229ad6f6c5 (diff) | |
download | guix-6542e5713a38229f277021a0884cdb5bc7165575.tar.gz |
gnu: Add eigen-benchmarks.
* gnu/packages/algebra.scm (eigen-benchmarks): New variable.
-rw-r--r-- | gnu/packages/algebra.scm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 79785bd463..e92ef4bf3f 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1044,6 +1044,44 @@ features, and more.") ;; See 'COPYING.README' for details. (license license:mpl2.0))) +(define-public eigen-benchmarks + (package + (inherit eigen) + (name "eigen-benchmarks") + (arguments + '(#:phases (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (define (compile file) + (format #t "compiling '~a'...~%" file) + (let ((target + (string-append bin "/" + (basename file ".cpp")))) + (invoke "c++" "-o" target file + "-I" ".." "-O2" "-g" + "-lopenblas" "-Wl,--as-needed"))) + + (mkdir-p bin) + (with-directory-excursion "bench" + ;; There are more benchmarks, of varying quality. + ;; Here we pick some that appear to be useful. + (for-each compile + '("benchBlasGemm.cpp" + "benchCholesky.cpp" + ;;"benchEigenSolver.cpp" + "benchFFT.cpp" + "benchmark-blocking-sizes.cpp")))))) + (delete 'install)))) + (inputs (list boost openblas)) + + ;; Mark as tunable to take advantage of SIMD code in Eigen. + (properties '((tunable? . #t))) + + (synopsis "Micro-benchmarks of the Eigen linear algebra library"))) + (define-public eigen-for-tensorflow (let ((changeset "fd6845384b86") (revision "1")) |