We regularly publish articles about new processors from Intel, which for many years has remained the market leader in server solutions. Recently, however, the situation is changing: other players are actively expressing themselves. In March of this year, AMD released
a series of EPYC processors , about which there are interesting and generally positive reviews (for example,
an article on the Anandtech website ). But it’s better to see and touch it once than to read hundreds of articles in specialized magazines and on the Internet.
However, there were not many articles worthy of attention. Moreover, since the advent of processors, AMD has not published almost any technical and marketing materials: at the moment, they are exhausted by the
AMD EPYC SoC Sets 4 article
on SPEC CPU Benchmarks , which is more marketing than technical.
')
We had the opportunity to try everything ourselves: recently, colleagues from ASUS provided us with
an AMD EPYC 7351 processor- based
server for testing. We decided to compare it with Intel Skylake SP processors and perform performance tests. The test results and their detailed analysis are given below.
A few notes on the testing methodology
When choosing a technique, we are guided primarily by the
principle of practical utility . Here our point of view coincides with the position of the authors of the article
Technique for testing the performance of computer systems of the sample of 2011 (version 5.0) : during the tests, tasks should be performed as close as possible to those for which the server will be used in practice.
Synthetic tests are kept to the necessary minimum: we conduct them exclusively in order to get a general idea of ​​the capabilities of the processors (which can be corrected in the course of further experiments) and to compare our results with those published in the specialized press and the Internet. We are much more interested in the tasks that in everyday practice we and our potential users solve: for example, processing large amounts of data, compiling complex software, working with DBMS under a large load, and others.
As part of the experiment, which will be discussed below, the following tests were conducted:
- basic set of synthetic tests (we used Geekbench);
- compiling a set of libraries Boost;
- a test for evaluating work with memory (we used the STREAM benchmark);
- NAMD benchmarks (very well help to evaluate the performance of floating-point calculations).
General specifications
Our test involved three servers:
- AMD CPU EPYC 7351/516 GB RAM / 2 Ă— 800GB SSD;
- CPU Intel Xeon Gold 6140/384 GB RAM / 2 Ă— 800GB SSD;
- Intel Xeon Silver 4114/384 GB RAM / 2 Ă— 800 GB SSD.
Ubuntu OS 16.04 was installed on all three servers.
The table below provides detailed technical specifications for all processors:
Characteristic | Intel Xeon Silver 4114 | Intel Xeon Gold 6140 | AMD Epyc 7310 |
---|
Technological process | 14 nm | 14 nm | 14 nm |
Number of Cores | ten | 18 | sixteen |
Number of threads | 20 | 36 | 32 |
Base frequency | 2.20 GHz | 2.30 GHz | 2.40 GHz |
Maximum Turbo Frequency | 3.00 GHz | 3.70 GHz | 2.90 GHz |
L3 cache | 13.75 MB | 24.75 MB | 64 MB |
TDP (thermal design power) | 85 W | 140 W | 155/170 W |
Zen microarchitecture: a quick reference
AMD Epyc processors are based on the Zen microarchitecture, which was first introduced at the beginning of this year (more precisely, on March 2). It is used not only in server solutions, but also in desktop solutions (
AMD Ryzen processors ). Like the Ryzen processors, Epyc uses eight-core crystals, which consist of two CCX modules. CCX is short for Core Complex. So in AMD is called a module of four processor cores with a common third-level cache.
As can be seen from the table above, AMD Epyc processors have 16 cores. Technically, this is implemented as follows: two eight-core crystals are connected using an
Infinity Fabric bus. They have a common memory controller and a common PCI Express hub.
We will not describe in detail the features of the Zen microarchitecture, especially since there are already a lot of comprehensive publications on this topic on the Internet (we recommend, for example, the
AMD Zen Microarchitecture article
: Dual Schedulers, Micro-Op Cache and Memory Hierarchy Revealed ). Let us dwell only on the most significant improvements, including the following:
- two threads per core (Simultaneous Multi-Threading technology, or just SMT, which can be considered as a kind of hyperthreading analogue);
- decoded micro-operations cache;
- support for new instruction sets (AVX, AVX2, BMI1 and BMI2, AES, SHA1 / SHA256, RDSEED, SMAP and many others, including those specific to AMD);
- large unified cache memory of the second level (512 KB per core).
AVX512, SGX (Software Guard Extensions) and MPX (Memory Protection Extensions) instruction sets are not supported (and this is the important difference between EPYC processors and Heon). This can hardly be considered a flaw in the strict sense of the word - the AMD developers simply decided to go the other way (for more information about this, for example, in this somewhat outdated, but still interesting
EPYC Offers x86 Compatibility publication).
The weak point of AMD processors in comparison with Intel has long been considered energy efficiency. When creating the EPYC line, a lot of work was done to eliminate the corresponding drawbacks. To improve energy efficiency and reduce energy consumption, AMD EPYC used new technologies, including dynamic changes in frequency and voltage depending on temperature and the load on processor cores.
Using the energy efficiency algorithms used, one can recognize whether current loads are sensitive to delays and, if necessary, reduce the core frequency to optimize performance per watt of power consumption. Also in the Epyc processors, the function of linear power regulation is implemented separately for the cores. Each core can operate with its own frequency and voltage, if this is due to loading and other factors.
Sight: Basic Synthetic Tests
Geekbench Tests
After analyzing the theoretical moments, it's time to start the tests and analysis of their results. To begin with, we decided to see what results the AMD EPYC 7351 processor will show when performing the most common synthetic tests. We have already mentioned above our attitude towards synthetic tests: we use them exclusively as a starting point for thinking and putting forward hypotheses, and no more.
We chose Geekbench - a set of synthetic tests, the results of which are awarded points and creates a very detailed and intuitive chart. Own results can be downloaded to the site and compared with the results obtained by other users.
A complete list of tests included in the kit is provided in the
official documentation . And although Geekbench has the reputation of a test designed primarily for desktop computers, it includes a good set of standard server benchmarks.
First, we launched Geekbench on two servers: with AMD EPYC and with Intel Xeon Gold 6114.
The following results were obtained:
The following picture came out: AMD Epyc showed itself better than Silver, but worse than Gold. However, knowing the price of synthetic tests, we will not dwell in detail on the analysis of numbers.
Memory bandwidth: benchmark STREAM
The microarchitecture of Intel and AMD processors is significantly different. In this regard, it would be interesting to see how the processors involved in our test work with the memory subsystem. To do this, we used the famous benchmark
STREAM .
This is a synthetic test, during which the throughput is measured when working with steady-state data arrays. A more detailed description of this benchmark can be found in the
article by John McAlpin . In short, STREAM is a fairly simple
C program that performs vector operation of the form
a (i) = b (i) + q * c (i) , the data type is double (64 bit), q is a constant. Used in tests to evaluate the performance of supercomputers (for example, in the
HPC Challenge Benchmark ).
In our case, there was another difficulty: server configurations were not quite equivalent. AMD has more memory channels - 8 than Intel processors (6 channels each).
Nevertheless, we conducted a test, and the results were very curious. In general, they coincide with those received by the authors of the article quoted above on Anandtech. Although we conducted the experiment differently: to build the program from the source code, we used the standard gcc compiler (and at the same time did not set any additional flags), and not the Intel compiler.
According to the results, the results were distributed as follows (GB / s, the more - the better):
As you can see, the AMD processor is leading with a significant lead (the manufacturer also writes about this in recently published marketing materials - for example, in the article
AMD EPYC SoC Delivers Exceptional Results on the STREAM Benchmark on 2P Servers ).
However, let's not rush to conclusions: the high results of synthetic tests indicate the real performance is very indirect. Let's see how our processors cope with tasks more or less close to real practice.
Build boost
To evaluate the performance, it is very good to run something complex and resource-intensive on the server. We compile a set of C ++
Boost libraries: download the archive with the latest version of the source code from the official site (today it is
version 1.65.1 ), unpack and run the build (all strictly according to the instructions, without changing the settings and setting additional compiler flags).
The results are as follows:
- on a server with Intel Xeon Gold, the build runs in 9 minutes 12 seconds ;
- on a server with AMD Epyc 7351 - in 10 minutes and 15 seconds ;
- on a server with Intel Xeon Silver - in 12 minutes .
The result, as we see, was quite predictable: AMD did better than Silver, but at the same time worse than Gold.
Benchmark NAMD
NAMD (Nanoscale Molecular Dynamics) is a program for molecular dynamics, which is used not only for scientific calculations, but also as a benchmark for evaluating the performance of floating-point calculations. NAMD benchmarks are good, firstly, because they are based on computational tasks close to real ones, and secondly, because they create a good load on the processor.
For the tests, we used compiled binary files located on
the University of Illinois website . There you can also find
configuration files for benchmarks .
Two standard tests were performed: STMV and APOA1. Since all processors involved in the test have a different number of cores, we have limited the test to 40 threads (downstream per core).
In addition to the three servers mentioned above, a server with an Intel Xeon E5 2630v4 processor was also involved in this test.
The first test we conducted is called
STMV (short for Satellite Tobacco Mosaic Virus, a tobacco mosaic satellite virus). We will not list the details of the calculations (interested readers will find everything by the link above). We only note that in order to simulate the dynamics of this virus, the program needs to do complex calculations based on a fairly weighty data set. Big data processing is just one of the typical scenarios for using modern server processors, so the result of the NAMD benchmark is of interest.
In evaluating and analyzing the results, we will pay attention primarily to the time of the test. The results are presented in the following diagram:
The leaders, as should be expected, breaks Intel Xeon Gold On the second - AMD EPYC (224.000992). Next up are Intel Xeon Silver (250.966705) and Intel Xeon E5 2630v4 (262.287109 c).
The next test is
APOA1 (Apoleprotein A1) , the standard NAMD benchmark. Here the results were as follows:
- Intel Xeon Gold - 10/19/5089;
- AMD EPYC - 22.09503;
- Intel Xeon Silver - 25.303406;
- Intel Xeon E5 2630v4 - 23.258205.
More clearly the results are shown in the diagram:
AMD Epyc once again proved to be quite predictable, bypassing Intel Xeon Silver, but losing to Intel Xeon Gold.
Conclusion
According to the test results, we can conclude that the AMD EPYC 7351 processor shows generally good performance and, according to the test results, takes place between Intel Xeon Silver and Intel Xeon Gold. AMD is not the first time trying to occupy its own niche in the market. How successful these attempts will be - time will tell.
What can be said about the new Intel and AMD processors in terms of the price-quality ratio?
The recommended price for AMD EPYC 7351 is $ 1,100 (information from
In the Epyc center: More Zen server CPU specs, sneak out of AMD prices ), and it is much cheaper than most Intel Xeon Gold processors (for example,
recommended prices ). At the same time, this amount is quite comparable with the cost of the “older” Xeon Silver models (for example, Xeon Silver 4116, for which the recommended price is $ 1,000).
Silver AMD EPYC looks quite competitive against the background: the results of both our and third-party benchmarks (for example,
Intel Xeon Silver and
Dissecting Intel's EPYC Benchmarks: Performance Through the Lens of Competitive Analysis ), show that AMD processors are leading in a number of tests.
We fully agree with the authors of the Anandtech article quoted above that for some use cases (for example, as a web server or as a Java application server) servers based on AMD EPYC can be recommended.
However, for more specialized tasks (for example, for high-performance computing or virtualization), Intel processors are still preferable (see the reflections on this topic in
Intel's EPYC Benchmarks Dissecting article
: Performance Through Lens of Competitive Analysis ).
We will closely monitor the situation on the processor market. We hope that we will soon be able to get acquainted with other AMD processors and conduct tests that are close to interesting and relevant for us use cases. If everything works out, we will definitely tell about it in the following publications.
Thanks to ASUS for providing the server