Glenn’s Tech Insights For February 21, 2019

(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).

PCIe 5.0 Nears Release

On January 17, 2019, the PCI-SIG ratified version 0.9 of the PCIe 5.0 standard, with version 1.0 of the standard expected to be ratified later in Q1 of 2019. PCIe 5.0 doubles the bandwidth of PCIe 4.0, going from 64GB/s with sixteen lanes to 128GB/s with sixteen lanes. The PCIe 4.0 standard also doubled the bandwidth of PCIe 3.0, which was “only” 32GB/s with sixteen lanes.

Currently, no released AMD or Intel processors have PCIe 4.0 support, but the upcoming 7nm AMD Ryzen 3000 desktop processors and the AMD EPYC “Rome” server processors will both have PCIe 4.0 support. The upcoming Intel Cascade Lake-SP server processors will NOT have PCIe 4.0 support.

After you have processor support for PCIe 4.0 and greater, you will need storage devices that support PCIe 4.0 and greater.

The first public PCIe 4.0 NVMe SSD was demoed by Phison at CES. It was a Phison PS5016-E16. This SSD did 4069MB/sec for sequential reads and 4268MB/sec for sequential writes on CrystalDiskMark. Phison claims that the released version will have speeds up to 4.8/4.4 GB/s of read/write sequential throughput. This card is due to go on sale in Q3 of 2019.

AMD EPYC Market Share Analysis

ServeTheHome has a thoughtful article looking at the market share gains in the server space by the current generation AMD EPYC “Naples” processor. This processor was first released in mid-2017. AMD has gone from 0.8% in Q4 of 2017 to 3.2% in Q4 of 2018. That is still a small number, but I believe that market share will start to increase at a much faster rate during 2019 and 2020.

This is because both HPE and Dell EMC have multiple AMD EPYC systems on the market. Another reason is because the 7nm AMD EPYC “Rome” processors are due to be released in mid-2019. I think the AMD EPYC “Rome” processor is going to be a huge success. Rome will have PCIe 4.0 support, very high memory density, and possibly better single-threaded performance than Intel Cascade Lake-SP. This could make the AMD EPYC “Rome” processor a better choice for SQL Server OLTP usage than Intel Cascade Lake-SP. We will see as we get closer to release, and start to see more benchmark results.

AMD Ryzen 3000 Series Release Date Rumors

RedGamingTech reports that the upcoming 7nm AMD Ryzen 3000 “Matisse” mainstream desktop processors (and a new, optional X570 chipset) are going to be released by AMD on July 7, 2019. This will happen during Computex 2019. The expectation is that these AMD processors will initially have twelve physical cores. There will be a 16-core SKU being released later in the year.  This SKU will counter the expected release of the 10nm 10-core Intel Comet Lake desktop processors.

It is possible that AMD will then have both a single-threaded CPU performance and a core count advantage. These processors will also sell at a lower price than the competing Intel mainstream desktop parts. This situation will probably true for at least nine-twelve months. This is not good news for Intel, and it will be interesting to see how they respond to this challenge.

More CPU Competition Coming for Intel

On January 9, 2019, AMD CEO and President Dr. Lisa Su presented a CES 2019 Keynote. During the keynote, she demonstrated a new desktop processor, (at 1:25:00 in the video). This was a 7nm, 8C/16T, 3rd Generation AMD Ryzen 3000 series “Matisse” desktop processor running the Cinebench R15 Multithreaded (MT) benchmark vs. a 14nm, 8C/16T Intel Core i9-9900K “Coffee Lake” desktop processor.

System Comparison

These two systems were as identical as possible (outside of the motherboard and processor), meaning identical 2666MHz memory, video card, and storage. The Intel system was running at stock clock speeds vs. an engineering sample Ryzen running at lower than final clock speeds. The Cinebench MT score for Intel was 2040, while the Cinebench MT score for the AMD Ryzen 2 was 2057. The Intel system was using 179.8 watts, while the AMD system was using 133.4 watts during benchmark. This benchmark pegs all of the cores in the system, so this is extremely significant!

