48 core ARM 64 bit server

# cat /proc/cpuinfo
processor	: 0
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x43
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x0a1
CPU revision	: 1

processor	: 1
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x43
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x0a1
CPU revision	: 1

[... very long output truncated here ...]

processor	: 44
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x43
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x0a1
CPU revision	: 1

processor	: 45
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x43
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x0a1
CPU revision	: 1

processor	: 46
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x43
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x0a1
CPU revision	: 1

processor	: 47
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x43
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x0a1
CPU revision	: 1

It’s a Cavium ThunderX. Thanks Cavium and Jon.

6 Comments

Filed under Uncategorized

6 responses to “48 core ARM 64 bit server

  1. Could you do me a favor and see how well this Cavium system runs my Cuckoo Cycle Proof-of-Work system? See https://github.com/tromp/cuckoo
    Thanks!
    -John

    • rich

      Sorry – no can do. I’m very limited in what I can say about this machine in public by NDAs, and I can’t run non-RHEL code on it at all.

  2. no thanks

    Any initial feel for performance on server workloads? How is the per-core perf compared to x86? (Per-core is something I worry about given the ancestral highly-parallel network processors, as latency of a single thread is often dominating the perf of even scale-out workloads)

    • rich

      I’m very limited in what I can say, and in particular I cannot publish any benchmarks. I had to get permission from Cavium just to publish the /proc/cpuinfo output you see above.

      I did compile libguestfs on it, which is a big, mixed C + OCaml suite of programs. It was pretty nice to be able to use make -j48 🙂 However what you find when you do this is how constrained your code is by Amdahl’s law. Most of the build is spent looking at ./configure, pod2text and xsltproc, all single-threaded. Where we have been able to split compiles into lots of small files [libguestfs contains a lot of generated code] make goes like lightning.

      Rough impressions are that single core is OK, but if any software manages to use all 48 cores, it will be an amazing machine.

  3. no thanks

    Thanks. Yes, it’s pretty clearly a throughput machine. I really want a competitive ARM64 option, but worry that this is being pushed towards inappropriate workloads.

    E.g. I saw this mistake clearly with the calxeda machines where, on the ecosystem side, there was a lot of wishful thinking when it came to chasing workloads “thought” to be good (but really meant chasing chimeras like hadoop)

  4. Pingback: Gigabyte Cavium ARM servers | Richard WM Jones

Leave a comment

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