CPU Tests: Synthetic and SPEC

Most of the people in our industry have a love/hate relationship when it comes to synthetic tests. On the one hand, they’re often good for quick summaries of performance and are easy to use, but most of the time the tests aren’t related to any real software. Synthetic tests are often very good at burrowing down to a specific set of instructions and maximizing the performance out of those. Due to requests from a number of our readers, we have the following synthetic tests.

Linux OpenSSL Speed: SHA256

One of our readers reached out in early 2020 and stated that he was interested in looking at OpenSSL hashing rates in Linux. Luckily OpenSSL in Linux has a function called ‘speed’ that allows the user to determine how fast the system is for any given hashing algorithm, as well as signing and verifying messages.

OpenSSL offers a lot of algorithms to choose from, and based on a quick Twitter poll, we narrowed it down to the following:

  1. rsa2048 sign and rsa2048 verify
  2. sha256 at 8K block size
  3. md5 at 8K block size

For each of these tests, we run them in single thread and multithreaded mode. All the graphs are in our benchmark database, Bench, and we use the sha256 results in published reviews.

(8-3c) Linux OpenSSL Speed sha256 8K Block (1T)(8-4c) Linux OpenSSL Speed sha256 8K Block (nT)

Specifically on the sha256 tests, both AMD and Via pull out a lead due to a dedicated sha256 compute block in each core. Intel is enabling accelerated sha256 via AVX-512 to its processors at a later date.

GeekBench 5: Link

As a common tool for cross-platform testing between mobile, PC, and Mac, GeekBench is an ultimate exercise in synthetic testing across a range of algorithms looking for peak throughput. Tests include encryption, compression, fast Fourier transform, memory operations, n-body physics, matrix operations, histogram manipulation, and HTML parsing.

I’m including this test due to popular demand, although the results do come across as overly synthetic, and a lot of users often put a lot of weight behind the test due to the fact that it is compiled across different platforms (although with different compilers).

We have both GB5 and GB4 results in our benchmark database. GB5 was introduced to our test suite after already having tested ~25 CPUs, and so the results are a little sporadic by comparison. These spots will be filled in when we retest any of the CPUs.

(8-1c) Geekbench 5 Single Thread(8-1d) Geekbench 5 Multi-Thread

LinX 0.9.5 LINPACK

One of the benchmarks I’ve been after for a while is just something that outputs a very simple GFLOPs FP64 number, or in the case of AI I’d like to get a value for TOPs at a given level of quantization (FP32/FP16/INT8 etc). The most popular tool for doing this on supercomputers is a form of LINPACK, however for consumer systems it’s a case of making sure that the software is optimized for each CPU.

LinX has been a popular interface for LINPACK on Windows for a number of years. However the last official version was 0.6.5, launched in 2015, before the latest Ryzen hardware came into being. HWTips in Korea has been updating LinX and has separated out into two versions, one for Intel and one for AMD, and both have reached version 0.9.5. Unfortunately the AMD version is still a work in progress, as it doesn’t work on Zen 2.

There does exist a program called Linpack Extreme 1.1.3, which claims to be updated to use the latest version of the Intel Math Kernel Libraries. It works great, however the way the interface has been designed means that it can’t be automated for our uses, so we can’t use it.

For LinX 0.9.5, there also is a difficulty of what parameters to put into LINPACK. The two main parameters are problem size and time – choose a problem size too small, and you won’t get peak performance. Choose it too large, and the calculation can go on for hours. To that end, we use the following algorithms as a compromise:

  • Memory Use  = Floor(1000 + 20*sqrt(threads)) MB
  • Time = Floor(10+sqrt(threads)) minutes

For a 4 thread system, we use 1040 MB and run for 12 minutes.
For a 128 thread system, we use 1226 MB and run for 21 minutes.

(8-5) LinX 0.9.5 LINPACK

 

CPU Tests: SPEC

SPEC2017 and SPEC2006 is a series of standardized tests used to probe the overall performance between different systems, different architectures, different microarchitectures, and setups. The code has to be compiled, and then the results can be submitted to an online database for comparison. It covers a range of integer and floating point workloads, and can be very optimized for each CPU, so it is important to check how the benchmarks are being compiled and run.

