--===============7364073171099906615== Content-Type: multipart/alternative; boundary="000000000000ee67aa058e521a57" --000000000000ee67aa058e521a57 Content-Type: text/plain; charset="UTF-8" On Monday, July 22, 2019, Ben Cotton 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 > x86_64 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 > -latomic, 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 gcc and > redhat-rpm-config package to implement the new compiler > flags. It is expected that the new baseline will be implemented in a > new GCC -march= option for convenience. > > * Other developers: Other developers may have to adjust test suites > which expect exact floating point results, and correct linking with > libatomic. 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 > grep avx2 /proc/cpuinfo. > > > 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. --000000000000ee67aa058e521a57 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On Monday, July 22, 2019, Ben Cotton <bcotton@redhat.com> wrote:
https://fedoraproject.org/wiki/Changes= /x86-64_micro-architecture_update

=3D=3D Summary =3D=3D
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.=C2=A0 This baseline dates bac= k to 2003
and has not been updated since.=C2=A0 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.

=3D=3D Owner =3D=3D
* Name: [[User:fweimer| Florian Weimer]]
* Email: [mailto:fweimer@redhat.com fweimer@redhat.com]

=3D=3D Detailed Description =3D=3D

After preliminary discussions with CPU vendors, we propose AVX2 as the
new baseline.=C2=A0 AVX2 support was introduced into CPUs from 2013 to
2015. See [https://en.wikipedia.org/wiki/Ad= vanced_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.=C2=A0 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 p= oint
results that could change due to vectorization.=C2=A0 (The latter is within=
bounds of the usual cross-architecture variation for such tests.)

=3D=3D Benefit to Fedora =3D=3D

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.

=3D=3D Scope =3D=3D
* Proposal owners: Update the <code>gcc</code> and
<code>redhat-rpm-config</code> package to implement the new com= piler
flags.=C2=A0 It is expected that the new baseline will be implemented in a<= br> new GCC <code>-march=3D</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 x8= 6-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)

=3D=3D Upgrade/compatibility impact =3D=3D
Fedora installations on systems with CPUs which are not able to
execute AVX2 instructions will not be able to upgrade.

=3D=3D How To Test =3D=3D
General system testing will provide test coverage for this change.

=3D=3D User Experience =3D=3D
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.

=3D=3D Dependencies =3D=3D
There are no direct dependencies on this change at this time.

=3D=3D Contingency Plan =3D=3D
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 glag= s.
* Contingency deadline: Final mass rebuild.
* Blocks release? No.
* Blocks product? No.

=3D=3D Documentation =3D=3D
The new micro-architecture baseline and the resulting requirements
need to be documented.

=3D=3D Release Notes =3D=3D
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 a= gain in about 10 years.


--000000000000ee67aa058e521a57-- --===============7364073171099906615== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZGV2ZWwgbWFp bGluZyBsaXN0IC0tIGRldmVsQGxpc3RzLmZlZG9yYXByb2plY3Qub3JnClRvIHVuc3Vic2NyaWJl IHNlbmQgYW4gZW1haWwgdG8gZGV2ZWwtbGVhdmVAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmcKRmVk b3JhIENvZGUgb2YgQ29uZHVjdDogaHR0cHM6Ly9kb2NzLmZlZG9yYXByb2plY3Qub3JnL2VuLVVT L3Byb2plY3QvY29kZS1vZi1jb25kdWN0LwpMaXN0IEd1aWRlbGluZXM6IGh0dHBzOi8vZmVkb3Jh cHJvamVjdC5vcmcvd2lraS9NYWlsaW5nX2xpc3RfZ3VpZGVsaW5lcwpMaXN0IEFyY2hpdmVzOiBo dHRwczovL2xpc3RzLmZlZG9yYXByb2plY3Qub3JnL2FyY2hpdmVzL2xpc3QvZGV2ZWxAbGlzdHMu ZmVkb3JhcHJvamVjdC5vcmcK --===============7364073171099906615==--