unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludovic.courtes@inria.fr>
To: zimoun <zimon.toutoune@gmail.com>
Cc: 52283@debbugs.gnu.org, Thiago Jung Bauermann <bauermann@kolabnow.com>
Subject: [bug#52283] [PATCH 02/10] transformations: Add '--tune'.
Date: Tue, 07 Dec 2021 15:52:44 +0100	[thread overview]
Message-ID: <875ys0jwlf.fsf@inria.fr> (raw)
In-Reply-To: <CAJ3okZ1ZH0zQV=cp3dRRL3AfLTmMccJHGL_sHyN4nEi6=pjRUA@mail.gmail.com> (zimoun's message of "Tue, 7 Dec 2021 11:32:25 +0100")

zimoun <zimon.toutoune@gmail.com> skribis:

> On Tue, 7 Dec 2021 at 09:06, Ludovic Courtès <ludovic.courtes@inria.fr> wrote:
>
>> The reason the test suite is skipped is because we cannot know for sure
>> whether the machine that hosts the daemon is able to run code for this
>> specific micro-architecture.
>
> Naive question: is it possible to effectively run it via emulation?

Not to my knowledge.

>> The test suite runs in the “baseline” package build anyway, so assuming
>> the compiler works fine, skipping the test suite on tuned builds is
>> okay.
>
> I miss if the test suite is effectively run somewhere?

Yes, for the default/generic/baseline package, when not using ‘--tune’.

> And "baseline" package build means the package built for generic
> architecture, right?

Correct.

> 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”:

  The system image can be compiled simultaneously for multiple CPU
  microarchitectures under the same instruction set architecture (ISA).
  Multiple versions of the same function may be created with minimum
  dispatch point inserted into shared functions in order to take
  advantage of different ISA extensions or other microarchitecture
  features.  The version that offers the best performance will be
  selected automatically at runtime based on available CPU features.

I guess we should follow the instructions at
<https://docs.julialang.org/en/v1/devdocs/sysimg/#Specifying-multiple-system-image-targets>
to build a system image that contains multiple versions of each
function.

Thanks,
Ludo’.




  reply	other threads:[~2021-12-07 14:53 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-04 20:34 [bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures Ludovic Courtès
2021-12-04 20:49 ` [bug#52283] [PATCH 01/10] Add (guix cpu) Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 02/10] transformations: Add '--tune' Ludovic Courtès
2021-12-06 23:18     ` Thiago Jung Bauermann via Guix-patches via
2021-12-07  8:04       ` Ludovic Courtès
2021-12-07 10:32         ` zimoun
2021-12-07 14:52           ` Ludovic Courtès [this message]
2021-12-07 15:52             ` zimoun
2021-12-09  9:19               ` Ludovic Courtès
2021-12-09 10:35                 ` zimoun
2021-12-10  8:49                   ` Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 03/10] ci: Add extra jobs for tunable packages Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 04/10] gnu: Add eigen-benchmarks Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 05/10] gnu: Add xsimd-benchmark Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 06/10] gnu: Add xtensor-benchmark Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 07/10] gnu: ceres-solver: Mark as tunable Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 08/10] gnu: Add ceres-solver-benchmarks Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 09/10] gnu: libfive: Mark as tunable Ludovic Courtès
2021-12-04 20:49   ` [bug#52283] [PATCH 10/10] gnu: prusa-slicer: " Ludovic Courtès
2021-12-05  8:37   ` [bug#52283] [PATCH 00/10] Tuning packages for CPU micro-architectures Mathieu Othacehe
2021-12-06 10:38     ` Ludovic Courtès
2021-12-06 12:47       ` zimoun
2021-12-07  8:39       ` Mathieu Othacehe
2021-12-07  9:02         ` Ludovic Courtès
2021-12-06 16:48     ` Ludovic Courtès
2021-12-04 21:11 ` Ludovic Courtès
2021-12-07  9:13 ` Ludovic Courtès
2021-12-16 17:58   ` [bug#52283] [PATCH v2 00/12] " Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 01/12] Add (guix cpu) Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 02/12] gnu: gcc: Add 'compiler-cpu-architectures' property Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 03/12] gnu: clang: " Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 04/12] transformations: Add '--tune' Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 05/12] ci: Add extra jobs for tunable packages Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 06/12] gnu: Add eigen-benchmarks Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 07/12] gnu: Add xsimd-benchmark Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 08/12] gnu: Add xtensor-benchmark Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 09/12] gnu: ceres-solver: Mark as tunable Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 10/12] gnu: Add ceres-solver-benchmarks Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 11/12] gnu: libfive: Mark as tunable Ludovic Courtès
2021-12-16 17:58     ` [bug#52283] [PATCH v2 12/12] gnu: prusa-slicer: " Ludovic Courtès
2022-01-01 14:59     ` bug#52283: [PATCH 00/10] Tuning packages for CPU micro-architectures Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875ys0jwlf.fsf@inria.fr \
    --to=ludovic.courtes@inria.fr \
    --cc=52283@debbugs.gnu.org \
    --cc=bauermann@kolabnow.com \
    --cc=zimon.toutoune@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).