what are the prospects for processors in the server segment

Short description

Selectel, a Russian hosting and cloud solutions provider, has tested an ARM processor for dedicated servers and found it to be suitable for high-performance computing. The company compared an Ampere Altra processor with 80 cores against two processors from AMD with 64 cores combined. It found the ARM processor was particularly strong in task parallelisation, with performance noticeable in settings requiring large numbers of physical cores. Single-threaded performance was poor, and the behaviour of ARM video cards was unstable. However, the company said demand was growing for ARM solutions and noted it was able to overcome initial build problems.

what are the prospects for processors in the server segment

There is a lot of buzz around ARM processors. The popularity of the x86 competitor grows every year – processors appear in both the desktop and server segments. We couldn’t pass up a promising technology and studied ARM well to add

server

in the line of dedicated servers. In this selection, you will learn about the results of testing the Ampere Altra ARM processor, solving problems with a non-adapted build of Arch Linux, and the future of ARM in the server segment. If you want to delve deeper into the topic, you’re in for a treat!

Are ARM processors really the future?

In x86-based processors, solutions are closed: it is impossible to access information about the architecture and change the existing configuration. ARM is, in fact, only a kernel, and in the form of documentation. The user buys a command system and receives recommendations on how and with which pipelines, power systems and external interface drivers to use it. And later – chooses the technical process and the manufacturer. In essence, ARM is some salvation from vendor lock.

Learn more about platform development →

Development prospects of ARM processors

ARM-based server processors do not appear as widely as chips for mobile devices. However, technology companies are now investing in the development of their own equipment. Yes, Ampere is actively promoting its processors, which catch up with the characteristics of Graviton from AWS. Google and Microsoft are moving to develop their own chips, reducing their dependence on Intel, and Amazon and Alibaba say that by 2025, 25% of all new instances will be on their own ARM processors.

Despite the fact that ready-made ARM solutions are just emerging today, demand is growing.

What are the main problems of working with ARM now?

Problems with ARM versions of VMs and libraries.

One of Selectel’s customers testing ARM ran into a missing libc library in Arch that supports C++20, while Arch on x86 contains the correct library. The issue was resolved by switching to Ubuntu.

The behavior of ARM video cards is unstable. We encountered unstable behavior of video cards and do not understand how to solve it. Therefore, for now, clients with video cards will remain on x86.

Read about other features and results of client tests at the link →

Will ARM processors overtake x86 in terms of performance?


To answer this question, we took a GIGABYTE E252-P30 server with an 80-core Ampere Altra processor for study. We wanted to make sure to what extent ARM meets the stated characteristics, so we tested it and compared it with a server on a processor from AMD (more precisely, on two CPUs) – with 64 cores in total.

In the Selectel Lab, we not only test the hardware, comparing the declared characteristics with the real ones, but also find out how well the equipment integrates into the Selectel data center system. We are studying whether it will be possible to add the automations we need (for example, installing the OS) and whether the equipment will be efficient in terms of energy consumption.

ARM benchmarks

We ran a performance test using Geekbench 5. We decided to install Ubuntu on the server because it is the most frequently used OS for ARM. The test methods used Ubuntu 22.04.01 LTS 5.15.0-50-generic aarch64 – a new Ubuntu distribution for the aarch64 architecture.

What we have in store ↓

  • motherboard GIGABYTE MP32-AR1-00
  • processor Ampere Altra Q80-30
  • memory: 16 x 16 GB Micron DDR4 3200 MHz ECC (256 GB)
  • 2 Micron_5300 SSD drives of 480 GB
  • NVMe drive for 1 TB M.2 SSD (GIGABYTE GP-AG41TB)
  • three Nvidia TESLA T4 graphics cards

We found out that in single-threaded mode the processor produces low results. Instead, it shows high performance in multithreading. Yes, an ARM processor will be useful in high-performance computing, if this is the main task of the customer.

Geekbench 5 test results

The result in Single-core and Multi-core mode

In Multi-core mode, the ARM processor overtakes x86 in all criteria. This is especially noticeable in settings with task parallelization. The law “the more cores, the better” works here. At the same time, preference is given to physical, not hyper-trading cores, with which the x86 architecture works. Therefore, in a number of criteria, for example, Gaussian blur, HDR, Camera, etc. – ARM leads very confidently.

We also measured speed, power consumption and performed a stress test. It was important for us to know whether the ARM processor from Ampere is suitable for use in data centers.

Read more test results in the article →

Is it possible to add ARM servers to data centers?


Ampere Altra Max M128-30 configuration with ARM processor inside has been added to our server line. Since we’re trying to get dedicated servers up and running quickly, a custom build of Arch Linux comes in handy to automate the process. We planned to set up the distribution for ARM in two weeks, but we ran into problems.

What’s wrong with collecting?

  1. The developer duplicated most of the classes, changing the variable values ​​to those required for the aarch64 architecture. Because of this, the build had no artifacts to boot the server in UEFI mode.
  2. We wanted to chroot with a cross-architecture build, but the utility crashed when “adding” packages “inside” the image.
  3. We heavily customized our service image, so we couldn’t use the ready-made binary packages in the repositories.

Read how we set up automatic server loading →

How we fixed the problems

Mmodified archiso-aarch64 assembly scripts.

Namely, they changed the class that was used when compiling the image under the legacy loading mode.

In the part responsible for compiling UEFI artifacts, a class responsible for packaging the kernel and initramfs is imported. We added 622 to the line _run_once _make_boot_on_iso9660. This allowed us to get the required artifacts to download.

WITHdropped GitLab-runners on Raspberry Pi 4 GitLab-runner uses Docker as an executor. This is very different from building an x86 image that uses libvirt and QEMU. The latter works so far extremely slowly in aarch64 emulation mode, so a simpler setup executor is needed. We chose the RPi4.

Rewrote the autotest script andsome features for arm64 were completely abandoned. For example, automatic firmware of motherboards and peripherals, as well as automatic BMC configuration.

Answering the question in the title, for real! At first glance, the task seems simple due to the minimal differences between aarch64 and x86_64, but the deeper you dive, the more nuances are revealed. Therefore, we made decisions through practical experiments and relied on the experience of our colleagues. But if you have a similar task, you don’t have to go all this way on your own.

Detailed instructions for configuring Arch Linux for ARM →

You may also be interested in these texts:

→ ARM announced the release of its own processor. But why?
→ Linux again: kernel 6.3 release. More features and updates in this version
→ Ampere Altra Dev Kit: ATX board with ARM Amere Altra processor. What is the system and why is it needed?

Related posts