Subject: Re: [PATCH] gnu: ci: Build tuned packages for common baselines.

From: Efraim Flashner <[email-masked]>
Date: Tue, 12 Dec 2023 13:27:19 +0200

On Mon, Dec 11, 2023 at 10:37:26PM +0100, Ludovic Courtès wrote:
> Hi,
> 
> Efraim Flashner <[email-masked]> skribis:
> 
> > * gnu/ci.scm (%x86-64-micro-architectures): Replace specific
> > micro-architectures with generic ones.
> >
> > Change-Id: Iee2f65376a00ad2ee5fb393c2e64c07f866d8116
> > ---
> >  gnu/ci.scm | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/gnu/ci.scm b/gnu/ci.scm
> > index 279dd4d910..5c093ae135 100644
> > --- a/gnu/ci.scm
> > +++ b/gnu/ci.scm
> > @@ -372,7 +372,7 @@ (define package->job
> >  
> >  (define %x86-64-micro-architectures
> >    ;; Micro-architectures for which we build tuned variants.
> > -  '("westmere" "ivybridge" "haswell" "skylake" "skylake-avx512"))
> > +  '("x86-64-v2" "x86-64-v3" "x86-64-v4"))
> 
> Right now, on my laptop, I get:
> 
> --8<---------------cut here---------------start------------->8---
> $ guix build gsl -n --tune
> guix build: tuning [email-masked] for CPU skylake
> substitute: updating substitutes from 'http://192.168.1.48:8123'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> 1.5 MB would be downloaded:
>   /gnu/store/kx060kry6ka7khzganfcqk98agqp226i-gsl-2.7.1
> $ guix describe
> Generation 284  Dec 10 2023 23:34:41    (current)
>   guix a90bc8b
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: a90bc8b6a82e094b10488030532cf4cd690ce57e
> --8<---------------cut here---------------end--------------->8---
> 
> Which is nice!
> 
> With the proposed change, I’d no longer get substitutes.
> 
> So perhaps we could keep the common Intel variants in addition to the
> SysV psABI generic names?
> 
> Maybe we can drop “westmere” now since it’s relatively old.

I'm not sure how we'd determine what would count as common.  I think if
we added a '--tune=close-enough' and used cpu->micro-architecture-level
or gcc-architecture->micro-architecture-level from (guix cpu) to choose
x86_64-v[234] that would count more as common than the list above :P.

westmere and ivybridge didn't make the cut in (guix cpu), so they'd
never get chosen from '--tune'.

-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted