GNU bug report logs - #52283
[PATCH 00/10] Tuning packages for CPU micro-architectures

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Sat, 4 Dec 2021 20:36:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #80 received at 52283 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 52283 <at> debbugs.gnu.org, Thiago Jung Bauermann <bauermann <at> kolabnow.com>
Subject: Re: [bug#52283] [PATCH 02/10] transformations: Add '--tune'.
Date: Thu, 09 Dec 2021 10:19:06 +0100
zimoun <zimon.toutoune <at> gmail.com> skribis:

> On Tue, 7 Dec 2021 at 15:52, Ludovic Courtès <ludovic.courtes <at> inria.fr> wrote:
>> zimoun <zimon.toutoune <at> gmail.com> skribis:

[...]

>> > I miss if the test suite is effectively run somewhere?
>>
>> Yes, for the default/generic/baseline package, when not using ‘--tune’.
>
> Assuming, the default/generic/baseline package is effectively built. :-)
>
> I imagine the scenario: I develop a new simulation tool, I package it
> for Guix, I share it; usually I run "guix shell -D" and do loop over
> "make" and "make check", then deploy using "guix build --tune".  My
> colleague fetches it and want to run it on another cluster, i.e., they
> run "guix build --tune".  The test suite for the generic/baseline is
> never run inside a clean environment.  And as we know, this isolated
> part allows to detect many common issues; which are often source of
> "it works for me, why does it not work for you?". ;-)

Sure, we can always come up with such scenarios.

>> > My questions are coming from Julia packages in mind, where the test
>> > suite is the only way to know all is fine.  And many times, add System
>> > Image for Julia had been discussed and basically this System Image is
>> > precompilation (generic one or specialized for micro-architecture).
>> > Therefore, maybe this new 'tune' transformation would fit the bill.
>> > :-)
>> >
>> > https://docs.julialang.org/en/v1/devdocs/sysimg/
>>
>> According to this page, ‘--tune’ won’t be necessary here because Julia
>> supports function multi-versioning for its “system image”:
>
> Yes, but from my understanding, the "baseline" cannot provide an image
> for all the micro-architectures, but only 'generic'.  Moreover, as you
> described elsewhere, we cannot know for sure whether the machine that
> hosts the daemon is able to run code for this specific
> micro-architecture.

With multi-versioning, the system image (AIUI) provides several versions
of the relevant code, one for each useful micro-architecture.  Such a
system image can be used anywhere because the right version of the code
will be picked up at run-time depending on the host CPU.

It’s The Right Thing, so no worries here!  We can take advantage of that
feature in our Julia package.

Thanks,
Ludo’.




This bug report was last modified 3 years and 137 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.