diff mbox series

[bug#67742] gnu: ci: Build tuned packages for common baselines.

Message ID 7c09a597a23276e1987898022ff7f0e145c9fd8a.1702194739.git.efraim@flashner.co.il
State New
Headers show
Series [bug#67742] gnu: ci: Build tuned packages for common baselines. | expand

Commit Message

Efraim Flashner Dec. 10, 2023, 7:52 a.m. UTC
* 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(-)


base-commit: 9c30fb27a42bf10a733ef5165df7869588f0b27c

Comments

Ludovic Courtès Dec. 11, 2023, 9:37 p.m. UTC | #1
Hi,

Efraim Flashner <efraim@flashner.co.il> 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 gsl@2.7.1 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.

WDYT?

Ludo’.
Efraim Flashner Dec. 12, 2023, 11:27 a.m. UTC | #2
On Mon, Dec 11, 2023 at 10:37:26PM +0100, Ludovic Courtès wrote:
> Hi,
> 
> Efraim Flashner <efraim@flashner.co.il> 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 gsl@2.7.1 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'.
Ludovic Courtès Dec. 18, 2023, 10:26 p.m. UTC | #3
Hello,

Efraim Flashner <efraim@flashner.co.il> skribis:

> On Mon, Dec 11, 2023 at 10:37:26PM +0100, Ludovic Courtès wrote:

[...]

>> >  (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 gsl@2.7.1 for CPU skylake

[...]

> 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.

Sure, but that’s not the case yet:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build gsl --tune -n 
guix build: tuning gsl@2.7.1 for CPU skylake
1.5 MB would be downloaded:
  /gnu/store/kx060kry6ka7khzganfcqk98agqp226i-gsl-2.7.1
--8<---------------cut here---------------end--------------->8---

So my suggestion was something like this:

  (define %x86-64-micro-architectures
    ;; Micro-architectures for which we build tuned variants.
    '("ivybridge" "haswell" "skylake" "skylake-avx512"
      "x86-64-v2" "x86-64-v3" "x86-64-v4"))

… so we don’t lose substitutes for “common” architectures.

Alternatively, we can go towards using x86-64-v* only, but in that case
we need to adjust the way ‘--tune’ (without arguments) guesses the
target architecture.

WDYT?

Ludo’.
diff mbox series

Patch

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"))
 
 (define (tuned-package-jobs store package system)
   "Return a list of jobs for PACKAGE tuned for SYSTEM's micro-architectures."