diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-12-03 23:27:47 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-01-01 15:23:53 +0100 |
commit | 182b97dac00d57f917e87d7f03e22f56bc7927d0 (patch) | |
tree | 0867c96f39ce5309834ba1a38a3ed358ed53a901 | |
parent | f5873949f36e7a6b8c045e01c724c1307a9217df (diff) | |
download | guix-182b97dac00d57f917e87d7f03e22f56bc7927d0.tar guix-182b97dac00d57f917e87d7f03e22f56bc7927d0.tar.gz |
gnu: Add xtensor-benchmark.
* gnu/packages/algebra.scm (xtensor-benchmark): New variable.
-rw-r--r-- | gnu/packages/algebra.scm | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index e92ef4bf3f..c129e0f4e0 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1169,6 +1169,45 @@ xtensor provides: @end itemize") (license license:bsd-3))) +(define-public xtensor-benchmark + (package + (inherit xtensor) + (name "xtensor-benchmark") + (arguments + `(#:configure-flags (list "-DBUILD_BENCHMARK=ON" + "-DDOWNLOAD_GBENCHMARK=OFF") + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-march=native + (lambda _ + (substitute* "benchmark/CMakeLists.txt" + (("-march=native") "")))) + (add-after 'unpack 'link-with-googlebenchmark + (lambda _ + (substitute* "benchmark/CMakeLists.txt" + (("find_package\\(benchmark.*" all) + (string-append + all "\n" + "set(GBENCHMARK_LIBRARIES benchmark)\n"))))) + (replace 'build + (lambda _ + (invoke "make" "benchmark_xtensor" "-j" + (number->string (parallel-job-count))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; Install nothing but the executable. + (let ((out (assoc-ref outputs "out"))) + (install-file "benchmark/benchmark_xtensor" + (string-append out "/bin")))))))) + (synopsis "Benchmarks of the xtensor library") + (native-inputs '()) + (inputs + (modify-inputs (package-native-inputs xtensor) + (prepend googlebenchmark xsimd))) + + ;; Mark as tunable to take advantage of SIMD code in xsimd/xtensor. + (properties '((tunable? . #t))))) + (define-public gap (package (name "gap") |