We run the tests in a harness built through Windows Subsystem for Linux, developed by our own Andrei Frumusanu. WSL has some odd quirks, with one test not running due to a WSL fixed stack size, but for like-for-like testing is good enough. SPEC2006 is deprecated in favor of 2017, but remains an interesting comparison point in our data. Because our scores aren’t official submissions, as per SPEC guidelines we have to declare them as internal estimates from our part.

For compilers, we use LLVM both for C/C++ and Fortan tests, and for Fortran we’re using the Flang compiler. The rationale of using LLVM over GCC is better cross-platform comparisons to platforms that have only have LLVM support and future articles where we’ll investigate this aspect more. We’re not considering closed-sourced compilers such as MSVC or ICC.

clang version 10.0.0
clang version 7.0.1 (ssh://git@github.com/flang-compiler/flang-driver.git
 24bd54da5c41af04838bbe7b68f830840d47fc03)

-Ofast -fomit-frame-pointer
-march=x86-64
-mtune=core-avx2
-mfma -mavx -mavx2

Our compiler flags are straightforward, with basic –Ofast and relevant ISA switches to allow for AVX2 instructions. We decided to build our SPEC binaries on AVX2, which puts a limit on Haswell as how old we can go before the testing will fall over. This also means we don’t have AVX512 binaries, primarily because in order to get the best performance, the AVX-512 intrinsic should be packed by a proper expert, as with our AVX-512 benchmark. All of the major vendors, AMD, Intel, and Arm, all support the way in which we are testing SPEC.

To note, the requirements for the SPEC licence state that any benchmark results from SPEC have to be labelled ‘estimated’ until they are verified on the SPEC website as a meaningful representation of the expected performance. This is most often done by the big companies and OEMs to showcase performance to customers, however is quite over the top for what we do as reviewers.

For each of the SPEC targets we are doing, SPEC2006 rate-1, SPEC2017 speed-1, and SPEC2017 speed-N, rather than publish all the separate test data in our reviews, we are going to condense it down into a few interesting data points. The full per-test values are in our benchmark database.

(9-0a) SPEC2006 1T Geomean Total(9-0b) SPEC2017 1T Geomean Total(9-0c) SPEC2017 nT Geomean Total

Both of the 8-core Core i7 parts here are handily beaten by AMD's 6-core Ryzen 5 in ST and MT.

CPU Tests: Legacy and Web Gaming Tests: Chernobylite
Comments Locked

210 Comments

