summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-12-03 23:27:31 +0100
committerLudovic Courtès <ludo@gnu.org>2021-12-16 18:15:21 +0100
commitfabde2d066ac1d151687994d0debd0394fa34ddf (patch)
tree12053e0f46c1b392cdf91fc62d736eb597656bef
parent64f869a4bb9fcc579b623d625d21b65b041c22a1 (diff)
downloadguix-fabde2d066ac1d151687994d0debd0394fa34ddf.tar.gz
gnu: Add xsimd-benchmark.
* gnu/packages/cpp.scm (xsmimd-benchmark): New variable.
-rw-r--r--gnu/packages/cpp.scm23
1 files changed, 23 insertions, 0 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 718fb20652..da26a4e346 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -300,6 +300,29 @@ It also provides accelerated implementation of common mathematical functions
 operating on batches.")
     (license license:bsd-3)))
 
+(define-public xsmimd-benchmark
+  (package
+    (inherit xsimd)
+    (name "xsimd-benchmark")
+    (arguments
+     `(#:configure-flags (list "-DBUILD_BENCHMARK=ON")
+       #:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'remove-march=native
+                    (lambda _
+                      (substitute* "benchmark/CMakeLists.txt"
+                        (("-march=native") ""))))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; Install nothing but the executable.
+                      (let ((out (assoc-ref outputs "out")))
+                        (install-file "benchmark/benchmark_xsimd"
+                                      (string-append out "/bin"))))))))
+    (synopsis "Benchmark of the xsimd library")
+
+    ;; Mark as tunable to take advantage of SIMD code in xsimd/xtensor.
+    (properties '((tunable? . #t)))))
+
 (define-public chaiscript
   (package
     (name "chaiscript")