AMD EPYC Rome Still Conquering Cascadelake Even Without Mitigations
With last week's dramatic EPYC "Rome" launch where AMD has blown past Intel Xeon "Cascadelake" performance in a majority of server benchmarks, helping the successful launch of these Zen 2 server processors has been Intel's repeated delays of 10nm/Icelake CPUs and also the Spectre / Meltdown / Zombieload / Foreshadow mitigations. Out of curiosity, I've run some unmitigated benchmarks for the various relevant CPU speculative execution vulnerabilities on both the Intel Xeon Platinum 8280 Cascadelake and AMD EPYC 7742 Rome processors for seeing how the performance differs.
As a reminder, both Cascadelake and Rome offer up different hardware architectural improvements for mitigating against their respective mitigations. Cascadelake no longer requires software mitigations for L1TF/Foreshadow, MDS, Meltdown, and some Spectre variants. But for Spectre V1 it still requires the __user pointer santisifcation, Spectre V4 "speculative store bypass" has mitigations for SSB via Seccomp and Prctl, and Spectre V2 has some hardware protections but still needs IBRS IBPB with conditional return stack buffer (RSB) filling.
In the case of AMD's Rome / Zen 2 processors and its limited exposure to these speculative execution flaws in the first place, the new EPYC processors have Spectre V4 SSB disabled via Prctl and Seccomp, __user pointer sanitization for Spectre V1, and on the Spectre V2 front make use of AMD Retpoline IBPB with conditional RSB filling via firmware.
So while both Cascadelake and Zen 2 have some level of hardware mitigations in place, for this round of benchmarking I tested the Platinum 8280 and EPYC 7742 performance both out-of-the-box/default and then when booted with "mitigations=off" for disabling the relevant software mitigations in place for each processor. This testing was done on Linux 5.2 and began prior to SWAPGS coming to light so that latest Spectre V1 variant for Intel CPUs isn't being looked at in this article, though separately SWAPGS has been tested and can hurt select workloads.
Both of the dual socket Xeon Platinum 8280 and EPYC 7742 servers had RAM filling all available channels at their maximum supported frequencies, using Intel Optane 900p 280GB NVMe SSD storage, and were running Ubuntu 19.04 with Linux 5.2 for this look at the mitigation impact. Besides comparing to Cascadelake, the Rome numbers should be interested in their own right for seeing the current cost to these mitigations on AMD server hardware.