GCC Compiler Adds Software Workaround To Avoid Intel Downfall Performance Hit
![INTEL](/assets/categories/intel.webp)
In order to help in trying to avoid the performance regressions, GATHER generation is being disabled in the GCC auto-vectorization code path on affected Intel CPU families. GATHER scalar emulation is used in place of the GATHER generation.
This change in the GCC behavior applies to Intel Skylake with AVX-512, Cannonlake, Icelake client, Icelake server, Cascade Lake, Tigerlake, Cooperlake, and Rocket Lake families of processors.
This commit made its way to GCC 14 Git last night for this software change. No performance numbers were provided for an estimated impact of disabling the GATHER generation in auto-vectorization to instead use GATHER scalar emulation. The patch may end up being back-ported to the next GCC stable point releases but still will likely be some months away from being picked up by Linux distributions. See last week's Downfall benchmarks for the current performance expectations from a mitigated Linux kernel and new CPU microcode.
5 Comments