Apples A12 slår i7-4790K och R7-1800X i enkeltrådprestanda...

Permalänk
Datavetare

Apples A12 slår i7-4790K och R7-1800X i enkeltrådprestanda...

Nu är detta bara en enda benchmark, men jobbar en hel del med ARM och Geekbench 4 är faktiskt en riktigt bra mätare för CPU-prestanda i alla de fall där jag kunnat verifiera motsvarande CPU på en traditionellt Linux-system.

T.ex. stämmer Cortex A75 resultatet i Geekbench mycket väl överens med vad jag sett själv. Samsung Galaxy S9/S9+ med Snapdragon 845 har i praktiken just en Cortex A75. Qualcomm kallar CPUn för "Kryo 280 Gold" men den i det närmaste identisk med ARM Cortex A75.

Apples Bionic A12 verkar kunna klockas till 2,5 GHz. Rent teoretisk kan denna CPU-design köra 50 % fler instruktioner per cykel än vad Haswell och Zen mäktar med. Det har Apples CPUer kunnat göra ända sedan A7 (Cyclone), sedan dess verkar man ha putsat på detaljerna.

IPC ökningar har definit börjat droppa av för Apples del de senaste två släppen, men det kanske inte är så förvånande då man numera verkar ligga ~40 % högre i IPC jämfört med Skylake!

Är väl medveten om att 64-bitars ARM är väsentligt bättre designad jämfört med x86_64, men hade nog inte riktigt förvänta mig att Apple skulle springa ifrån x86-gänget så här mycket. Detta lovar väldigt gott inför kommande lansering av Cortex A76 och dess efterföljare.

Är allt mer övertygad att 64-bitars ARM kommer börja slå ut x86 på laptops och i förlängningen även stationära samt servers, bara en tidsfråga. Ju mer kretstillverkningen fastnar på en viss tillverkningsnod, ju större fördel kommer det bli för ARM att deras ISA är i det närmaste perfekt designad. Det medan x86 primärt designades på 80-talet med krav som idag är helt annorlunda.

A12 vs i7-4790K
A12 vs R7-1800X

Måtte nu bara nästa generations konsoler köra 64-bitars ARM, då kan vi åter igen få en generation konsoler som i alla fall initialt kan utmana de snabbaste PC-riggar i CPU-prestanda (GPU-prestanda lär inte riktigt gå att matcha p.g.a. pris och effekt).

Visa signatur

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

Permalänk
99:e percentilen

Hur stor betydelse har det att 4790K:n verkar ha fått nöja sig med 1333 MHz-minnen i testerna?

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Datavetare
Skrivet av Alling:

Hur stor betydelse har det att 4790K:n verkar ha fått nöja sig med 1333 MHz-minnen i testerna?

Har viss påverkan, men handlar om några enstaka procentenheter utanför deltesterna "Memory Copy", "Memory Latency" samt "Memory Bandwidth".

Skulle helst se att GB separerade resultatet i fyra distinkta grupper

  • kryptering, finns bara ett sådant test nu i form av "AES". Grejen med detta är att användarfallet är rejält smalt, det betyder noll för de flesta applikationer men är ju väldigt viktigt om man kör kryptering på disken

  • heltalstester, i min mening det överlägset viktigaste delen då majoriteten av alla applikationer har detta som primär flaskhals. Är testerna från "LZMA" till "Camera"

  • flyttaltester, här finns egentligen två undergrupper i form av de som använder SIMD (SGEMM och SFFT) samt de som kör på 90-tals stuk med skalära heltal "N-Body Physics" till "Face Detection" (fysikhantering skrivet 2018 bör rimligen använda SIMD då är enkelt att hantera det hela m.h.a. matriser, men så är inte fallet i GB4)

  • minnestester, är de tre tester som nämndes ovan

Just minnestesterna (samt överklockning) är som ställer till det när man vill använda GB4 databasen för jämförelser. Man får manuellt sitta och leta efter resultat med "rätt" minneshastighet och där systemet kör på den frekvens man vill jämföra mot.

I detta fall är ovan egentligen rejält underordnad huvudbudskapet: Apples A12, en CPU som fungerar i en telefon, matchar x86 modeller som drar runt 100 W i enkeltrådprestanda. Notera, inte IPC (den är som sagt 40-45 % högre i A12 jämfört med Skylake som i sin tur ligger 10-20 % över Haswell/Zen i heltal, kolla t.ex. i7-6700K resultaten) utan absolut enkeltrådprestanda.

Är bara en tidsfråga innan ARMs Cortex serie också kliver förbi hela x86-tåget. Cortex A75 har in IPC helt i nivå med Haswell/Zen, av allt att döma kommer Cortex A76 (som lär göra premiär under Q4 i form av Kirin 960) matcha Skylakes IPC.

ARM når dock fortfarande inte riktigt upp till x86:ornas enkeltrådprestanda, Cortex A75 verkar maxa på runt 2,8 GHz och Cortex A76 förväntas nå 3,0 GHz. Siktet för nästa ARM CPU "Deimios" (lanseras under 2019) är ~10 % högre IPC och runt 3,5 GHz, nog för att matcha x86 i bärbara i alla fall.

Visa signatur

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

Permalänk
Datavetare

Här är ett resultat för i7-4790K med 2133 MHz RAM. Testerna för RAM åker ju iväg rejält, så sett till totalvärdet kliver då det systemet förbi A12.

Men poängen är ändå: en CPU designad primärt för mobiler som rullar i 2,5 GHz matchar de Haswell och Zen modeller som hade högst enkeltrådprestanda i sin generation!

Var tidigare väldigt kritisk till Geekbench, GB3 resultat var helt uppåt väggarna där ARM Cortex A9 och Cortex A57 baserade mobiler kunde få högre resultat jämfört med desktop x86. Det berodde på att man hade relativt många tester för extremt specifika saker, i princip testade man prestanda av några enstaka instruktioner som t.ex. SHA1. 64-bitars ARM har assemblerinstruktioner för SHA1, det har inte x86, men det betyder inte att ARM är typ x10 snabbare i någon existerande applikation...

