[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
10/14: gnu: Add ceres-solver-benchmarks.
From: |
guix-commits |
Subject: |
10/14: gnu: Add ceres-solver-benchmarks. |
Date: |
Sat, 1 Jan 2022 09:57:13 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 6b704123709d29cdd7e2892b630edc3c7afc1566
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri Dec 3 23:29:39 2021 +0100
gnu: Add ceres-solver-benchmarks.
* gnu/packages/maths.scm (ceres-solver-benchmarks): New variable.
---
gnu/packages/maths.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ba9b6cb415..efc64a7c48 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2480,6 +2480,49 @@ can solve two kinds of problems:
;; Mark as tunable to take advantage of SIMD code in Eigen.
(properties `((tunable? . #t)))))
+(define-public ceres-solver-benchmarks
+ (package
+ (inherit ceres)
+ (name "ceres-solver-benchmarks")
+ (arguments
+ '(#:modules ((ice-9 popen)
+ (ice-9 rdelim)
+ (guix build utils)
+ (guix build cmake-build-system))
+
+ #: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 flags
+ (string-tokenize
+ (read-line (open-pipe* OPEN_READ
+ "pkg-config" "eigen3"
+ "--cflags"))))
+
+ (define (compile-file file)
+ (let ((source (string-append file ".cc")))
+ (format #t "building '~a'...~%" file)
+ (apply invoke "c++" "-fopenmp" "-O2" "-g"
"-DNDEBUG"
+ source "-lceres" "-lbenchmark" "-lglog"
+ "-pthread"
+ "-o" (string-append bin "/" file)
+ "-I" ".." flags)))
+
+ (mkdir-p bin)
+ (with-directory-excursion "internal/ceres"
+ (for-each compile-file
+ '("small_blas_gemm_benchmark"
+ "small_blas_gemv_benchmark"
+ "autodiff_cost_function_benchmark"))))))
+ (delete 'check)
+ (delete 'install))))
+ (inputs (modify-inputs (package-inputs ceres)
+ (prepend googlebenchmark ceres)))
+ (synopsis "Benchmarks of the Ceres optimization problem solver")))
+
;; For a fully featured Octave, users are strongly recommended also to install
;; the following packages: less, ghostscript, gnuplot.
(define-public octave-cli
- 07/14: gnu: Add xsimd-benchmark., (continued)
- 07/14: gnu: Add xsimd-benchmark., guix-commits, 2022/01/01
- 02/14: gnu: gcc: Add 'compiler-cpu-architectures' property., guix-commits, 2022/01/01
- 11/14: gnu: libfive: Mark as tunable., guix-commits, 2022/01/01
- 12/14: gnu: prusa-slicer: Mark as tunable., guix-commits, 2022/01/01
- 03/14: gnu: clang: Add 'compiler-cpu-architectures' property., guix-commits, 2022/01/01
- 04/14: transformations: Add '--tune'., guix-commits, 2022/01/01
- 08/14: gnu: Add xtensor-benchmark., guix-commits, 2022/01/01
- 06/14: gnu: Add eigen-benchmarks., guix-commits, 2022/01/01
- 09/14: gnu: ceres-solver: Mark as tunable., guix-commits, 2022/01/01
- 14/14: news: Add entry about '--tune'., guix-commits, 2022/01/01
- 10/14: gnu: Add ceres-solver-benchmarks.,
guix-commits <=
- 13/14: gnu: gsl: Add 'tunable?' property., guix-commits, 2022/01/01