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 /gnu/packages/algebra.scm | |
| parent | 6756c64a8f1a22f74ea3bcb8bfb00f229ad6f6c5 (diff) | |
gnu: Add eigen-benchmarks.
* gnu/packages/algebra.scm (eigen-benchmarks): New variable.
Diffstat (limited to 'gnu/packages/algebra.scm')
| -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")) | 
