Subject: Re: bug#52283: [PATCH 00/10] Tuning packages for CPU micro-architectures

From: Ludovic Courtès <[email-masked]>
Date: Sat, 04 Dec 2021 22:11:49 +0100

Ludovic Courtès <[email-masked]> skribis:

> This is achieved not by passing ‘-march=native’, because the daemon
> might be running on a separate machine with a different CPU, but by
> identifying the ‘-march’ value corresponding to the host CPU and
> passing ‘-march’ to the compiler, via a wrapper.

Another argument in favor of this approach is verifiability, because
manifests record the argument to the ‘tune’ transformation option:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix shell eigen-benchmarks --tune
guix shell: tuning for CPU micro-architecture skylake
[env]$ guix package --export-manifest -p $GUIX_ENVIRONMENT
;; This "manifest" file can be passed to 'guix package -m' to reproduce
;; the content of your profile.  This is "symbolic": it only specifies
;; package names.  To reproduce the exact same profile, you also need to
;; capture the channels being used, as returned by "guix describe".
;; See the "Replicating Guix" section in the manual.

(use-modules (guix transformations))

(define transform1
  (options->transformation '((tune . "skylake"))))

(packages->manifest
  (list (transform1
          (specification->package "eigen-benchmarks"))))
--8<---------------cut here---------------end--------------->8---

Ludo’.