Intel vs AMD: comparative tests
We regularly publish articles on new Intel processors, which for many years remain the leader in the server solutions market. However, the situation has been changing lately: other players are actively declaring themselves. In March of this year, AMD released the EPYC series 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 once than read hundreds of articles in specialized magazines and on the Internet.
However, there were not so many articles worthy of attention. Moreover, AMD has not published almost any technical and marketing materials since the advent of processors: at the moment, they are exhausted by the articleAMD EPYC SoC Sets 4 World Records on SPEC CPU Benchmarks , which is more of a marketing than a technical one.
We had the opportunity to try everything ourselves: recently, colleagues from ASUS provided us with a server based on the AMD EPYC 7351 processor for testing . We decided to compare it with Intel Skylake SP processors and conduct performance tests. Test results and their detailed analysis are given below.
Some 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 Methodology for Testing the Performance of Computer Systems of 2011 (version 5.0) : during the tests, tasks should be performed that are as close as possible to those for which the server will be used in practice.
Synthetic tests are reduced to the necessary minimum: we conduct them solely in order to get a general idea of the capabilities of processors (which can be adjusted in the course of further experiments) and compare our results with those published in the specialized press and on the Internet. Of much greater interest to us are the tasks that we and our potential users solve in everyday practice: for example, processing large amounts of data, compiling complex software, working with DBMSs under heavy load, and others.
As part of the experiment, which will be discussed below, the following tests were carried out:
- basic set of synthetic tests (we used Geekbench);
- compilation of a set of Boost libraries;
- test for evaluating memory performance (we used the STREAM benchmark);
- NAMD benchmarks (very good help to evaluate the performance of floating-point calculations).
Three servers were involved in our test:
- CPU AMD EPYC 7351/516 GB RAM / 2 × 800 GB SSD;
- CPU Intel Xeon Gold 6140/384 GB RAM / 2 × 800 GB SSD;
- CPU Intel Xeon Silver 4114/384 GB RAM / 2 × 800 GB SSD.
Ubuntu 16.04 was installed on all three servers.
The table below shows the detailed specifications of 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 watts||140 watts||155/170 W|
Zen Microarchitecture: Quick Reference
AMD Epyc processors are based on the Zen microarchitecture, which was first introduced earlier this year (more precisely, on March 2). It is used not only in server, but also in desktop solutions ( AMD Ryzen processors ). Like 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 you can see from the table above, AMD Epyc processors have 16 cores. Technically, this is implemented as follows: two eight-core crystals are connected using the 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 many detailed publications on this topic have already been submitted to the Internet (we recommend, for example, the article by AMD Zen Microarchitecture: Dual Schedulers, Micro-Op Cache and Memory Hierarchy Revealed ). Let us dwell only on the most significant improvements, among which it is worth highlighting the following:
- two threads per core (Simultaneous Multi-Threading technology, or simply SMT, which can be considered as a kind of hyperthreading analogue);
- decoded microoperation 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 of the second level (512 KB per core).
The AVX512, SGX (Software Guard Extensions), and MPX (Memory Protection Extensions) instruction sets are not supported (and this is an important difference between EPYC processors and Heon). This can hardly be considered a drawback in the strict sense of the word - AMD developers just decided to go the other way (more on this can be found, for example, in this somewhat outdated, but still interesting publication EPYC Offers x86 Compatibility ).
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 shortcomings. AMD EPYC used new technologies to improve energy efficiency and reduce energy consumption, including dynamic changes in frequency and voltage depending on the temperature and load of processor cores.
Using the energy efficiency algorithms used, it is possible to recognize whether the current load is sensitive to delays and, if necessary, reduce the core frequency to optimize performance per watt of energy consumption. Also, Epyc processors have a function of linear regulation of power separately by cores. Each core can operate with its own frequency and voltage, if this is due to loading and other factors.
A glance at a glance: basic synthetic tests
After analyzing the theoretical points, it's time to start testing and analyzing 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 said about our attitude to synthetic tests: we use them solely as a starting point for reflection and hypothesis, and no more.
We chose Geekbench - this is a set of synthetic tests, according to the results of which points are awarded and a very detailed and visual diagram is created. Own results can be uploaded 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 a reputation as a benchmark 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:
- browser.geekbench.com/v4/cpu/4807485 - Intel Xeon Gold (4399 points for single-core performance tests and 74097 points for multi-core tests);
- browser.geekbench.com/v4/cpu/4859969 - Intel Xeon Silver (3410 - single-core performance, 43971 - multi-core performance);
- browser.geekbench.com/v4/cpu/4807276 —AMD (3737 points - single-core performance and 61235 - multi-core).
The result was the following: AMD Epyc performed better than Silver, but worse than Gold. However, knowing the price of synthetic tests, we will not dwell on the analysis of numbers in detail.
Memory Bandwidth: STREAM Benchmark
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. For this, we used the famous benchmark STREAM .
This is a synthetic test in which the throughput is measured when working with established 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 a 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 HPC Challenge Benchmark ).
In our case, there was one more complication: 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 interesting. In general, they coincide with those obtained by the authors of the article cited above on Anandtech. Although the experiment was carried out differently: to build the program from the source code, we used the standard gcc compiler (and 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 leads in a significant lead (the manufacturer writes about this in recently published marketing materials, for example, in the AMD EPYC SoC Delivers Exceptional Results on the STREAM Benchmark on 2P Servers article ).
However, let's not rush to conclusions: high results of synthetic tests indicate real performance very indirectly. Let's see how our processors cope with tasks that are more or less close to real practice.
To evaluate performance, it is very good to run on the server the assembly of something complex and resource-intensive. We collect a set of C ++ Boost libraries : download the archive with the latest version sources from the official site (today it is version 1.65.1 ), unpack and run the assembly (everything is 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, assembly takes 9 minutes 12 seconds ;
- on a server with AMD Epyc 7351 - in 10 minutes 15 seconds ;
- on a server with Intel Xeon Silver - in 12 minutes .
The result, as we see, turned out to be quite predictable: AMD did better than Silver, but worse than Gold.
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, in that they are based on computational tasks close to real ones, and secondly, in that they create a good processor load.
For tests, we used compiled binary files hosted on the University of Illinois website . You can also find configuration files for benchmarks there .
Two standard tests were performed: STMV and APOA1. Since all processors involved in the test have different numbers of cores, we limited the test to 40 threads (flow 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 - Tobacco Mosaic Satellite Virus). We will not write down the details of the calculations (interested readers will find everything at the link above). We only note that in order to simulate the dynamics of this virus itself, 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.
When evaluating and analyzing the results, we will pay attention primarily to the time taken to complete the test. The results are presented in the following diagram:
As expected, Intel Xeon Gold breaks out into the leaders. On the second - AMD EPYC (224.000992 s). Next come 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 distributed as follows:
- Intel Xeon Gold - 19.105089;
- AMD EPYC - 09/22/503;
- Intel Xeon Silver - 25.303406;
- Intel Xeon E5 2630v4 - 23.258205.
The results are shown more clearly in the diagram:
AMD Epyc once again proved to be quite predictable, beating Intel Xeon Silver, but losing Intel Xeon Gold.
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. This is not the first time AMD is 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 price-quality ratio?
The recommended price for AMD EPYC 7351 is $ 1,100 (information from the article In the Epyc center: More Zen server CPU specs, prices sneak out of AMD ), and it is much cheaper than most Intel Xeon Gold processors (for example, recommended prices) Moreover, the indicated 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).
Compared to Silver AMD EPYCs look quite competitive: the results of both our and third-party benchmarks (for example, Intel Xeon Silver 4116 Linux Benchmarks and Review of the Top-End 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 completely 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) AMD EPYC-based servers can be recommended.
However, for more specialized tasks (for example, for high-performance computing or virtualization) Intel processors are more preferable (see reflections on this topic in the article Dissecting Intel's EPYC Benchmarks: Performance Through the Lens of Competitive Analysis ).
We will closely monitor the situation on the processor market. We hope that in the near future we will 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 tell you about it in the following publications.
Thanks to ASUS for the provided server