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.