Could somebody walk me through why ARM based servers are so inexpensive compared to their x86 counterparts?
Is performance much lower?
16 cores & 32gb of RAM for less than 25 euros seems like a bargain.
Firstly ARM processors are simpler to produce, with simpler circuitry (RISC!), although the number of transistors tend to be similar between the two platforms.
Research costs are also very expensive for x86, with 2 vendors (Intel and AMD) competing savagely in many different markets such as high-end gaming, servers, ultrabooks and low cost PCs. However, ARM (the company) focuses on licensing the designs and instruction sets. So their research costs are split among many licensees while ARM focused on what it does best: designing chips.
That in turn translates into many vendors who can focus on improving manufacturing efficiency, procurement, logistics and sales. x86 vendors have a wild range of manufacturing lines to keep up.
Finally, the laws of supply and demand play a huge part. The ARM market is 2 orders of magnitude (!!) greater than x86 as far as raw number of processors shipped, ~370M vs ~32B chips in 2022.
x86 has more pathways (interconnects), x86 implements a "mesh" design, which is a low-latency, high-power configuration of pathways. ARM uses a neat hierarchical design that favors low-power consumption.
So, given a x86 and an ARM chip with the same number of transistors, the ARM one will still be a simpler, low-power chip with probably a higher number of cores.
I would guess simpler CPU core architecture means more cores per die. Presumably it also means lower performance, but perhaps not by as much as you think, since typically the most performant CPUs aren't the most cost-effective.
Quick Googling shows:
- Intel W9-3495X has 56 cores for $5889
- AMD EPYC 64 has 64 cores for $4299
- Ampera Altra M128-30 has 128 cores for $5800
The Altra uses about the same power as AMD, and much less than Intel, despite offering twice as many cores. So it stands to reason that you just get twice as many cores for the same money, even if you factor in power, cooling and maintenance costs.
Hetzer offers a 16 core AMD (v)CPU machine at 225% of the price, so that roughly works out.
Is that still the case? The prices seem to have peaked around August and are now back to their pre war levels. Before that prices have already been steadily rising since September, 2021 though.
e.g. average price in August was over 400% higher than this March
ARM's N-series cores are targeted at a somewhat lower performance point than top line x86 cores. That saves a bunch of transistors since there's a lot of diminishing returns. There's also design compromises not being made in order to hit clock speeds that server parts never try to hit anyways. Not having to decode complicated x86 instructions but simple RISC ones is also a small advantage, somewhere on the order of 5% power savings.
Also, x86 backwards compatibility and SMT don't cost much in terms of power or transistors but both have large costs in of verification work.
Demand and supply. Even if they did offer equal performance most of your docker images and other binaries may need to be rebuilt. The inertia is hard to beat.
Base docker images, such as Ubuntu have support for multiple architectures.
Building your own based on them isn’t really difficult at all; docker buildx works remarkably well and build tools such as maven, sbt, etc. seem to have rather decent support for building multiarch images.
Even better if you have decent build automation, implement cross building for amd64 and arm64 once and just make sure your FROM images support those.
A lot of things are usually not difficult in the absolute sense.
It's not just the building of it but the testing/verification of what's built.
1 major problem with a lot of use cases is there isn't enough test coverage and hence confidence in the change. Some people / companies find it easier to just pay the difference.
Maybe competition? x86 has only 2 competitors left. ARM has more diverse ecosystem of competitors and the environments ha been different.
ARM design had to be adjusted/developed for a cell phones often cost 10% of a normal computers (main use of x86). I can buy a cell phone a display, battery, memory and ARM cpu for $100 total (no idea how much ARM chip alone cost). The phone will have a semi-acceptable performance.
Even cheapest x86 CPU with emi acceptable performance probably cost more than $100 and cheapest x86 cpu more than $50.
Ampere is the only game in town for buying a server ARM chip. It isn't like anyone is rack mounting Samsung Galaxies, so the variety of manufactures working in other spaces doesn't really matter.
Nvidia claims to be working on getting in the server game later this year so maybe ARM will get to x86 levels of competition.