GB4 är ett enormt lyft på den punkten. Nu testar man "riktiga" applikationer och bibliotek, resultaten stämmer rätt bra med verkligheten. Man måste självklart tänka lite på vad man jämför, t.ex. så kan SGEMM resultat slå rätt rejält och det resultat har noll bäring på hur snabbt systemet känns att surfa på eller hur snabbt det kan kompilera kod. Sitter man däremot med Matlab eller liknande är blir däremot SGEMM i stället det mest relevanta resultatet.

Man bör ha ögnat igenom detta dokument för att ha lite känsla för vilka resultat som är relevanta för just ditt fall.

Det skrivet: använder GB4 en hel del och har därför skrivit lite verktyg för att automatisk ladda ner resultat från databasen och separera dessa i de grupper jag nämnde ovan.

Om man tittar på i7-4790K resultatet (det med 2133 MHz RAM) ovan mot A12 ser man

  • crypto: 25 % övertag för i7-4790K

  • heltal: 2 % övertag för A12

  • flyttal: 8 % övertag för A12

  • flyttal SIMD: 53 % övertag för i7-4790K

  • minne: 27 % övertag för i7-4790K

Att totalresultatet ändå inte väger över mer för i7-4790K är för att GB4 använder geometrisk medelvärde (vilket är helt rätt i detta fall, det minskar effekten av enstaka kraftigt avvikande resultat) samt att det finns långt fler tester för heltal och skalära flyttal än för de andra tre grupperna.

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

Apples A processorer har alltid varit imponerande bra

Visa signatur

Chassi: Corsair 4000D CPU: Intel i7 11700K RAM: 32Gb DDR4 Moderkort: ASUS Z590-F
Grafik: RTX 3070 Ti OS: W11 SSD: M.2 1TB snabb som tusan

Permalänk
Avstängd

Operating System

Microsoft Windows 10 Pro (64-bit)

iOS 12.0

Nu är jag ingen expert, men kan man verkligen jämföra hårdvaror med två olika mjukvaror?

Hur skulle A12'an prestera i verkligheten? Dvs utanför iOS?

Dock är A12'an imponerande, hoppas man får se denna hos fler leverantörer än Apple, men då kommer ju den utanför iOS-kretsen..

Visa signatur

-Stäng av snabbstart i ditt Windows.

Permalänk
Datavetare
Skrivet av VadSaDu:

Operating System

Microsoft Windows 10 Pro (64-bit)

iOS 12.0

Nu är jag ingen expert, men kan man verkligen jämföra hårdvaror med två olika mjukvaror?

Hur skulle A12'an prestera i verkligheten? Dvs utanför iOS?

Dock är A12'an imponerande, hoppas man får se denna hos fler leverantörer än Apple, men då kommer ju den utanför iOS-kretsen..

OS påverkar, men den påverkan beror ju väldigt mycket på hur mycket anrop som utförs till OS-specifika tjänster.

I fallet GB4 är påverkar OS:et väldigt lite i enkeltrådfallet. Däremot kan man se en rätt stor påverkan i multitråd-fallen, Windows och Linux går isär rätt ordentligt när antalet kärnor ökar. Tar man quad-socket Xeon 8160 system (totalt 112 kärnor 224 trådar) skiljer det heltalsfaktorer till Linux fördel.

Finns ändå en relevant sak som påverkar även enkeltrådfallet: kompilatorn. Windows-versionen använder MSVC++ (kompilatorn i Visual Studio), MacOS och iOS använder LLVM medan Linux använder GCC.

MSVC++ börjar falla efter de andra två, finns rykten om att Microsoft eventuellt ska skrota sin egen kompilator och i stället köra LLVM. Finns redan stöd för att köra LLVM både i Visual Studio och i Visual Studio Code (VS Code ett öppet källkodsprojekt som blivit väldigt populärt).

Ska man sätta en mellan-tummen-och-pekfingret-siffra på effekten av kompilatorn så skulle jag säga att det ger en påverkan på kanske ±10 %.

Men åter igen, huvudpunkten är ändå hur extremt långt före Apple ligger high-end x86 sett till IPC och energieffektivtet. Att kunna hålla jämna steg i absolut enkeltrådprestanda med en CPU som rullar på 2,5 GHz när x86 CPUerna rullar i ca 4 GHz är brutalt imponerande.

Att även andra ARM64 (korrekt namn är Aarch64) designer börjar kliva förbi både Intel och AMD visar rätt mycket att det måste finnas fundamentala fördelar hos Aarch64, vilket också är fallet.

Det som är väldigt svårt att bedöma är just hur stor fördel Aarch64 är över x86_64. Har försökt mig på gissningar tidigare, men känns allt mer som jag nog underskattade hur stora fördelarna med Aarch64 egentligen är. Det trots att mitt jobb just nu innefattar bl.a. att jobba med LLVM samt stora mängder Aarch64 arbete (men jobbar också med x86, 32-bitars ARM samt PowerPC).

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

ja det var ju faktiskt rätt sjukt! 50x mindre effekt men fan så mycket högre IPC är rätt grymt!

Permalänk
Medlem

brukar det inte dyka upp rykten med jämna mellanrum att Apple vill växla över sina datorer till sin egen ARM platform? Det kanske börjar närma sig på riktigt nu.

Visa signatur

Du behöver inte vaccinera dina barn, bara dom du vill behålla.

Permalänk
Avstängd
Skrivet av Wasp:

ja det var ju faktiskt rätt sjukt! 50x mindre effekt men fan så mycket högre IPC är rätt grymt!

Riktigt imponerande om det stämmer som sagt.

Intel släppte väl nyss en prolle på 10-15w som presterar bättre än en gammal Q6600, om detta stämmer med Apple så ligger ju Apple ljusår framför alla andra.

Sen var väl intels till budgetklassen och inte till top-end om jag minns rätt

Visa signatur

-Stäng av snabbstart i ditt Windows.

Permalänk
Medlem
Skrivet av Yoshman:

