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 |
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’.
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'.
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 --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."