gnu: Add xtensor-benchmark.

* gnu/packages/algebra.scm (xtensor-benchmark): New variable.
This commit is contained in:
Ludovic Courtès 2021-12-03 23:27:47 +01:00
parent f5873949f3
commit 182b97dac0
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1169,6 +1169,45 @@ (define-public xtensor
@end itemize") @end itemize")
(license license:bsd-3))) (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 (define-public gap
(package (package
(name "gap") (name "gap")