Måtte nu bara nästa generations konsoler köra 64-bitars ARM, då kan vi åter igen få en generation konsoler som i alla fall initialt kan utmana de snabbaste PC-riggar i CPU-prestanda (GPU-prestanda lär inte riktigt gå att matcha p.g.a. pris och effekt).

Verkar extremt osannolikt. Först och främst är GPU-prestandan så mycket viktigare än CPU på en konsol. Enkeltrådad CPU-prestanda på nuvarande konsoler är extremt låg. Varför skulle det då bli viktigt med CPU-prestanda på en konsol till nästa generation? Sen skulle de tappa möjligheten att behålla full bakåtkompatibilitet. Det är rätt viktigt för dem nu, det ser man bara på mellanuppgraderingarna PS4 Pro och Xbox One X som de redan gjort.

Apples A12 är en väldigt bra produkt, men de verkar inte intresserade av att sprida den utanför Apples sfär. Därför ingen ide att tråna efter den heller egentligen. För mig blir den precis som med tidigare Apple-kretsar ointressant.

Permalänk
Datavetare
Skrivet av Wasp:

ja det var ju faktiskt rätt sjukt! 50x mindre effekt men fan så mycket högre IPC är rätt grymt!

Skulle säga att det kanske handlar om runt x10 mindre effekt. Dagens smarta lurar har faktiskt rätt hög maxeffekt, men de måste naturligtvis throttla relativt snabbt.

Vidare drar ju inte x86 CPUer som diskuteras i närheten av några 100 W när bara en kärna jobbar!

Här man kan säga att GB4 ger telefoner en oschyst fördel då varje deltest tar några sekunder och sedan är det en lite paus innan nästa test -> kretsen har chans att kyla sig.

Så GB4 är ingen perfekt jämförelse om man vill ha svar på frågan: kan min mobil ersätta min stationära dator? Men det är inte heller syftet med den benchmark:en, det är att jämföra prestanda i en rad olika arbetslaster när CPUerna kör på sin maximala frekvens (i fallet enkeltrådat, multitrådat throttlar definitivt på både mobiler och bärbara datorer).

Skrivet av mikgus:

brukar det inte dyka upp rykten med jämna mellanrum att Apple vill växla över sina datorer till sin egen ARM platform? Det kanske börjar närma sig på riktigt nu.

Rätt många som spekulerar i att hela MacBook/MacBookPro-serien kommer gå över till att använda deras egen CPU. Egentligen, vad är logiken i att Apple köper CPUer från Intel och GPUer från AMD när de har motsvarande teknik själva?

Personligen är jag övertygad om att det bara är en fråga om när. Datorer är knappast prio#1 för Apple längre, så det händer nog i något läge där man anser att det inte påverkar utvecklingen av Iphone på något relevant sätt.

En sak som pekats ut som nackdel för Apple med att gå till Aarch64 för MBP är att man skulle tappa möjlighet att köra Windows. Det är inte lägre sant då Windows 10 (det "riktiga" Windows 10 och inte något Windows RT härke) fick Aarch64 stöd i våras. Även Windows 10 server kommer få Aarch64 stöd inom en relativt snar framtid.

Skrivet av VadSaDu:

Riktigt imponerande om det stämmer som sagt.

Intel släppte väl nyss en prolle på 10-15w som presterar bättre än en gammal Q6600, om detta stämmer med Apple så ligger ju Apple ljusår framför alla andra.

Sen var väl intels till budgetklassen och inte till top-end om jag minns rätt

Tror du tänker på Pentium Silver J5005? Har köpt en NUC med den CPUn och skrivit lite om den här.

Den CPUn måste dra under 10 W i normalfallet då jag mätte upp ~10 W från väggen med spikar upp mot 15 W. Där finns ju förluster i PSU med samt effekten för WiFi, SSD och RAM.

Även om jag tycker den CPUn presterar bra givet sitt pris och sin effekt, är den totalt chanslös mot A12.

Kom på en till sak kring det här med Windows vs iOS. Kolla hur t.ex. Iphone 6 (A8) och 6S (A9) presterar. Väldigt bra jämfört med samtida telefoner, men på den tiden var det inte alls någon desktop x86 prestanda i enkeltrådat.

D.v.s. går inte förklara prestanda med att iOS skulle köra Geekbench 4 långt snabbare, enda tekniskt möjliga förklaringarna är att Apple har en helt överlägsen kompilator (den är bättre men handlar som sagt om kanske 10 %) eller så har helt enkelt Apples CPU blivit brutalt mycket snabbare.

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

Inte underligt att A12:an presterar bra då all data som den arbetar på får plats i L1 och L2 cachen.
https://www.geekbench.com/doc/geekbench4-cpu-workloads.pdf

Att kalla dessa tester "real-world tasks" är ju bara löjligt.

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk
Datavetare
Skrivet av Fulci:

Verkar extremt osannolikt. Först och främst är GPU-prestandan så mycket viktigare än CPU på en konsol. Enkeltrådad CPU-prestanda på nuvarande konsoler är extremt låg. Varför skulle det då bli viktigt med CPU-prestanda på en konsol till nästa generation? Sen skulle de tappa möjligheten att behålla full bakåtkompatibilitet. Det är rätt viktigt för dem nu, det ser man bara på mellanuppgraderingarna PS4 Pro och Xbox One X som de redan gjort.

Apples A12 är en väldigt bra produkt, men de verkar inte intresserade av att sprida den utanför Apples sfär. Därför ingen ide att tråna efter den heller egentligen. För mig blir den precis som med tidigare Apple-kretsar ointressant.

Förväntar mig inte heller att någon konsol skulle köra Apples ARM CPU.

Men redan Cortex A75 (som lanserades förra sommaren) drar ju jämnt med Haswell/Zen sett till IPC.

I år lanserade ARM Cortex A76, där telefoner med den CPUn kommer om någon månad. Av allt att döma kommer Cortex A76 dra jämt med Skylake sett till IPC, maxfrekvens bedöms bli runt 3,0 GHz för A76.

