Cavium ThunderX2 Review and Benchmarks a Real Arm Server Option


Cavium ThunderX2 OpenSSL Performance

Switching to our more standard test suite, we are going to show results using gcc. We are using OpenSSL 1.1.0g which is the standard for Ubuntu 18.04 LTS at its release and showing RSA2048, RSA3072, and RSA4096 results for a wider array of CPUs.

Cavium ThunderX2 OpenSSL Sign Benchmarks
Cavium ThunderX2 OpenSSL Sign Benchmarks

We added 24-core AMD EPYC 7451, the Intel Xeon E5-2699 V4 and the Intel Xeon Gold 6152 to these charts to expand the base a bit more.

Cavium ThunderX2 OpenSSL Verify Benchmarks
Cavium ThunderX2 OpenSSL Verify Benchmarks

On the verify side, the Cavium ThunderX2 leapfrogs AMD’s top bin 24-core EPYC 7451 in terms of performance. There are algorithms that Cavium ThunderX2 is significantly better at, but we wanted to show that even in an area where they are less well suited, the Cavium ThunderX2 still performs in the ballpark of the higher-end Intel and AMD offerings. The other aspect to keep in mind here is that the AMD EPYC 7451 is the second least expensive current generation chip on these charts and is still around 50% more expensive than the ThunderX2 CN9980.

In summary, this is not a good workload for Cavium, but it still is competitive in nominal performance while winning on a price/ performance basis.

Cavium ThunderX2 Family c-ray 8K Performance

We had the opportunity to change our 32 core chip to other core counts in order to emulate different SKUs. We decided to emulate the 30 core / 120 thread ThunderX2 CN9978, the 28 core / 112 thread ThunderX2 CN9975 and the 24 core / 96 thread ThunderX2 CN9975. Cavium gave us the capability and said that performance should be correct albeit with higher power consumption. We did not have the time to run everything across the SKU stack for launch but we wanted to give some relative idea of performance between the SKUs.

This is an updated c-ray benchmark we have been using for years now to simulate an 8K render. It is highly dependent on high core/ thread counts and cache speeds. AMD EPYC has ruled this benchmark since its introduction.

Cavium ThunderX2 C Ray 8K Benchmark Comparison Stack
Cavium ThunderX2 C Ray 8K Benchmark Comparison Stack

Overall, the Cavium ThunderX2 showed great scaling from 96 to 256 threads just about how we would expect to see in this test.

Cavium ThunderX2 Compression Performance

Another benchmark we have used for years is 7zip for compression/ decompression performance. We wanted to show a result, and then show why Cavium ThunderX2 is different.

Cavium ThunderX2 7zip Compression Benchmarks
Cavium ThunderX2 7zip Compression Benchmarks

That decompression speed absolutely crushes AMD EPYC 7000 and Intel Xeon Scalable numbers. We even added the Intel Xeon Platinum 8180 into the mix just to show some magnitude regarding just how big that number is. We also added a few quad Intel Xeon E7 numbers into the mix to give a sense of scale. The performance of Cavium ThunderX2 can be very competitive with x86 offerings.

This result brings up a great point on Cavium ThunderX2. 256 threads is a lot, especially with 64MB of cache. Just like we see performance oddities on four-socket systems that reach over 200 threads on the x86 side, sometimes you run into situations where the software simply cannot keep up with utilizing that many threads. We ran the test on an extra, not counted, run and just watched htop. This is what we saw:

Cavium ThunderX2 Htop Uneven Thread Utilization
Cavium ThunderX2 Htop Uneven Thread Utilization

As our standard, we run this with SMT set to a maximum. At the same time, this is a case where all of the cores are not being utilized evenly and that is hurting performance.

Cavium ThunderX2 UnixBench Performance

UnixBench is an old benchmarking suite that frankly is a bit too old. However, it is interesting from a few points of view. First, we get a lot of readers who request the whetstone/ dhrystone 2 results. Second, it is a suite conceived before Arm architectures were a major force in servers. Although we have been highlighting multi-core performance, we are going to use this as a way to highlight single core performance as well.

Cavium ThunderX2 UnixBench Dhrystone 2 Multi
Cavium ThunderX2 UnixBench Dhrystone 2 Multi

Looking at the dhrystone 2 results, the multi-threaded results are competitive. AMD does well here since it has 32 threads per socket as well but you can see the dual Cavium ThunderX2 setup is just between the dual AMD EPYC 7601 and the dual Intel Xeon Gold 6148. We wanted to showcase single threaded results and so here is what that looks like:

