Message ID | 20211204203447.15200-1-ludo@gnu.org |
---|---|
Headers | show |
Series | Tuning packages for CPU micro-architectures | expand |
Ludovic Courtès <ludo@gnu.org> 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’.
Hi! To make it easier to test, I pushed this v1 as ‘wip-cpu-tuning’ so one can run, say: guix time-machine --branch=wip-cpu-tuning -- \ shell eigen-benchmarks --tune -- \ benchBlasGemm 16 16 16 100 100 Ludo’.