[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-devel-list
Subject:    Re: Fedora 32 System-Wide Change proposal: x86-64 micro-architecture update
From:       drago01 <drago01 () gmail ! com>
Date:       2019-07-23 5:02:53
Message-ID: CAMqY-FeAN9id3pws5Bek1_Qm4zAKHouLM2Kbb_X35DEVfGNJ2A () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


On Monday, July 22, 2019, Ben Cotton <bcotton@redhat.com> wrote:

> https://fedoraproject.org/wiki/Changes/x86-64_micro-architecture_update
>
> == Summary ==
> Fedora currently uses the original K8 micro-architecture (without
> 3DNow! and other AMD-specific parts) as the baseline for its
> <code>x86_64</code> architecture.  This baseline dates back to 2003
> and has not been updated since.  As a result, performance of Fedora is
> not as good as it could be on current CPUs.
>
> This change to update the micro-architecture level for the
> architecture to something more recent.
>
> == Owner ==
> * Name: [[User:fweimer| Florian Weimer]]
> * Email: [mailto:fweimer@redhat.com fweimer@redhat.com]
>
> == Detailed Description ==
>
> After preliminary discussions with CPU vendors, we propose AVX2 as the
> new baseline.  AVX2 support was introduced into CPUs from 2013 to
> 2015. See [https://en.wikipedia.org/wiki/Advanced_Vector_
> Extensions#CPUs_with_AVX2
> CPUs with AVX2].
>
> Along with AVX2, it makes sense to enable certain other CPU features
> which are not strictly implied by AVX2, such as CMPXCHG16B, FMA, and
> earlier vector extensions such as SSE 4.2.  Details are still being
> worked out.
>
> A test rebuild of a distribution largely based on Fedora 28 showed
> that there is only a small number of build failures due to the
> baseline switch. Very few packages are confused about the availability
> of the CMPXCHG16B instruction, leading to linking failures related to
> <code>-latomic</code>, and there are some hard-coded floating point
> results that could change due to vectorization.  (The latter is within
> bounds of the usual cross-architecture variation for such tests.)
>
> == Benefit to Fedora ==
>
> Fedora will use current CPUs more efficiently, increasing performance
> and reducing power consumption.
>
> Moreover, when Fedora is advertised as a distribution by a compute
> service provider, users can be certain that their AVX2-optimized
> software will run in this environment.
>
> == Scope ==
> * Proposal owners: Update the <code>gcc</code> and
> <code>redhat-rpm-config</code> package to implement the new compiler
> flags.  It is expected that the new baseline will be implemented in a
> new GCC <code>-march=</code> option for convenience.
>
> * Other developers: Other developers may have to adjust test suites
> which expect exact floating point results, and correct linking with
> <code>libatomic</code>. They will also have to upgrade their x86-64
> machines to something that can execute AVX2 instructions.
>
> * Release engineering: [https://pagure.io/releng/issue/8513 #8513]
> ** All Fedora builders need to be AVX2-capable.
> ** Infrastructure ticket:
> [https://pagure.io/fedora-infrastructure/issue/7968 #7968]
> * Policies and guidelines: No guidelines need to be changed.
> * Trademark approval: N/A (not needed for this Change)
>
> == Upgrade/compatibility impact ==
> Fedora installations on systems with CPUs which are not able to
> execute AVX2 instructions will not be able to upgrade.
>
> == How To Test ==
> General system testing will provide test coverage for this change.
>
> == User Experience ==
> User should observe improved performance and, likely, battery life.
> Developers will benefit from the knowledge that code with AVX2
> optimizations will run wherever Fedora runs.
>
> == Dependencies ==
> There are no direct dependencies on this change at this time.
>
> == Contingency Plan ==
> It is possible to not implement this change, or implement a smaller
> subset of it (adopting the CMPXCHG16B instruction only, for example).
>
> * Contingency mechanism: Mass rebuild with different/previous compiler
> glags.
> * Contingency deadline: Final mass rebuild.
> * Blocks release? No.
> * Blocks product? No.
>
> == Documentation ==
> The new micro-architecture baseline and the resulting requirements
> need to be documented.
>
> == Release Notes ==
> Release notes must mention how users can determine whether their
> system supports AVX2 prior to upgrading, for example by running
> <code>grep avx2 /proc/cpuinfo</code>.
>
>
>
Please just take back this change and come back at April first if it was
supposed to be a joke - if not then submit again in about 10 years.

[Attachment #5 (text/html)]

<br><br>On Monday, July 22, 2019, Ben Cotton &lt;<a \
href="mailto:bcotton@redhat.com">bcotton@redhat.com</a>&gt; wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><a \
href="https://fedoraproject.org/wiki/Changes/x86-64_micro-architecture_update" \
target="_blank">https://fedoraproject.org/<wbr>wiki/Changes/x86-64_micro-<wbr>architecture_update</a><br>
 <br>
== Summary ==<br>
Fedora currently uses the original K8 micro-architecture (without<br>
3DNow! and other AMD-specific parts) as the baseline for its<br>
&lt;code&gt;x86_64&lt;/code&gt; architecture.   This baseline dates back to 2003<br>
and has not been updated since.   As a result, performance of Fedora is<br>
not as good as it could be on current CPUs.<br>
<br>
This change to update the micro-architecture level for the<br>
architecture to something more recent.<br>
<br>
== Owner ==<br>
* Name: [[User:fweimer| Florian Weimer]]<br>
* Email: [mailto:<a href="mailto:fweimer@redhat.com">fweimer@redhat.com</a> <a \
href="mailto:fweimer@redhat.com">fweimer@redhat.com</a>]<br> <br>
== Detailed Description ==<br>
<br>
After preliminary discussions with CPU vendors, we propose AVX2 as the<br>
new baseline.   AVX2 support was introduced into CPUs from 2013 to<br>
2015. See [<a href="https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2" \
target="_blank">https://en.wikipedia.org/<wbr>wiki/Advanced_Vector_<wbr>Extensions#CPUs_with_AVX2</a><br>
 CPUs with AVX2].<br>
<br>
Along with AVX2, it makes sense to enable certain other CPU features<br>
which are not strictly implied by AVX2, such as CMPXCHG16B, FMA, and<br>
earlier vector extensions such as SSE 4.2.   Details are still being<br>
worked out.<br>
<br>
A test rebuild of a distribution largely based on Fedora 28 showed<br>
that there is only a small number of build failures due to the<br>
baseline switch. Very few packages are confused about the availability<br>
of the CMPXCHG16B instruction, leading to linking failures related to<br>
&lt;code&gt;-latomic&lt;/code&gt;, and there are some hard-coded floating point<br>
results that could change due to vectorization.   (The latter is within<br>
bounds of the usual cross-architecture variation for such tests.)<br>
<br>
== Benefit to Fedora ==<br>
<br>
Fedora will use current CPUs more efficiently, increasing performance<br>
and reducing power consumption.<br>
<br>
Moreover, when Fedora is advertised as a distribution by a compute<br>
service provider, users can be certain that their AVX2-optimized<br>
software will run in this environment.<br>
<br>
== Scope ==<br>
* Proposal owners: Update the &lt;code&gt;gcc&lt;/code&gt; and<br>
&lt;code&gt;redhat-rpm-config&lt;/code&gt; package to implement the new compiler<br>
flags.   It is expected that the new baseline will be implemented in a<br>
new GCC &lt;code&gt;-march=&lt;/code&gt; option for convenience.<br>
<br>
* Other developers: Other developers may have to adjust test suites<br>
which expect exact floating point results, and correct linking with<br>
&lt;code&gt;libatomic&lt;/code&gt;. They will also have to upgrade their x86-64<br>
machines to something that can execute AVX2 instructions.<br>
<br>
* Release engineering: [<a href="https://pagure.io/releng/issue/8513" \
                target="_blank">https://pagure.io/releng/<wbr>issue/8513</a> \
                #8513]<br>
** All Fedora builders need to be AVX2-capable.<br>
** Infrastructure ticket:<br>
[<a href="https://pagure.io/fedora-infrastructure/issue/7968" \
target="_blank">https://pagure.io/fedora-<wbr>infrastructure/issue/7968</a> \
                #7968]<br>
* Policies and guidelines: No guidelines need to be changed.<br>
* Trademark approval: N/A (not needed for this Change)<br>
<br>
== Upgrade/compatibility impact ==<br>
Fedora installations on systems with CPUs which are not able to<br>
execute AVX2 instructions will not be able to upgrade.<br>
<br>
== How To Test ==<br>
General system testing will provide test coverage for this change.<br>
<br>
== User Experience ==<br>
User should observe improved performance and, likely, battery life.<br>
Developers will benefit from the knowledge that code with AVX2<br>
optimizations will run wherever Fedora runs.<br>
<br>
== Dependencies ==<br>
There are no direct dependencies on this change at this time.<br>
<br>
== Contingency Plan ==<br>
It is possible to not implement this change, or implement a smaller<br>
subset of it (adopting the CMPXCHG16B instruction only, for example).<br>
<br>
* Contingency mechanism: Mass rebuild with different/previous compiler glags.<br>
* Contingency deadline: Final mass rebuild.<br>
* Blocks release? No.<br>
* Blocks product? No.<br>
<br>
== Documentation ==<br>
The new micro-architecture baseline and the resulting requirements<br>
need to be documented.<br>
<br>
== Release Notes ==<br>
Release notes must mention how users can determine whether their<br>
system supports AVX2 prior to upgrading, for example by running<br>
&lt;code&gt;grep avx2 /proc/cpuinfo&lt;/code&gt;.<br>
<br><br>
</blockquote><div><br></div><div>Please just take back this change and come back at \
April first if it was supposed to be a joke - if not then submit again in about 10 \
years.</div><div><br></div><div><br></div>


[Attachment #6 (text/plain)]

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
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@lists.fedoraproject.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic