[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
- Re: build system option to allow CPU optimizations?,
Maxim Cournoyer <=