Konsoler är extremt begränsade av hur mycket ström deras systemkrets kan dra. Av allt att döma kommer Sony använda en Zen-baserad CPU, blir väldigt förvånad om de lyckas klocka den högre än 3,0-3,5 GHz och tror inte man ska förvänta sig fler än fyra CPU-kärnor med SMT.

Med lägre strömbudget kan man få in 8 st Cortex A76 kärnor (vilket då ger samma antal CPU-trådar som 4C x86 med SMT, men SMT är inte samma sak som "riktiga" kärnor, framförallt inte i spel).

Det jag hoppas på är att Microsoft väljer Cortex A76 (eller Deimos) för nästa Xbox. Microsoft har rätt nära samarbete med ARM, tror man (precis som Google, Facebook m.fl.) börjat designa sina egna ARM-baserade servers. Man jobbar i alla fall med flera tillverkare av ARM-servers. Microsoft har ett mål om att >50 % av all utrustning som används i deras Azure datacenter ska köra 64-bitars ARM i framtiden.

Visa signatur

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

Permalänk
Avstängd
Skrivet av Fulci:

Verkar extremt osannolikt. Först och främst är GPU-prestandan så mycket viktigare än CPU på en konsol. Enkeltrådad CPU-prestanda på nuvarande konsoler är extremt låg. Varför skulle det då bli viktigt med CPU-prestanda på en konsol till nästa generation? Sen skulle de tappa möjligheten att behålla full bakåtkompatibilitet. Det är rätt viktigt för dem nu, det ser man bara på mellanuppgraderingarna PS4 Pro och Xbox One X som de redan gjort.

Apples A12 är en väldigt bra produkt, men de verkar inte intresserade av att sprida den utanför Apples sfär. Därför ingen ide att tråna efter den heller egentligen. För mig blir den precis som med tidigare Apple-kretsar ointressant.

Det är väl egentligen precis tvärtom, att det är just CPU-prestandan som är ett stort hinder i nuvarande konsoler.

DigitalFoundry har en rätt bra video om det i samband med 9900K.

Visa signatur

R7 3700X | X570 Aorus Master | 32GB | EVGA 1080 Ti FTW3 | Noctua NH-D15S | FD Meshify C Copper
R7 1700 | X370 Gaming-ITX | 16GB | RX Vega 64 LE | Noctua U12S | Node 304
2 x HPE ProLiant Microserver Gen 8 | 1265L V2 | 16GB | 20TB

Permalänk
Datavetare
Skrivet av MagnusL:

Inte underligt att A12:an presterar bra då all data som den arbetar på får plats i L1 och L2 cachen.
https://www.geekbench.com/doc/geekbench4-cpu-workloads.pdf

Att kalla dessa tester "real-world tasks" är ju bara löjligt.

Flaskhalsen för t.ex. Dijkstra är inte L1 eller L2 cache, det är hur väl CPUn kan hantera villkorad körning och framförallt kan hantera kod som jagar pekare. Det är något som "big-core x86" traditionellt hanterat långt bättre än enklare CPU-designer.

Här får man en vink om hur mycket RAM-hastighet påverkar, klart stört påverkan på minnestesterna men även sådant som SGEMM påverkas (är en AVX last så suger brutalt med data per tidsenhet). Hade allt fått plats i CPU-cache hade inget förutom minnestesterna skilt sig.

Om det du skriver vore sant så skulle RAM-hastighet ha noll, exakt noll, påverkan på resultat. Det är inte sant så därför kan det inte få plats i L1/L2 cache.

Men sedan måste man ha klart för sig att cache-hit rate på typiska desktop-laster är väl över 90 %. Finns enstaka undantag, men det är förklaringen till varför RAM-hastighet har rätt låg påverkan på prestanda i de flesta program.

Server-laster och desktop-laster tenderar skilja sig rätt radikalt här, på servers är det inte alls ovanligt med riktigt dålig cache-hit-rate. Det är fallet där SMT riktigt skiner och förklaringen till varför flera rena server CPU-designer har både 4 och 8 trådar per CPU-kärna.

Om du ändå tvivlar, länkade till tråden där jag skriver lite om J5005. Där har jag även mätt IPC på Goldmont+ (J5005), Zen+ (2700X), Haswell (i5-4670) samt Skylake (i7-6770HQ) när de hanterar det jag jobbar med. Innefattar bl.a. kompilering av tiotusentals C/C++ filer, bygga Google-test/mock baserade unit-tester (äter rätt ordentligt med RAM i kompilatorn).

Relativ IPC mellan de fyra testade CPU-modeller stämmer rätt bra överens med deras relativa resultat i Geekbench 4 heltalstester (allt jag testar där är rena heltalsberäkningar).

Vad är sannolikheten att det råkar bli så om nu GB4 är så hopplöst usel benchmark? Att A12 har fyra gånger mer L1D$ jämfört med Intel/AMDs nuvarande CPU-modeller påverkar absolut dess prestanda, men det kommer ju gälla typ alla applikationer som inte uppför sig som server-laster!

Det viktigast med GB4 är ändå att man använder just den kodbas som "vanliga" applikationer använder (samma bibliotek, samma kompilatorer etc). Självklart kör man inte värdens största datamängd, det ska trots allt gå att köra samma test på allt från mobiler och uppåt. Men de flesta desktop-laster har ett rätt litet "working-set", så blir ändå riktigt bra resultat.

Edit: "verkligt fall", kompilering av en väldigt stor kodbas. Använde bara en CPU-tråd för att göra en så äpplen mot äpplen mot mätningen nedan av GB4 single-thread testerna

39 890 677 168 L1-dcache-loads 793 737 870 L1-dcache-load-misses # 1,99% of all L1-dcache hits 251 020 991 LLC-loads 34 153 979 LLC-load-misses # 13,61% of all LL-cache hits

Genomsnittlig L1d$ och L3$ (verkar tyvärr inte gå att mäta L2$ load/misses) i Geekbench 4

