[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures
From: |
Ludovic Courtès |
Subject: |
[bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures |
Date: |
Tue, 07 Dec 2021 10:02:46 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hi,
Mathieu Othacehe <othacehe@gnu.org> skribis:
> Yes sure, I agree that this refactoring can be done later just something
> that we can keep in mind. Having a look to Nix, looks like they are
> also maintaining some kind of architecture list:
>
> https://github.com/NixOS/nixpkgs/blob/master/lib/systems/architectures.nix
Interesting. The list of features might be an idealized view, compared
what I’ve seen in GCC.
I wonder how this is supposed to be used. Their compiler wrapper
(build-support/cc-wrapper/default.nix) passes
‘-march=${targetPlatform.gcc.arch}’ so maybe users can somehow override
that ‘gcc.arch’ attribute? Any Nix-savvy person here?
It also has a nice compatibility list:
--8<---------------cut here---------------start------------->8---
# older compilers (for example bootstrap's GCC 5) fail with
-march=too-modern-cpu
isGccArchSupported = arch:
if isGNU then
{ # Intel
skylake = versionAtLeast ccVersion "6.0";
skylake-avx512 = versionAtLeast ccVersion "6.0";
cannonlake = versionAtLeast ccVersion "8.0";
icelake-client = versionAtLeast ccVersion "8.0";
icelake-server = versionAtLeast ccVersion "8.0";
cascadelake = versionAtLeast ccVersion "9.0";
cooperlake = versionAtLeast ccVersion "10.0";
tigerlake = versionAtLeast ccVersion "10.0";
knm = versionAtLeast ccVersion "8.0";
# AMD
znver1 = versionAtLeast ccVersion "6.0";
znver2 = versionAtLeast ccVersion "9.0";
znver3 = versionAtLeast ccVersion "11.0";
}.${arch} or true
else if isClang then
{ # Intel
cannonlake = versionAtLeast ccVersion "5.0";
icelake-client = versionAtLeast ccVersion "7.0";
icelake-server = versionAtLeast ccVersion "7.0";
knm = versionAtLeast ccVersion "7.0";
# AMD
znver1 = versionAtLeast ccVersion "4.0";
znver2 = versionAtLeast ccVersion "9.0";
}.${arch} or true
else
false;
--8<---------------cut here---------------end--------------->8---
The compiler wrapper in this patch series doesn’t know what compiler
it’s wrapping (it’s just calling the next one in $PATH), so it can’t
really do this sort of things.
We could do it differently but I liked the simplicity of just dropping
the wrapper in front of $PATH.
Thanks,
Ludo’.
- [bug#52283] [PATCH 04/10] gnu: Add eigen-benchmarks., (continued)
- [bug#52283] [PATCH 04/10] gnu: Add eigen-benchmarks., Ludovic Courtès, 2021/12/04
- [bug#52283] [PATCH 05/10] gnu: Add xsimd-benchmark., Ludovic Courtès, 2021/12/04
- [bug#52283] [PATCH 07/10] gnu: ceres-solver: Mark as tunable., Ludovic Courtès, 2021/12/04
- [bug#52283] [PATCH 08/10] gnu: Add ceres-solver-benchmarks., Ludovic Courtès, 2021/12/04
- [bug#52283] [PATCH 10/10] gnu: prusa-slicer: Mark as tunable., Ludovic Courtès, 2021/12/04
- [bug#52283] [PATCH 09/10] gnu: libfive: Mark as tunable., Ludovic Courtès, 2021/12/04
- [bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures, Mathieu Othacehe, 2021/12/05
- [bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures, Ludovic Courtès, 2021/12/06
[bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures, Ludovic Courtès, 2021/12/04
[bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures, Ludovic Courtès, 2021/12/07
- [bug#52283] [PATCH v2 00/12] Tuning packages for CPU micro-architectures, Ludovic Courtès, 2021/12/16
- [bug#52283] [PATCH v2 02/12] gnu: gcc: Add 'compiler-cpu-architectures' property., Ludovic Courtès, 2021/12/16
- [bug#52283] [PATCH v2 04/12] transformations: Add '--tune'., Ludovic Courtès, 2021/12/16
- [bug#52283] [PATCH v2 01/12] Add (guix cpu)., Ludovic Courtès, 2021/12/16
- [bug#52283] [PATCH v2 03/12] gnu: clang: Add 'compiler-cpu-architectures' property., Ludovic Courtès, 2021/12/16
- [bug#52283] [PATCH v2 05/12] ci: Add extra jobs for tunable packages., Ludovic Courtès, 2021/12/16
- [bug#52283] [PATCH v2 06/12] gnu: Add eigen-benchmarks., Ludovic Courtès, 2021/12/16