(Glenn’s Tech Insights… used to be part of our bi-weekly newsletter but we decided to make it a regular blog post instead so it can get more visibility. It covers interesting new hardware and software developments that are generally relevant for SQL Server).
AMD Announcements at the E3 Conference
On June 10, 2019 AMD President and CEO, Dr. Lisa Su delivered a presentation at the E3 Expo 2019 in Los Angeles. During this presentation, Dr. Su announced more architectural details about the 7nm Ryzen 3000 series mainstream desktop processors,including a new 16C/32T, Ryzen 9 3950X SKU. AMD also demoed the upcoming 7nm AMD EYPC “Rome” server processors, along with the upcoming 7nm AMD Radeon RX 5700 “Navi” video cards. The updated Ryzen 3000 SKU list is shown in Figure 1.
Figure 1: AMD Ryzen 3000 Lineup
One of the more interesting bits of new information is the fact that AMD has been working closely with Microsoft to develop improvements to how scheduling and thread allocation is handled on AMD Zen2 architecture processors on Windows 10 Build 1903. They are moving from a hybrid thread expansion strategy (where active cores are placed as far away from each other as possible) to thread grouping, where new threads are allocated as close as possible to already active cores, hopefully on the same CCX. This improves thread to thread communication by speeding up memory access. This is designed to improve the apparent scheduling issues seen on Windows with some AMD Zen processors. You will need an updated AMD chipset driver to get this improvement.
It is not yet clear how well this will work on more heavily threaded workloads like you typically see on a database server. I am also not yet 100% certain that this fix is in Windows Server 2016 and Windows Server 2019 yet. The upcoming AMD EPYC “Rome” processors use the same Zen 2 architecture, so it is possible they will benefit from this change with some workloads.
Figure 2: Topology Awareness
Another Windows 10 Build 1903 improvement that will definitely help AMD Zen architecture processors is a feature that AMD calls faster clock ramping. It is actually UEFI Collaborative Power Performance Control 2 (CPPC2), which lets the processor and operating system cooperate more closely (and quickly) to increase the clock speed of individual cores more rapidly under a load. This feature moves P-state control from the OS to the processor, so the processor can “throttle up” much more quickly than before. AMD is claiming a clock ramp time of 1-2ms with this improvement compared to about 30ms before. This will also require a UEFI/BIOS update and a new AMD chipset driver before it will work.
This feature is very similar to Intel Speed Shift, which was introduced with their Skylake processors, and improved with Kaby Lake. Intel Speed Shift requires Windows 10 v10586 or Windows Server 2016 or newer. Intel Speed Shift takes 15-30ms to ramp up, so it is not as responsive as AMD’s implementation. AMD also revealed that the Zen 2 architecture processors will have hardware level mitigations for Spectre and Spectre v4. Keep in mind that AMD processors are not vulnerable to Meltdown, or newer exploits such as Foreshadow or Zombieload.
These architectural improvements in the Zen 2 architecture will also show up in the upcoming (Q3 2019) 7nm AMD EPYC “Rome” server processors, which is very exciting from a SQL Server perspective.