Performance counter stats for './geekbench_x86_64': 32 854 567 455 L1-dcache-loads 1 513 138 333 L1-dcache-load-misses # 4,61% of all L1-dcache hits 286 429 726 LLC-loads 63 262 523 LLC-load-misses # 22,09% of all LL-cache hits 76,907088439 seconds time elapsed

Notera, både fler L1d$ missar och LLC (L3$) missar i Geekbench 4.

Möjligen referera du till Torvalds sågning av Geekbench just då det hade allt för hög L1$-hit-rate. Det var definitivt sant i Geekbench 3!!!

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
Skrivet av SeF.Typh00n:

Det är väl egentligen precis tvärtom, att det är just CPU-prestandan som är ett stort hinder i nuvarande konsoler.

DigitalFoundry har en rätt bra video om det i samband med 9900K.

https://www.youtube.com/watch?v=qSHEr87rO84

Klart att nästa generation kommer få betydligt bättre CPU-prestanda. Men jag ser bara till vad som finns nu och hur det fungerar. Med tanke på den rätt så abysmala singeltrådsprestandan i nuvarande generation kan det alltså inte vara så viktigt i jämförelse med GPU. Oavsett vad Digitalfoundry har för fina videos.

Permalänk
Medlem
Skrivet av Yoshman:

Förväntar mig inte heller att någon konsol skulle köra Apples ARM CPU.

Men redan Cortex A75 (som lanserades förra sommaren) drar ju jämnt med Haswell/Zen sett till IPC.

I år lanserade ARM Cortex A76, där telefoner med den CPUn kommer om någon månad. Av allt att döma kommer Cortex A76 dra jämt med Skylake sett till IPC, maxfrekvens bedöms bli runt 3,0 GHz för A76.

Konsoler är extremt begränsade av hur mycket ström deras systemkrets kan dra. Av allt att döma kommer Sony använda en Zen-baserad CPU, blir väldigt förvånad om de lyckas klocka den högre än 3,0-3,5 GHz och tror inte man ska förvänta sig fler än fyra CPU-kärnor med SMT.

Med lägre strömbudget kan man få in 8 st Cortex A76 kärnor (vilket då ger samma antal CPU-trådar som 4C x86 med SMT, men SMT är inte samma sak som "riktiga" kärnor, framförallt inte i spel).

Det jag hoppas på är att Microsoft väljer Cortex A76 (eller Deimos) för nästa Xbox. Microsoft har rätt nära samarbete med ARM, tror man (precis som Google, Facebook m.fl.) börjat designa sina egna ARM-baserade servers. Man jobbar i alla fall med flera tillverkare av ARM-servers. Microsoft har ett mål om att >50 % av all utrustning som används i deras Azure datacenter ska köra 64-bitars ARM i framtiden.
https://youtu.be/uF1B5FfFLSA?t=787

Det är fina spekulationer, men som sagt är det väldigt osannolikt att de byter till ARM då GPU är mycket viktigare än CPU på konsoler. Dessutom om de behåller AMD kommer de oavsett att få en stor uppgradering av CPU-prestanda på köpet till nästa generation.

Hur är ARM på GPU-sidan, det har väl aldig varit deras forte?

Edit: Det om datacenter är en helt annan sak, och där ser jag inga hinder för att de byter till en billigare och sannolikt också effektivare lösning.

Permalänk
Medlem

Är det några tekniska begränsningar för att skruva upp frekvensen mer på ARM? Jag förstår att i en mobil vill man inte ha mer. Men till en server eller bärbar mac så finns det ju betydligt större utrymme för mer effekt.

Jag tänker mig givetvis en ARM cpu på 5Ghz. Det borde ju ge nära dubbla enkeltrådsprestandard dagens vassaste x86 kan ge idag. Och det finns ju inte mycket mer att hämta i x86.

Skickades från m.sweclockers.com

Permalänk
Datavetare
Skrivet av Fulci:

Det är fina spekulationer, men som sagt är det väldigt osannolikt att de byter till ARM då GPU är mycket viktigare än CPU på konsoler. Dessutom om de behåller AMD kommer de oavsett att få en stor uppgradering av CPU-prestanda på köpet till nästa generation.

Hur är ARM på GPU-sidan, det har väl aldig varit deras forte?

Edit: Det om datacenter är en helt annan sak, och där ser jag inga hinder för att de byter till en billigare och sannolikt också effektivare lösning.

Av rykten att döma lär Sony köra vidare på x86. Men kolla deras historik på CPU: MIPS, MIPS, PowerPC, x86_64. Inte så att man ändrat sig förut.

Xbox har kört x86, PowerPC, x86_64. Trots PowerPC på 360 kan en lång rad sådan spel köras på XboxOne, så byte av CPU-arch är inget jättehinder bara bytet medför signifikant högre prestanda per kärna (för att hantera emulering).

Jobbar som sagt med programvara som kör på x86, x86_64, ARM, Aarch64, PowerPC samt PPC64. Om man skriver vettig kod utan idioti är det ju ett icke-problem att köra exakt samma kodbas på alla CPU-arkitekturer (minus lite kod i OS-kärnan, men det är ju rätt specifikt till att jag jobbar med OS-utveckling, det problemet existerar i princip aldrig för applikationsutvecklare).

Tror ändå det är sannolikt att nästa Xbox kör Zen, men givet utvecklingen på CPU-marknaden är jag övertygad att Aarch64 redan nu är ett tekniskt överlägset val. Men i fallet Xbox tror jag inte det är en omöjlighet att det blir byte till Aarch64, Microsoft verkar satsa rätt mycket på Aarch64 just nu.

Heller inget problem att kombinera ARM Cortex A med GPU från AMD. Hela grundtanken med ARM Cortex A är ju att det är ett byggblock i en större SoC. Just ARM Cortex A står då för en färdig Legobit för CPU-delen.

Kanske Nintendos chans att återerövra tronen för high-end konsoler

Visa signatur

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

Permalänk
Avstängd
Skrivet av Fulci:

