AVX-512 xor_gen Continues To Look Exciting For Helping Linux RAID With Modern CPUs
A revised patch for AVX-512 optimized xor_gen() function has been posted, which yields up to a 43% improvement on a modern AMD Ryzen 9 9950X processor. The code is expected to work on modern Intel and AMD processors.
Intelligence analysis by Llama
A revised patch for AVX-512 optimized xor_gen() function has been posted, which yields up to a 43% improvement on a modern AMD Ryzen 9 9950X processor. The code is expected to work on modern Intel and AMD processors. This implementation should enhance the throughput on modern processors.
Imagine you have a big box of files, and you want to make sure they're all safe and sound. The AVX-512 xor_gen() function is like a super-fast way to check and fix any problems with those files. It's like having a special tool that helps keep your files safe and secure.
Analysis
AVX-512 xor_gen Implementation Details
The AVX-512 xor_gen() function is used for generating and checking parity blocks for Linux software RAID as well as the native, built-in RAID capabilities on the likes of the Btrfs file-system. Eric Biggers has been pursuing an AVX-512 implementation of xor_gen() for enhancing the throughput on modern Intel and AMD processors. This implementation should work on the likes of AMD Zen 4 and newer, Intel Xeon Sapphire Rapids and later, Intel Raptor Lake, or upcoming Intel Nova Lake and newer.
Performance Improvements
The revised patch fixes some missing VZEROUPPER instructions in the new AVX-512 code. The benchmark on the AMD Ryzen 9 9950X are very promising, with up to a 43% improvement. While the timing doesn't look like it will work out with the imminent Linux v7.3 merge window, this weekend Biggers posted an updated version of the patch.
Future Work
Those interested can check out the v4 patch series for the AVX-512 xor_gen() implementation and enhancements to the kernel's handling of feature flags for AVX/AVX-512.
Key points
- AVX-512 optimized xor_gen() function yields up to a 43% improvement on a modern AMD Ryzen 9 9950X processor.
- The code is expected to work on modern Intel and AMD processors.
- The implementation should enhance the throughput on modern processors.
- The revised patch fixes some missing VZEROUPPER instructions in the new AVX-512 code.
- The benchmark on the AMD Ryzen 9 9950X are very promising.
If this development plays out positively, it could lead to even faster and more efficient Linux software RAID and native RAID capabilities on modern processors.
However, there are still some challenges to be addressed, such as the missing VZEROUPPER instructions in the new AVX-512 code, which could potentially slow down the performance.