Fedora 42 to Optimize Executable File Options

In the upcoming Fedora 42 release, scheduled for the end of April, a proposal has been put forward to allow for additional options for executable files optimized for microarchitectures X86-64-V2, X86-64-V3, and X86-64-V4. The Fedora Project notes that while Fedora continues to collect architecture X86-64-V1, CENTOS uses architecture X86-64-V2, and RHEL uses X86-64-V3. The increase in performance for such optimized architectures ranges from 10% to a significant 120%. However, the proposal has not yet been approved by the Fesco Committee (Fedora Engineering Steering Committee), responsible for the technical development of the Fedora distribution.

Fedora is already allowed to provide additional libraries optimized for extended versions of the X86_64 architecture and now plans to extend this opportunity to executable files. The dynamic linker will be responsible for loading optimized library implementations by checking for additional options in the subdirectories Glibc-Hwcaps. When it comes to executable files, a layer called hwcaps-loader will be used to select and run the appropriate executable file based on the capabilities of the current system. For packages offering multiple executable file options, this layer will be displayed through a symbolic link. The decision to add further optimized executable files will be based on performance testing of specific packages.

The X86-64-V* versions are used to identify different cuts of microarchitecture state. X86-64-V2 includes extensions such as SSE3, SSE4_2, SSSE3, PopCNT, LAHF-SAHF, and CMPXCHG16B. X86-64-V3 covers AVX, AVX2, BMI2, FMA, LZCNT, MOVBE, and SXSave. X86-64-V4 includes AVX512F, AVX512BW, AVX512CD, AVX512DQ, and AVX512VL.

  • x86-64-V2 covers the extensions of SSE3, SSE4_2, SSSE3, PopCNT, LAHF-SAHF, and CMPXCHG16B.
  • x86-64-V3 includes AVX, AVX2, BMI2, FMA, LZCNT, MOVBE, and SXSave.
  • X86-64-V4 consists of AVX512F, AVX512BW, AVX512CD, AVX512DQ, and AVX512VL.

Another

/Reports, release notes, official announcements.