guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: build system option to allow CPU optimizations?


From: Maxim Cournoyer
Subject: Re: build system option to allow CPU optimizations?
Date: Mon, 13 Dec 2021 22:36:47 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hi Ludovic,

Ludovic Courtès <ludovic.courtes@inria.fr> writes:

> Hi,
>
> zimoun <zimon.toutoune@gmail.com> skribis:
>
>> On Wed, 24 Nov 2021 at 13:10, Ricardo Wurmus <rekado@elephly.net> wrote:
>>
>>> The build phases that patch out these features would have to check 
>>> for that build system option, much like they check the TESTS? 
>>> option before attempting to run tests.
>>
>> Then it could be a transformation.   The idea sounds good to me.
>
> I’ve been working on it last week with my HPC hat on.
>
> To be clear, I think in may cases, passing ‘-march’ like you suggest is
> the wrong approach; instead software should use (and usually does use)
> function multi-versioning:
>
>   https://hpc.guix.info/blog/2018/01/pre-built-binaries-vs-performance/
>
> I found one case though where this is not possible: C++ header-only
> libraries such as Eigen contain hand-optimized vectorized routines,
> selected at build time, but we end up compiling Eigen users as the
> x86_64/AArch64 baseline, which is a waste.  (If you do know of other
> problematic cases, I’m interested in taking a look!)

I think that 'atlas' is such an example of a package that uses
multi-versioning but fails to build reproducibly depending on the exact
CPU it was built.  I've reported that here [0].

[0]  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51536

Thank you,

Maxim



reply via email to

[Prev in Thread] Current Thread [Next in Thread]