Klart att nästa generation kommer få betydligt bättre CPU-prestanda. Men jag ser bara till vad som finns nu och hur det fungerar. Med tanke på den rätt så abysmala singeltrådsprestandan i nuvarande generation kan det alltså inte vara så viktigt i jämförelse med GPU. Oavsett vad Digitalfoundry har för fina videos.

Det är det väl om nu processorn är flaskhalsen? Konsollernas hinder är de svaga Jaguar-kärnorna.

Det är väldigt sällan GPUn i PS4 Pro eller Xbox One X får sträcka på benen.

Visa signatur

R7 3700X | X570 Aorus Master | 32GB | EVGA 1080 Ti FTW3 | Noctua NH-D15S | FD Meshify C Copper
R7 1700 | X370 Gaming-ITX | 16GB | RX Vega 64 LE | Noctua U12S | Node 304
2 x HPE ProLiant Microserver Gen 8 | 1265L V2 | 16GB | 20TB

Permalänk
Datavetare
Skrivet av petabyte:

Är det några tekniska begränsningar för att skruva upp frekvensen mer på ARM? Jag förstår att i en mobil vill man inte ha mer. Men till en server eller bärbar mac så finns det ju betydligt större utrymme för mer effekt.

Jag tänker mig givetvis en ARM cpu på 5Ghz. Det borde ju ge nära dubbla enkeltrådsprestandard dagens vassaste x86 kan ge idag. Och det finns ju inte mycket mer att hämta i x86.

Skickades från m.sweclockers.com

Finns inget i ARMs ISA som hindrar att man gör en ARM som snurrar på 5,0 GHz.

Däremot kan man glömma att Apples A12 når några 5 eller ens 3,5 GHz. Det finns en motsatsförhållande mellan IPC och hög frekvens. När man designar en CPU måste man bestämma sig lite för vilken frekvens man siktar på för designval som ger högre IPC kan också göra så att man sätter ett hårt tak på frekvens.

Magin är ju att balansera IPC och frekvens för att maximera det som är mest viktigt. För desktop x86 har traditionell IPC * frekvens varit det man optimerat för. I Apples fall offrar man garanterat maxfrekvens för att öka perf/W, i deras fall har man dock lyckats nå en IPC som vida överstiger vad någon annan ens varit nära tidigare.

Grejen här, är rätt övertygade om att A12 nu nått en IPC som inte ens är teoretisk möjligt att nå på x86_64. I en instruktionsström finns en teoretisk maximal ILP (Instruction Level Parallellism). Exakt hur hög den kan bli beror på en mängd faktorer, men primärt är det en faktor av: vilket problem löser programmet samt hur kan algoritmen översättas till underliggande CPUs ISA (Instruction Set Architecture, vilka instruktioner som finns, vilka register som finna, hur översättning från virtuella till fysiska adresser fungerar, hur olika CPU-trådar kan synkronisera sin uppfattning av RAM etc).

Aarch64 (tillsammans med RISC-V) är båda ISA som designades väldigt nyligen och därför är designade med dagens 64-bitars multicore CPU-värld där ingen människa någonsin kommer skriva assembler. Just det sista är väldigt viktigt, idag designar man ISA för att det ska vara så effektivt som möjligt för en kompilator att använda.

När x86 och även 32-bitars ARM designades lades noll vikt vid SMP och förväntningen var att de mest prestandakritiska delarna kommer handjagas av en människa som knackar assembler.

Att x86 instruktioner har variabel storlek var vettigt på 80-talet, då var RAM snabbt (relativt CPUn) men väldigt dyrt. Idag är en sådan design idioti, både Intel och AMD har gjort massor med tricks i "front-end" för att kunna skyffla i sig fler instruktioner (båda har t.ex. en cache med avkodade funktioner, i den cachen lär alla instruktioner ha samma storlek...).

Att high-end x86 fixar att lokalisera upp till fyra instruktioner per cykel är inget annat än ren ingenjörsmagi, men det kräver MASSOR med transistorer. A12 kan skyffla i sig upp till sex instruktioner per cykel, att lokalisera dessa instruktioner är helt trivialt då Aarch64 instruktioner bara kan ligga på adresser jämt delbara med fyra och varje instruktioner är exakt fyra bytes.

32-bitars ARM är intressant, var när Apple droppade stödet för 32-bitars ISA som man riktigt började få upp IPC. Cortex A76 blir ARMs första design som droppar 32-bitars stödet, tror det blir spännande framöver och är övertygad att min laptop om 3-4 år kommer ha en Aarch64 baserad CPU under huven!

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

Om nu ARM kan prestera så bra med mindre effekt, kan man på något rimligt sätt då skala upp detta till 65-95 W effekt som en CPU i en stationär kan dra och gå långt om en X86?

Alltså strömsnålt är ju bra i mobiler men relativt ointressant i en stationär där du kan köra aktiv vattenkylning eller enorma (i förhållanden till CPUn) chassin med kraftigt luftflöde.

Jag var inte särskilt imponerad av de laptops som kom nu med ARM, inte direkt i7-prestanda.

Man kanske kan slänga ihop 10st ARM-chip i en stationär?

/hulle.

Visa signatur

A600, 2 MB Chipram, 85 MB HD, Extra diskettstation, Joysticks: Tac-2, The Bug och Wico Red Ball.
Zotamedu:"Kompressorkylning är nog det mest miljöfarliga du kan göra med en dator om du inte tänker börja elda brunkol i den."

Permalänk
Datavetare
Skrivet av Hulle:

Om nu ARM kan prestera så bra med mindre effekt, kan man på något rimligt sätt då skala upp detta till 65-95 W effekt som en CPU i en stationär kan dra och gå långt om en X86?

Alltså strömsnålt är ju bra i mobiler men relativt ointressant i en stationär där du kan köra aktiv vattenkylning eller enorma (i förhållanden till CPUn) chassin med kraftigt luftflöde.

Jag var inte särskilt imponerad av de laptops som kom nu med ARM, inte direkt i7-prestanda.

Man kanske kan slänga ihop 10st ARM-chip i en stationär?

/hulle.

