Fedora Project is Planning to Rebuild Fedora Packages Using Modern CPU Architecture


There was an important discussion opened up in the Fedora developer mailing list on 22 July 2019 about x86-64 micro-architecture update.

Fedora currently uses the original K8 micro-architecture (without 3DNow! and other AMD-specific parts) as the baseline for its x86_64 architecture.

This is updated a decade back and last updated on 2003. Due to this, performance of Fedora is not as good as it could be on current CPUs.

So, they are planning to rebuild Fedora packages using modern CPU micro-architecture to something more recent.

The Fedora Project is planning to add this features starting from Fedora 32.

After preliminary discussions with CPU vendors, they came to the conclusion to use AVX2 as the new baseline. AVX2 support was introduced into CPUs from 2013 to 2015.

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.

A test rebuild was performed based on Fedora 28 showed that there is only a small number of build failures due to the baseline switch.

Also, very few packages are confused about the availability of the CMPXCHG16B instruction, leading to linking failures related to -latomic.

The rebuild would support newer hardware features to provide better performance. Also, it uses current CPUs more efficiently, increasing performance and reducing power consumption.

However, it doesn’t allow users to run Fedora 32 on older hardware’s, which are older than five years.

Most developers have opposed the change because it doesn’t support older hardware’s.

Few folks had suggested to use a special optimized Fedora edition for this implementation so, that it won’t impact other users who wants to use regular Fedora spins.

Fedora installations on systems with CPUs which are not able to execute AVX2 instructions will not be able to upgrade.

Fedora users can determine whether their system supports AVX2 prior to upgrading by running the below command.

grep avx2 /proc/cpuinfo

References:


Leave a Reply

Your email address will not be published. Required fields are marked *