Re: Guidance on individual packages requiring x86_64-v2 baseline ?

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

 



On Fri, Jun 21, 2024 at 12:27:25PM -0400, Stephen Smoogen wrote:
> On Fri, 21 Jun 2024 at 07:27, Vít Ondruch <vondruch@xxxxxxxxxx> wrote:
> > So what is the reason to not treat x86_64_v2 as different arch then
> > x86_64_v{1,3}. Why we keep having this discussion instead of fire one
> > more build? Users would need to choose v1 / v2 / v3 ISO but what else?
> 
> I can think of three problems which would need to be dealt with
> 
> 1. Resource limitations in infrastructure hardware. You are going to
> add to the amount of builds on 1 set of hardware which is already
> doing x86_64 and i686. You are going to add to the storage issues that
> Fedora Infrastructure has to juggle on the maximum 100TB koji
> partition (with 90TB causing some amount of degradation) due to extra
> packages and composes.
> 2. Resource limitations in infrastructure staff. Fedora Infra is doing
> more with less and each additional architecture and focus increases
> that load.
> 3. Resource limitations on packagers. Packagers will need to add yet
> another bug set to cover and determine "is it only on VX" or not.

Another reason: is it actually useful at all?

Benchmarking so far hasn't been mention in this thread. But it was
discussed fairly extensively in previous interations on fedora-devel,
and the results were … not impressive.

The first consideration is that many packages already employ multiple
versions of functions and select the optimal version _at runtime_. In
that case, there is no "baseline architecture", the program works on
all µarchitectures, just faster or slower. This includes various BLAS
libraries, but also very importantly glibc itself with IFUNCS, some
compression libraries, etc. This means that for many programs the
heavy number crunching is already optimized, and raising the
µarchitecture level will have negligible effect on performance.

The second consideration is that many packages are not CPU-bound at
all, or don't perform the kind of processing where AVX and other
instructions make a difference.

So overall, there _might_ be some programs which would benefit from
higher µarchitecture requirements. Before starting a huge effort to
recompile the distro, it'd be prudent to do some local compilations
and benchmarking.

But OK, let's jump forward and we identified a subset of Fedora that'd
benefit. For those programs, a runtime approach based on IFUNCS or
equivalent is the most powerful. Only the hot paths need to be
targeted, delivering the same benefits as raising the baseline for the
whole program, while being transparent to the user. Also, this
approach can be more flexible, because it's OK to have many different
variants, rather than just targeting four µarchitecture levels. It
also requires much less resources, because we don't deliver multiple
versions of the package, but instead a few versions of the hot
functions, all in the same binary.

Only for programs where there is potential benefit, but we cannot do
IFUNCS, compiling with a higher baseline is a useful approach.

Overall, I think that we _should_ have more software optimized
for newer CPUs, but the solutions should be targeted at the right
packages and the right parts of the code. Just compiling everything
multiple times is IMO a waste of resources.

Zbyszek
-- 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux