Introduction to x86--64-v3 in RHEL 10

====================================

In Red Hat Enterprise Linux (RHEL) 9, Red Hat upgraded the instruction set architecture (ISA) baseline to the x86--64-v2 microarchitecture level. For RHEL 10, Red Hat is exploring an advancement to the x86--64-v3 level, potentially bringing significant performance benefits to various applications, particularly in data science and numerical computing domains.

New CPU Capabilities in x86--64-v3

=================================

x86--64-v3 offers substantial improvements over its predecessor:

  • Enhanced vector register width in AVX and AVX2 instruction sets from 128 bits to 256 bits, adding new vector operations.
  • Support for the fused multiply-add (FMA) instruction, enabling more precise and efficient computations.
  • VEX encoding to improve instruction variants and reduce code redundancy, enhancing code density and reducing instruction cache pressure.
  • Additional bit manipulation operations for scalar registers, aiding in efficient data processing.

Compatibility Impact

====================

The x86--64-v3 architecture first appeared in Intel's Haswell CPUs (2013) and AMD's Excavator microarchitecture (2015). However, adopting x86--64-v3 in RHEL 10 may exclude some systems without these capabilities, similar to the transition to x86--64-v2 in RHEL 9.

Verifying Performance Improvements

==================================

The CentOS ISA SIG has conducted experiments by rebuilding CentOS 9 with x86--64-v2 and x86--64-v3 baselines using GCC 12. These efforts aim to Playbooknstrate performance enhancements for key packages and workloads, thereby validating the transition to x86--64-v3.

Considerations for x86--64-v4

============================

Given its limited support across CPU generations and architectures, Red Hat does not find x86--64-v4 suitable for a general-purpose operating system. Our focus remains on achieving a balance between performance enhancement and broad compatibility.

Links

=====

  • <https://developers.redhat.com/articles/2024/01/02/exploring-x86-64-v3-red-hat-enterprise-linux-10>

Conclusion

==========

While further analysis is ongoing, the transition to x86--64-v3 for RHEL 10 looks promising. Developers can start testing their software with the x86--64-v3 architecture to prepare for potential changes and improvements. Feedback from these tests is highly encouraged.