Går absolut att skala upp ARM CPUer, finns ju redan en server CPU med 32-kärnor och 128 trådar. Är fortfarande så att Intels Xeon-linje har den klart mest konsekventa prestandan, d.v.s finns egentligen inget där Xeon totalt faller igenom och finns fall där det är bäst val.

Men i genomsnitt står sig ThunderX2 riktigt bra mot sina x86 kusiner. Det man får tänka på att AMD Epyc må vara billig jämfört med Intel Xeon, men Cavium ThunderX2 kostar typ hälften av Epyc för motsvarande prestanda. Är just ThunderX2 som är en av de plattformar Microsoft kommer stödja i första släppet av Windows 10 server för Aarch64.

Problemet med de ARM laptops som släpptes var i huvudsak tre saker

  • man tog en systemkrets för en mobil och stoppade in i en dator, man tog noll nytta av den väsentligt högre TDP-kapaciteten

  • utvecklingen har gått rasande fort på ARM-sidan, de laptops som släpptes använde Cortex A73 som IPC mässigt ligger rätt lågt efter Cortex A75 som i sin tur ligger en bit efter Cortex A76. Är först med Cortex A76 ARM kan matcha Skylake i IPC (fortfarande en bra bit efter A12, men det betyder ju att det finns tillväxtpotential för efterföljande ARM modeller!)

  • så länge man är tvingad att köra emulerade x86 applikationer kommer prestanda suga, det lär ordna sig med tiden (och personligen skulle jag köra Linux på en Aarch64 laptop och då finns i princip allt redan som native)

Visa signatur

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

Permalänk
99:e percentilen
Skrivet av mikgus:

brukar det inte dyka upp rykten med jämna mellanrum att Apple vill växla över sina datorer till sin egen ARM platform? Det kanske börjar närma sig på riktigt nu.

Skrivet av Yoshman:

Rätt många som spekulerar i att hela MacBook/MacBookPro-serien kommer gå över till att använda deras egen CPU. Egentligen, vad är logiken i att Apple köper CPUer från Intel och GPUer från AMD när de har motsvarande teknik själva?

Personligen är jag övertygad om att det bara är en fråga om när. Datorer är knappast prio#1 för Apple längre, så det händer nog i något läge där man anser att det inte påverkar utvecklingen av Iphone på något relevant sätt.

En sak som pekats ut som nackdel för Apple med att gå till Aarch64 för MBP är att man skulle tappa möjlighet att köra Windows. Det är inte lägre sant då Windows 10 (det "riktiga" Windows 10 och inte något Windows RT härke) fick Aarch64 stöd i våras. Även Windows 10 server kommer få Aarch64 stöd inom en relativt snar framtid.

Jag tror också att Apple kommer gå över till sina egna CPU:er även i datorer. Det ligger helt i linje med hur de brukar göra. Och det oroar mig: Ska de göra MacBook till en helt sluten black box som de bara hyr ut till kunden, precis som iPhone och iPad?

Tror du inte, @Yoshman, att de i samband med övergång till egna CPU:er kommer göra likadant med sina datorer? Firmware/hårdvara som ser till att det bara går att installera signerad mjukvara som måste aktiveras mot deras servrar och hela baletten.

Tycker Apple ens att det vore en förlust om det inte gick att köra Windows (och Linux!) på deras datorer? De har ju knappast gjort det enkelt att köra Android på en iPhone eller iPad.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Datavetare
Skrivet av Alling:

Jag tror också att Apple kommer gå över till sina egna CPU:er även i datorer. Det ligger helt i linje med hur de brukar göra. Och det oroar mig: Ska de göra MacBook till en helt sluten black box som de bara hyr ut till kunden, precis som iPhone och iPad?

Tror du inte, @Yoshman, att de i samband med övergång till egna CPU:er kommer göra likadant med sina datorer? Firmware/hårdvara som ser till att det bara går att installera signerad mjukvara som måste aktiveras mot deras servrar och hela baletten.

Tycker Apple ens att det vore en förlust om det inte gick att köra Windows (och Linux!) på deras datorer? De har ju knappast gjort det enkelt att köra Android på en iPhone eller iPad.

Det är inte omöjligt att Apple kan få för sig att helt låsa ned sin MacBook-serie. Men tror ändå inte det kommer hända, man låser ned iOS då det i praktiken är en förutsättning för att säkerställa att alla applikationer går via App-store.

Apple har försökt med en App-store för MacOS, det har aldrig tagit fart. Så finns egentligen ingen anledning för Apple att låsa ned MacBooks. Nu är MacOS till viss del låst i sin standardkonfiguration, man måste ändra en inställning för att fritt kunna installera 3:e-parts programvara. Men det är som sagt bara en inställning.

@Hulle: på tal om lite bättre presterande ARMar. Företaget Ampere har i dagarna lanserat sin server-chip för Aarch64.

Ampere styrs av Renée James, hon var tidigare en av toppcheferna på Intel och förutspåddes vara den som skulle ta över efter Brian Krzanich som VD. Bland ingenjörerna/arkitekterna bakom den här CPUn hittar man en rad personer från Intel och AMD (några som var med och designade ursprungliga Athlon).

32 kärnor @ 3,3 GHz som drar 125 W ser riktigt fint ut. Det som fattas nu är lite benchmarks på denna krets. Prismässigt har man lagts sig i nivå som Cavium Thunder X2, d.v.s. $850 för toppmodellen med 32 kärnor och $550 för 16 kärnor.

ThunderX2 verkar ha sin styrka i HPC och fall där 128 trådar per CPU är en fördel. Ampere verkar i stället mer rikta sig mot lagring, web-front-end samt "big-data" (något som överlappar med ThunderX2). Båda dessa har lågt pris (jämfört med motsvarande x86-kunsiner), ThunderX2 verkar har mer absolut umph medan Ampere optimerar primärt för perf/W.

Visa signatur

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

Permalänk
Datavetare

AnandTech har postat sitt test av nya iPhone.