Cavium ThunderX2 UnixBench Dhrystone 2 Single
Cavium ThunderX2 UnixBench Dhrystone 2 Single

One can see the impact of the higher single core turbo boosts that Intel offers. The Cavium ThunderX2, much like many Arm designs we have seen, has competitive single thread performance but relies upon using many cores to hit upper echelons of performance.

Moving to the whetstone side, here is what the results look like for multi-threaded:

Cavium ThunderX2 UnixBench Whetstone Multi Threaded
Cavium ThunderX2 UnixBench Whetstone Multi Threaded

That is a 256 thread dual Cavium ThunderX2 chip hitting top marks in the multi-threaded results.

Here are the single thread results:

Cavium ThunderX2 UnixBench Whetstone Single Thread
Cavium ThunderX2 UnixBench Whetstone Single Thread

Again, we see the strength of the ThunderX2 architecture is running a massive number of parallel threads.

While this may be an antiquated workload, using gcc-7 the ThunderX2 CN9980 performs extremely well on our multi-threaded tests.


  1. I’m through page 3. I’m loving the review so far but I need to run to a meeting.

  2. Looks like a winner. Are you guys doing more with TX2?

    It’s crazy Cavium is doing what Qualcomm can’t. All that money only to #failhardcentriq

  3. Cool chart with the 24 28 30 and 32 core models

    Cavium needs to fix their dev station pricing. $10k+ for two $1800 cpus in a system is too much. Their price performance is undermined by their system pricing

  4. Read the whole thing, very impressed with the TX2 performance and pricing, think i’m going to try one out. But was a bit bummed out when i found out on page 8, the most important thing, power usage, wasn’t properly covered and compared to the Intel and AMD systems 🙁

  5. Welcome competition, always good to see that there is pressure on the market leader.
    Microsoft is also working on an ARM version for windows, so this can go the right way…

  6. I’m very confused by some of what you wrote and the exact testing setups of these platforms is extremely unclear. To cite just one example of Linpack test where you state:

    “Our standard is to run with SMT on since that is what most of the non-HPC environments look like. This is a case where having 256 threads simply is too much. We also ran the test with 32 threads per CPU, or SMT off which yielded a solid improvement. ”

    On a 4-way SMT system you get 256 threads by operating 64 cores. You claim that the CPU only has at most 32 cores and in the same statement you re-tested at 32 threads. So…. what exactly did you test? A 32 core CPU that *cannot* have 256 threads? A two-socket 64-core system that can have 256 SMT threads but that was then dropped to a single-socket configuration with only a single 32 core processor?

    Please put in a clear and unambiguous table that provides the *real* hardware configurations of all the test systems.
    That means:
    1. How many sockets were in-use. Were *ALL* the systems dual socket? All single socket? A mixture? I can’t tell based on the article!

    2. Full memory configuration. Yes I know about the channel differences, but what are the details.

    3. That’s just a start. The article jumps from vague slides about general architecture to out-of-context benchmark results too quickly.

  7. Competition in the server industry great!

    Don – 32 threads per cpu means 64 threads total right? 2x 32 isn’t that hard.

  8. I don’t think this convinced me to buy them. But I’ll at least be watching arm servers now. We run a big VMware cluster so I’d have a hard time convincing my team to buy these since we can’t redeploy in a pinch to our other apps.

  9. We’ll be discussing TX 2 at our next staff meeting. Where can we get system pricing to compare to Intel and AMD?

  10. Can you do more about using this as Ceph or ZFS or something more useful? Can you HCI with this?

    Love the write-up. You guys have grown so much and it shows in how much you’re covering on this which is still a niche architecture in the market.

  11. Nice write-up, with plenty of details, on the newly launched. Congrats to Cavium.

    Cavium Arm server processor launch, suddenly Microsoft shows up and reiterates it still wants >50% of data center capacity to be Arm powered. And it’s loving Cavium’s Thunder X2 Arm64 system. Together designed two-socket Arm servers…

  12. Looks like cavium is taking on Intel with armv8 workstation. Same processor as used by cray. Interesting. Comparing to Xeon ThunderX2 is good in all aspects like performance, band width, No.of cores, sockets, power usage etc.

    Competition in silicon is good for the market.

  13. CaviumInc steps up with amazing 2.2GHz 48-core ThunderX2 part, along with @Cray and @HPE Apollo design wins, and @Microsoft and @Oracle SW support. Early days for #ARM server, but compelling story being told.

    ThundwrX2 Arm-based chips are gaining more firepower for the cloud.

    The Qualcomm Centriq 2400 motherboard had 12 DDR4 DIMM slots and a single >> 48 core CPU.

    The company also showed off a dual socket Cavium ThunderX 2. That system had over >> 100 cores and can handle gobs of memory

    “With list prices for volume SKUs (32 core 2.2GHz and below) ranging from $1795 to $800, the ThunderX2 family offers 2-4X better performance per dollar compared to Qualcomm Centriq 2400 and Xeon…”

    Cavium continues to make inroads with the ThunderX2 @Arm-compatible platform..

  14. Nice Coverage. 40 different versions of the chip that are optimized for a variety of workloads, including compute, storage and networking. They range from 16-core, 1.6GHz SoCs to 32-core, 2.5GHz chips ranging in price from $800 to $1,795. Cavium officials said the chips compete favorably with Intel’s “Skylake” Xeon processors and offer up to three times the single-threaded performance of Cavium’s earlier ThunderX offerings.

    The ThunderX2 SoCs provide eight DDR4 memory controllers and 16 DIMMS per socket and up to 4TB of memory in a dual-socket configuration. There also are 56 lanes of integrated PCIe Gen3 interfaces, 14 integrated PCIe controllers and integrated SATAv3, GPIOs and USB interfaces.

    Kudos to Cavium…

  15. Those power numbers look horrendous. A comparable intel system would be less than half that draw. In fact, 800W is the realm 2P IBM POWER operates in. I get that it’s unbinned silicon and not latest firmware but I can’t see all that accounting for ~50-75W tops. My guess is Broadcom didn’t finish the job before it was sold to Cavium, and if Cavium had to launch it now lest they come up against the next x86 server designs (likely starting to sample late 2018).

    I guess when Patrick gets binned silicon with production firmware, he’ll also have to redo the performance numbers because it’s quite possible that the perf numbers will likely take some hit. 800W! At least it puts paid to the nonsense about ARM ISA being inherently power efficient. Power efficiency is all about implementation.

  16. The performance looks quite good, but yeah the 800W are a show stopper…
    The xeons and epyc processors consume way less than that.
    I doubt they can get to the power consumption of the xeons and epyc without lowering quite a lot the max frequency and voltages accordingly. If they can do it, then that’s great. But I have some doubts.

  17. For the STREAMS benchmark (“Cavium ThunderX2 Stream Triad Gcc7”) I assume the Intel compiler is leveraging the FMA instructions, giving them the boost in performance.

  18. RuThaN – how would you propose performance per dollar? All SKUs used in the performance parts have list prices that are easy to get. Discounts, of course, are a reality in enterprise gear. The ThunderX2 is sub $1800 which is by fart the least expensive.

    Beyond the chips, what system/ configuration are you using them in? How do you factor in the additional memory capacity of ThunderX2 versus Skylake-SP, will that mean fewer systems deployed?

    What cost for power/ rack/ networking should we use for the TCO analysis?

    I do not think that performance/ dollar at the CPU level is a metric those outside of the consumer space look at too heavily versus at least at the system cost. For example, this is a fairly basic TCO model we do:

  19. Failure to publish measured power during *every* benchmark run is evasive. This is critical data, for the spread of workloads, and allows calculating energy efficiency.
    Please be honest and report the data. Caveats are fine but failure to report is not fine.

  20. Richard Altmaier – thank you for sharing your opinion. There are two components for sure, performance and power consumption. Both are certainly important, but for this review, performance seemed ready, power did not due to a variety of noted factors.

    As mentioned, the test system we have is fairly far from what we would consider comparable to the AMD/ Intel platforms that have been in our labs for more than a year. We do enough of these that it is fairly to see that power is higher than it should be. We do not want to publish numbers we are not confident in, lest they get used by competitors.

    We also mentioned that there will be a follow-up piece to this. The other option was to publish zero power numbers. Despite your opinion, performance alone is a compelling story. Unlike the x86 side, the ARM side has never had a platform that can hit this level of performance which makes the raw performance numbers quite important themselves.

    BTW – There was a well-known Intel executive also named Richard Altmaier.

  21. Would love to see the commands used to generate these results, especially on STREAM on the 8180. I’ve not seen more than ~92GB/s with 768GB installed across all 6 channels with OpenMP parallelization across all 56 threads…


Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.