Dr. Su held up one of these Ryzen 2 processors, showing a 14nm I/O die on the left and the 7nm 8C/16T Zen 2 processor die on the top right. It was pretty obvious that there was room on the package for another identical Zen 2 processor die on the bottom right. During interviews over the next couple of days, Dr. Su basically confirmed that the Zen 2 family had room for an extra processor die and that we should expect a higher core count SKU. AMD purposely used an eight core CPU for the demo so that they would have the same core count as Intel’s current top of the line processor.

Processor Details

It appears that what AMD demonstrated was actually a mid-range Ryzen 5 class SKU, running with artificially slow memory, at a non-final lower clock speed that still had a slightly higher Cinebench MT score (with the same core/thread count) as the current best mainstream desktop processor that Intel has available. Since the core/thread counts were the same between the two systems, this means that the single-threaded performance should be about the same. If this is true, then this would be the first time in an extremely long time where AMD has better single-threaded performance than Intel. The final version of these Zen 2 processors should perform even better than this early sample.

Conclusion

You may be wondering what this has to do with server processors and with SQL Server. It turns out that the upcoming 7nm AMD EPYC “Rome” processors use the same Zen 2 architecture and 7nm manufacturing process as these Zen 2 mainstream desktop processors. If the 7nm AMD EYPC Rome processors end up having better single-threaded performance than the upcoming 14nm Intel Cascade Lake-SP processors (which I think is pretty likely), then AMD is going to be extremely competitive in the server market and for SQL Server usage. This is especially true if you consider AMD’s advantage in memory density, PCIe lanes (which will be Gen 4.0) and hardware cost. Dr. Su actually did a demonstration of a one-socket AMD EPYC Rome system vs. a two-socket Intel Xeon 8180 system, showing the AMD system winning.

Both the desktop Ryzen 2 and the server EPYC Rome processors are due to be released in mid-2019.

AdoredTV has their analysis here, while UFD Tech has their analysis here. Anandtech has a good writeup here.
 

 

How to Check if Your Processor Supports Second Level Address Translation (SLAT)

If you want to run Docker for Windows, you will need to be running one of these specific Windows 10 SKUs. These include Windows 10 Professional, Windows 10 Enterprise, Windows 10 Pro for Workstations, or Windows 10 Education Edition. Since Docker for Windows requires Microsoft Hyper-V, you will also need a processor on your host machine that supports second level address translation (SLAT) in order to run Hyper-V.  You will also want/need SLAT support for pretty much any other hypervisor that you may be using.

Modern Processors

This should not be a problem in most cases, since nearly all systems that are running Windows 10 will have a new enough Intel or AMD processor so that SLAT support won’t be an issue. For AMD, SLAT support, which they call Rapid Virtualization Indexing (RVI), was introduced in the Barcelona microarchitecture in late 2007. For Intel, SLAT support, which they call Extended Page Tables (EPT), was introduced with the Westmere microarchitecture in early 2010.

Checking for SLAT Support

If you want to actually check your system to confirm that you have SLAT support in your processor (before you install Hyper-V), here is how to do it:

1. Download Coreinfo from this link

2. Extract the zip file, and then copy the Coreinfo.exe file to the root of your C: drive

3. Open a command prompt as an administrator

4. Navigate to the root of your C: drive in the command prompt

5. Run this command: coreinfo –v

6. The –v switch shows virtualization-related features

If you see an asterisk on the feature line, that means the processor supports that feature. If there is a dash on the feature line, the processor does not support that feature. You want to look at the EPT line for Intel or the NP line for AMD. This tells you whether your processor has second level address translation support.

image

Figure 1: Results of Coreinfo –v on an Intel Core i7-8700K Processor

If you already have Hyper-V installed, you will get inaccurate results, as shown in Figure 2. Just to be clear, this AMD processor does have SLAT support, but the fact that Hyper-V is running gives the wrong results.

image

Figure 2: Results of Coreinfo –v on an AMD Ryzen Threadripper 2950X Processor

 Conclusion

You must have second level address translation support in order to run Docker for Windows since that is a Hyper-V requirement. This is actually a good thing, since second level address translation support gives you better virtualization performance.