Det jag fann mest intressant var att AnandTechs gjorde rätt mycket tester av CPU-prestanda, resultatet är mer eller mindre identiskt med vad jag postat tidigare i denna tråd som baserade sig på Geekbench.

D.v.s. CPUn i A12, som kallas "Vortex", har en helt brutal IPC som är 40-50 % högre jämfört med Coffe Lake.

Extra intressant är hur brutalt bra Vortex är i SpecINT 2006 kompilatorn-deltest. SpecINT har fått en del kritik genom åren då vissa deltester kan helt havereras genom specifika kompilatoroptimeringar som löser det specifika problem SpecINT utför på ett sätt som inte alls påminner om vad man kommer se rent generell.

Kompilatortestet i SpecINT är en av deltesterna där man aldrig lyckats göra sådana specifika optimering, bra resultat här brukar alltid återspegla sig i generellt bra prestanda.

När Vortex (resultat 44,56 vid 2,5 GHz) ställs mot Xeon 8176 (resultat 31 vid 3,8 GHz) så önskar jag än mer en bärbar dator utrustad med 64-bitars ARM CPU!!!! Det är total utskåpning från Apples sidan, ~x2 IPC mot Intel.

Skrev ovan att A12 kan avkoda upp till 6 instruktioner per cykel, det är tydligen 7 instruktioner per cykel enligt AnandTech (var 6 instruktioner upp till och med iPhone 7)!

AMD/Intel har slagit knut på sig själva för att nå 4 x86 instruktioner per cykel då x86 är extremt komplicerat att avkoda.

Vidare finns designmässiga element som ger 64-bitars ARM en fördel över x86 även på back-end sidan. Nästan alla x86 instruktioner har globalt synliga sidoeffekter, detta är inte fallet för 64-bitars ARM. Det betyder att det är betydligt enklare att kunna köra väldigt många instruktioner parallellt i en ARM64 back-end jämfört med en x86-backend.

AnandTech har också satt ihop en trevlig tabell med teoretisk kapacitet för lite olika operationer i CPUernas "back-end". Vortex är långt bredare än något annat som skapats, det man ändå måste komma ihåg är att x86 har sett rätt mycket dimishing returns när man breddat "back-end" då det är praktisk hopplöst att matcha det med en tillräckligt kompetent "front-end"

Cortex A76 kan matcha Coffee Lakes IPC med en något lägre teoretisk kapacitet. Det är garanterat en effekt av ARM64 vs x86.

Edit: varje värde är kapacitet / latens. Kapacitet säger hur många sådan instruktioner som maximalt kan köras per cykel medan latensen säger hur lång tid det tar att utföra beräkningen. Så ett högt värde på kapacitet == bra, lågt värde på latens == bra.

Vortex

Cortex A76

Coffee Lake

Zen

Int ADD

6 / 1

3 / 1

4 / 1

4 / 1

Int MUL 64b

2 / 4

1 / 2

1 / 3

2 / 3

Int DIV 32b

0,2 / 8

0,2 / <12

0,4 / 6

0,3-0,7 / 14-30

Int MOV

4 / 1

3 / 1

4 / 1

4 / 1

Int Shift

6 / 1

3 / 1

2 / 1

4 / 1

Int Load

2 / ?

2 / 4

2 / 2

2 / 3

Int Store

2 / ?

2 / 1

1 / 2

1 / 4

Vector Arithmetic *

3 / 2

2 / 2

2 / 1

2 / 1

Vector FMA *

3 / 3

2 / 4

2 / 4

2 / 5

* Intel har 256-bitars vektor ALUs, alla de andra har 128-bitars.

Bästa som kan hända just nu är att båda Intel och AMD får rejäla problem med sina respektive CPUer. Just nu är dessa två den största bromsklossen för att vi ska kunna ta ett större kliv framåt i desktop-prestanda.

Ge mig high-end ARM64 på bärbar nu

Visa signatur

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

Permalänk
Lego Master

Tänkte faktiskt på detta bara häromdagen; borde det inte finnas en bättre arkitektur än urgamla x86?
Här kom visst svaret.

Visa signatur

* Vänsterhänt högerskytt med tummen mitt i handen.
* A franchises worst enemies are its biggest fans.
* 🖥️ i5 12600K | Z690 | 32GB | RTX 3070 | Define R6 | 48" 4K OLED | Win11 | 💻 Surface Go 3
* ⌨️ G915 Tactile | ⌨️ G13 | 🖱️ G502 X | 🎧 Pro X | 🎙️ QuadCast | 📹 EOS 550D | 🕹️ X52 Pro | 🎮 Xbox Elite 2
* 📱 Galaxy Fold4 | 🎧 Galaxy Buds Pro | ⌚ Galaxy Watch5 Pro | 📺 65" LG OLED | 🎞️ Nvidia Shield

Permalänk
Medlem
Skrivet av Yoshman:

Bästa som kan hända just nu är att båda Intel och AMD får rejäla problem med sina respektive CPUer. Just nu är dessa två den största bromsklossen för att vi ska kunna ta ett större kliv framåt i desktop-prestanda.

Ge mig high-end ARM64 på bärbar nu

Vad hände med AMDs satsning på ARM? Skulle de inte släppa en ARM-baserad kusin till Zen?

Permalänk
Datavetare
Skrivet av ajp_anton:

Vad hände med AMDs satsning på ARM? Skulle de inte släppa en ARM-baserad kusin till Zen?

Projektet gick under namnet K12 och är endera nedlagt eller ligger i alla fall i malpåse.

Finns rykten om att en orsak till att Keller slutade var att han inte var överens med AMDs ledning kring satsningen på ARM. Tanken från början var att mikroarkitekturen i Zen skulle användas på för x86 och ARM64, "enda" som behövs är två olika front-end implementationer.

Jämför man Apples Swift (som jag är rätt säker Keller jobbade på under sin tid på Apple) och Zen så finns rätt mycket likheter! Hade varit väldigt kul att se K12 och Zen sida vid sida. K12 hade med 100 % säkerhet presterat bättre, frågan är bara hur mycket bättre.

Visa signatur

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