View All Comments

  • Spunjji - Wednesday, January 27, 2021 - link

    The review didn't say it is a bad CPU.
  • HarkPtooie - Tuesday, February 2, 2021 - link

    Gigabyte B460M DS3H
    Pegged at 100% CPU utilization on 8 cores (HT disabled) the wall meter says 149-163 W, CoreTemp says I use about 70 W core and 8 W uncore. CPU multiplier bounces between 43-47x, though mainly resting at 46x. Temps are 65-66°C using a humble CoolerMaster TX3 Evo.

    Just upped the PL1 to 250 W in BIOS. It made no discernible difference, so I suppose it doesn't work on B460 chipsets.
  • Everett F Sargent - Tuesday, February 2, 2021 - link

    Enable HT. If not then why not? The battery of tests conducted here and everywhere else have HT enabled. So far, you are still at the apples != oranges stage. It is now time for you to step up or ... :/

    Please post results with HT enabled.
  • Everett F Sargent - Tuesday, February 2, 2021 - link

    Oh and the benchmark application that you are using (e. g. Prime95 or whatever) if you do not mind. Please. TIA
  • HarkPtooie - Wednesday, February 3, 2021 - link

    So: I set all the PL limits to max (4090 W) and reran. 173 W. Up 10-15 W from default.

    Then I enabled HT and reran. 213 W. +40 W compared to non-HT.

    So I turned off the PL tweaking and reran, with HT on. 204 W initially, then after a while it went down to ca 140 W and the multipliers reduced to about 37x.

    Kind of surprised that HT made such a difference, I was under the impression that HT "cores", being a small backpack aside the "real" core, added a tiny percent of transistors overall. I usually disable HT because the software I run don't benefit from them and actually loses performance with it.

    So: mystery solved and I stand corrected.

    Intel is not lying when they call this a 65 W CPU. They are however obscuring the fact that it does so with REDUCED PERFORMANCE. Its default behavior is to only run at 100% for half a minute.

    When allowed by BIOS tweaks, it will double the power draw but run at 100% all the time. This is overclocking in the sense that default settings are overridden - but it is not in the sense that the peak speed is not actually driven above its intended levels. Just maintained at higher power draw.

    Aight. I'm back to non-HT and free power. 173W is not that much.

    Just did a compare of performance during my simulations, and they were more or less identical to the default settings.
  • Qasar - Thursday, February 4, 2021 - link

    it is possible that the Gigabyte B460M DS3H that you are using ( as per a previous post ) could be holding the cpu back as far as overclocking, power usage and such goes. as the B460m doesnt support overclocking by intel, but asus, asrock and msi seems to have found a way to enable overclocking:
    https://www.techpowerup.com/266489/asrock-enables-...
    https://videocardz.com/newz/asus-asrock-and-msi-br...

    at the same time, though, what asus, asrock and msi have done, isnt really overclocking, but more of allowing the cpu to use its turbo states longer, then what intel allows

    both of those links, could explain, at least partly, HarkPtooie, why you are getting the results you have.
  • Everett F Sargent - Thursday, February 4, 2021 - link

    Yes, I found those links also. Conspicuously absent from all those reports was Gigabyte. But ...
    https://www.gigabyte.com/us/Motherboard/Intel-H470...

    There you will find ...
    B460M DS3H (rev. 1.0)
    B460M DS3H AC (rev. 1.x)
    B460M DS3H V2 (rev. 1.0)
    (ranked oldest to newest afaik)

    From the manual for the B460M DS3H (rev. 1.0) (page 25) ...
    https://download.gigabyte.com/FileList/Manual/mb_m...
    https://download.gigabyte.com/FileList/Manual/mb_m...
    https://download.gigabyte.com/FileList/Manual/mb_m...

    "Turbo Power Limits
    Allows you to set a power limit for CPU Turbo mode. When the CPU power consumption exceeds the specified power limit, the CPU will automatically reduce the core frequency in order to reduce the power. Auto sets the power limit according to the CPU specifications. (Default: Auto)

    Package Power Limit TDP (Watts) / Package Power Limit Time
    Allows you to set the power limit for CPU Turbo mode and how long it takes to operate at the specified power limit. If the specified value is exceeded, the CPU will automatically reduce the core frequency in order to reduce the power. Auto sets the power limit according to the CPU specifications. This item is configurable only when Turbo Power Limits is set to Enabled. (Default: Auto)

    DRAM Power Limit (Watts) / DRAM Power Limit Time
    Allows you to set the power limit for memory Turbo mode and how long it takes to operate at the specified power limit. Auto lets the BIOS automatically configure this setting. This item is configurable only when Turbo Power Limits is set to Enabled. (Default: Auto)"

    That same language can be found for all three MB manuals. So. it would appear that pl1, pl2 and tau are adjustable as HarkPtooie has suggested (but to be sure the latest bios version should be installed imho).

    The only question I have is, why did Gigabyte apparently update the B460M DS3H (rev. 1.0) to the B460M DS3H V2 (rev. 1.0) (maybe they are different in some hardware way that I have failed to notice).

    The stress test should be the one that produces the highest temperatures together with the best cooling solution possible for these non-K parts. It sounds a bit circular but then these are non-K parts where we constrain the control knobs to just pl1, pl2 and tau.
  • Spunjji - Monday, January 25, 2021 - link

    "If you are going to make wild speculations whose veracity anyone can check, you might want to go over your material a bit better."

    The irony of ending your FUD with this... it's glorious!
  • HarkPtooie - Tuesday, January 26, 2021 - link

    It would be ironic if I were wrong, but I sort of trust my eyes here. And my point was that anyone possessing an i7-10700 and a $20 wattmeter can easily check this too.
  • Spunjji - Wednesday, January 27, 2021 - link

    Good for you, but I don't trust your eyes - not when every objective review available on the internet contradicts you.

Log in

Don't have an account? Sign up now