Microsoft lanserar ARM64 instanser på Azure

Permalänk
Datavetare

Microsoft lanserar ARM64 instanser på Azure

Nu när Intel tagit Xeon (Sapphire Rapids) till 350 W per socket och ryktena gör gällande att AMD EPYC kan få rent episk per socket effekt på 700 W känns det trevligt att se alternativ.

Amazon håller på att rulla ut som 3:e generation ARM64 baserade instanser, Graviton3, som inte riktigt matchar AMD/Intel i peak-prestanda men står sig riktigt väl ändå. Det som gör Graviton3 speciell är att den når denna prestanda med endast 100 W per socket (likt Graviton 2 handlar det om 64-kärnor per socket).

Microsoft säger själv att de testat ARM64 under många år ("halvt decennium"). Men så här långt har man bara använt ARM64 i infrastrukturen, man har inte erbjudit några ARM64 instanser till sina Azure kunder.

Detta har nu ändrats, Microsoft har precis rullat ut ett test-program av ARM64. Initialt kommer man använda sig av Ampere Altra. Står inte vilken modell det handlar om, men lär minst vara modellen med 64-kärnor per socket, finns även en modell med 80-känor och en med 128-kärnor har visats upp och kommer till samma socket.

Ampere Altra har gått mer på peak-effekt, dess CPUer kan dra upp mot 250 W per socket men är enligt Microsoft ändå klart effektivare än AMD/Intels varianter. AnandTech har testat 80-kärnors modellen.

"Up to 50 percent better price-performance than comparable x86-based virtual machines (VMs) for scale-out workloads."

Trista med Ampere Altra är att den bygger på en plattform som börjar bli lite gammal, den använder Neoverse N1 som lanserades redan 1H 2019 (samma som Graviton2, Graviton3 använder Neoverse N2 som lanserades förra året).

Mycket pekar på att Microsoft håller på att bygga upp ett eget ARM64 team. I nuläget vet ingen om de kommer använda någon egen design (dock rätt troligt, trenden är bort från ARM Neoverse efter allt stök med företagets framtid). Men möjligt att det teamet ska fokusera på plattformen, de kanske fortsätter med Ampere som relativt snart ska lansera sin andra generation där man designat sin egen mikroarkitektur i stället för att använda ARM Neoverse.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Från den länkade artikeln:

Citat:

The VMs currently in preview support Canonical Ubuntu Linux, CentOS, and Windows 11 Professional and Enterprise Edition on Arm. Support for additional operating systems including Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Debian, AlmaLinux, and Flatcar is on the way.

Bara VMs än så länge alltså, inga managerade tjänster, typ app services. Om/när managerade tjänster dyker upp kan det bli krav på hur man kompilerat koden eftersom till exempel äldre .NET Framework inte har stöd för ARM.

Intressant att man inte nämner stöd för Windows Server, varken nu eller framöver. Det finns ju en del servermjukvara från Microsoft som man förväntas köra på server-operativ även om det i praktiken fungerar även på klient-OS. Antagligen finns inte dessa mjukvaror för ARM än, ändå.

Permalänk
Datavetare
Skrivet av KAD:

Från den länkade artikeln:

Bara VMs än så länge alltså, inga managerade tjänster, typ app services. Om/när managerade tjänster dyker upp kan det bli krav på hur man kompilerat koden eftersom till exempel äldre .NET Framework inte har stöd för ARM.

Intressant att man inte nämner stöd för Windows Server, varken nu eller framöver. Det finns ju en del servermjukvara från Microsoft som man förväntas köra på server-operativ även om det i praktiken fungerar även på klient-OS. Antagligen finns inte dessa mjukvaror för ARM än, ändå.

Säkert en kombo av (minst) tre saker

1.

Stödet för ARM64 har så här lågt varit rätt undermåligt på Windows. Här är det åter igen väldigt viktigt att inse att 32-bit Arm och ARM64 är två separata instruktionsuppsättningar (d.v.s. inte en utökning som x86_64 är av x86), så det Arm stöd Microsoft började med med Window 8 / UWP har ingen relevans för ARM64 (fast både UWP och "vanliga" Windows applikationer stödjer idag ARM64).

Är först med Windows 11 som i alla fall jag skulle hävda att Windows fått något som kan ses som vettigt stöd av ARM64, en väldigt kritisk komponent som saknades innan var "emulering" (rent tekniskt är det binäröversättning precis som Rosetta 2 hos MacOS) av x86_64 (tidigare fanns detta bara för 32-bit x86, vilket idag får anses obsolete).

Har väldigt lite erfarenhet av Windows som serverplattform, men gissar att ARM64 stödet släpar än mer där.

2.

Är ens Windows relevant i "molnet" mer än för "legacy"? Linux är totalt dominerande hos AWS, Google, Oracle, IBM etc. Även i Azure står Linux för mer än hälften av alla instanser.

WSL2 finns primärt för att Microsoft är medveten om ovan + att trenden kraftigt går mot att tjänster hamnar i "molnet". WSL2 fungerar superbra redan i Win10 och har blivit ännu bättre i Win11. Det Microsoft vinner med WSL2 är att man håller Windows relevant på skrivbordet för utvecklare, trots att majoriteten idag utvecklar server-system som kommer köras på Linux.

Apple försöker inte ens göra MacOS relevant utan för skrivbordet, även där fungerar det superbra att utveckla mot Linux via t.ex. Docker desktop. Just nu är M1-datorerna enda realistiska Linux/ARM64 systemen på skrivbordet. Förhoppningsvis är Qualcomms kommande CPU så bra som ryktena ger sken av, i det läget kommer även Windows får en desktop ARM64 miljö som fungerar för "professionell" utveckling på ARM64 plattformen.

3.

.NET har haft en rätt seg utveckling vad det gäller stöd för icke-x86 plattformar. .NET Framework är designat för Windows/x86, det lär stanna där. .NET Core fick ARM64 stöd först i version 5 och är först i senaste versionen man kan kalla ARM64 stödet för "icke-beta".

Utan vettig .NET stöd fanns väldigt liten orsak att pusha ARM64 på Windows servers. Vet inte hur .NET Core mottagits på Linux, men känns ändå som det är där man lär se majoriteten av ARM64 användningen av .NET.

Tyvärr har man genom åren lyckats göra en del val relaterat till multi-core design i .NET som inte är helt optimala utanför x86. Dessa kan inte rättas med mindre än att existerande kod kommer behöva designas om, värsta är att felen som skulle uppstå är väldigt svåra att hitta (data-race). Men verkar inte vara någon gigantisk prestandaförlust!

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer