AMD:s chefsarkitekt Mike Clark avslöjar Zen 5

Permalänk
Medlem

På plus sidan kommer Zen 5 också bli Ryzen 5.

Visa signatur

Asus Prime X370-Pro / AMD Ryzen 7 3700X / Corsair Vengeance LPX 32 GB DDR4 3000 CL15 / Asus Dual GeForce GTX 1070 OC (1912 MHz) / Fractal Design Define C / Cooler Master Hyper 212 Evo / EVGA SuperNOVA G2 650W ATX 80+ Guld

Permalänk
Medlem

Zen 2 har reden en isp på över 200, intel måste jobbar hårt. Deras närmsta är 192 och långt ifrån krafttillbörligt.

Visa signatur

2x Xeon E5-2699 v4, 256gb Quad Channel RAM, 2x nVIDIA 980ti
----
AMD Ryzen 5950X, 128gb Dual Channel RAM, 2x AMD 6900XT
----
Massiv amiga och 3dfx-samling.

Permalänk
Medlem
Skrivet av inquam:

Både och. MIndre tillverkningsteknik resulterar ofta i lägre strömförbrukning, vilket resulterar i lägre värmeutveckling. Prestanda, strömförbrukning och värmeutveckling är tre variabler man kan påverka med varandra. Dvs, när man går ner så kan man välja att utnyttja den minskade förbrukningen och värmeutvecklingen till att öka klockfrekvensen (som då ökar på strömförbrukningen och värmeutvecklignen lite igen). Men arkitektoriska förändringar kan i allra högsta grad påverka IPC.

IPC och klockfrekvens är dock inte samma sak.

Permalänk
Datavetare
Skrivet av Herr Kantarell:

Precis! Cache (storlek och hastighet) och prefetch är mycket viktigt. Om jag förstått det rätt är ARM rätt dålig på prefetch och vill helst att kompilatorn lagt allt i en perfekt serie. Vet inte om det gäller bägge 32-bit och 64-bit.

???

Saker som cache och prefetch är ju totalt ortogonalt mot ISA. Av (tyvärr rätt få) benchmarks döma lär t.ex. Apples Monsoon och garanterat Qualcomms Centriq ha en minnes hierarki i nivå med AMD/Intels big-core x86.

Cache och prefetch är också totalt orelaterat till om man kör 32- eller 64-bitar (det både på x86 och ARM).

En nackdel med x86 är att man spikade minneskonsistensmodellen vid en tid när skillnaden i CPU- och RAM-hastighet inte var i närheten lika stor som idag och "multicore" betydde på sin höjd två kärnor. Man valde en modell som var vettig sent 80-tal / tidigt 90-tal, men som ingen skulle välja 2018. Detta kan man inte ändra utan att bryta bakåtkompatibilitet med system som har mer än en CPU-tråd!

Modellen ARMv8 använder (både för 32 och 64-bitars) tillåter betydligt mer spekulering utan att man för den delen behöver drivor med transistorer för att upprätthålla illusionen av en nästan helt sekventiell minnesmodell (som x86 har). ARM CPUer har tidigare varit sämre här därför att fokus enbart varit lågt pris och riktigt låg strömförbrukning, men nu när man också börjar designa "feta" ARM-kärnor så finns det faktiskt fler frihetsgrader för optimering inom ramen för ISA-specifikationen jämfört med x86.

Skrivet av Herr Kantarell:

Kollar man på ARM-baserade mobiler och enkortsdatorer typ RPi3 så har de oftast litet cacheminne.

Well, men då har RPi3 också en CPU-kärna som är mindre än en kvadratmillimeter på 16 nm... D.v.s. Cortex A53 är inte på något sätt jämförbar med "big" core x86 eller "big" core ARM.

Att peka på Cortex A53 och hävda att ARM har dålig prefetcher och lite cache är som att peka på Atom Bonnell (d.v.s. första Atom, den som satt i "netbooks") och hävda det samma om x86... Är milsvid skillnad mellan A53 och A75, och då är ändå A75 rätt enkel jämfört med M3, Centriq, Monsoon, Zen och Skylake sett till hur många transistorer den består av och dess teoretiska kapacitet.

Hur stor cache man har är bara en funktion av hur mycket transistorer man vill lägga på SRAM, vore ju rätt korkat att välja en mikroskopisk ARM-kärna och para den med en gigantisk cache.

Qualcomms Centriq är en server CPU, den har större "L0$" jämfört med AMD/Intels "micro-op cache" som är närmast jämförbar. Den har 64 kB L1I$ och 32 kB L1D$, d.v.s. samma som Zen och större L1I$ jämfört med Intel. L2$ är 512 kB, lika med Zen, större än Intels desktop men mindre än deras server. Sedan är L3$ upp till 60 MB, det är helt i nivå med AMD (men Qualcomm har till skillnad från AMD en monolitisk L3 -> svårare att designa men väsentligt snabbare kommunikation mellan alla kärnor).

Skrivet av Herr Kantarell:

De två första var ARMv7, d.v.s. 32-bitars ARM. Finns absolut en hel del hjärndöda designval i 32-bitars ARM. Grejen är att 64-bitars ARM är inte som x86_64 är mot x86, d.v.s. det är inte en utökning till 64-bitar utan Aarch64 är en helt separat ISA (vilket också gör det fördelaktigt att designa ARM-kärnor som överhuvudtaget inte stödjer 32-bitars ARM, det har så här långt bara Apple och Qualcomm gjort).

AMDs använde Cortex A57, en design som inte på något sätt var tänk att konkurrera med "big-core" x86 sett till dess mikroarkitektur. Den stora skillnaden med Qualcomm Centriq, Apple Monsoon och Samsung M3 är att de har en mikroarkitektur med samma kapacitet (i Apples fall faktiskt högre kapacitet) jämfört med AMD/Intels big-core x86.

Det riktigt intressanta är att man även visar att man kan utnyttja den kapaciteten i praktiken. Aarch64 har egenskaper som gör den bättre lämpad för riktig "bred" back-end jämfört med x86, d.v.s. den har kapacitet att nå högre IPC i praktiken (och vi börjar redan se det i Apples fall, möjligen även Qualcomms)!

Råder inte längre några tvivel om att vi kommer inom kort ha ARM CPUer som i absoluta tal presterar bättre än de snabbaste x86 modellerna. Däremot får vi se om Microsoft lyckas bryta Windows totala beroende på x86, lyckas man blir det svettigt för AMD/Intel och misslyckas man lär det under väldigt lång tid finnas en plats för x86 på skrivbordet!

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

@Chrisj: Nej så sant, jag mindes frågan som vad som ökar prestandan. Såg att frågan var klockfrekvensen sedan. My bad.

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 128gb DDR5 6000 | Ryzen 7950X | 3080Ti
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk
Medlem
Skrivet av Yoshman:

???

Saker som cache och prefetch är ju totalt ortogonalt mot ISA. Av (tyvärr rätt få) benchmarks döma lär t.ex. Apples Monsoon och garanterat Qualcomms Centriq ha en minnes hierarki i nivå med AMD/Intels big-core x86.

Cache och prefetch är också totalt orelaterat till om man kör 32- eller 64-bitar (det både på x86 och ARM).

Ju mer cache desto mer data kan CPUn har "nära till hands" och slipper hämta från RAM eller sekundärminnen.

ISA säger väl ingenting om storlekar på cache. Hastighet på cache eller vilken litografi som ska användas? Cache är dyrt och man kan i teorin göra världens bästa arkitektur men får ändå prestandaproblem om man har för lite cache.

Du höll väl på med ARM programmering och borde väl sett i en del ARMv7 och ARMv8 datablad att det står att t.ex. L2 cachet är valbart för tillverkaren brukar det väl stå?

Skrivet av Yoshman:

Modellen ARMv8 använder (både för 32 och 64-bitars) tillåter betydligt mer spekulering utan att man för den delen behöver drivor med transistorer för att upprätthålla illusionen av en nästan helt sekventiell minnesmodell (som x86 har). ARM CPUer har tidigare varit sämre här därför att fokus enbart varit lågt pris och riktigt låg strömförbrukning, men nu när man också börjar designa "feta" ARM-kärnor så finns det faktiskt fler frihetsgrader för optimering inom ramen för ISA-specifikationen jämfört med x86.

Nu blev jag intresserad! Berätta gärna mer om hur spekuleringen fungerar i ARMv8!

Skrivet av Yoshman:

Well, men då har RPi3 också en CPU-kärna som är mindre än en kvadratmillimeter på 16 nm... D.v.s. Cortex A53 är inte på något sätt jämförbar med "big" core x86 eller "big" core ARM.

Att peka på Cortex A53 och hävda att ARM har dålig prefetcher och lite cache är som att peka på Atom Bonnell (d.v.s. första Atom, den som satt i "netbooks") och hävda det samma om x86... Är milsvid skillnad mellan A53 och A75, och då är ändå A75 rätt enkel jämfört med M3, Centriq, Monsoon, Zen och Skylake sett till hur många transistorer den består av och dess teoretiska kapacitet.

Hur stor cache man har är bara en funktion av hur mycket transistorer man vill lägga på SRAM, vore ju rätt korkat att välja en mikroskopisk ARM-kärna och para den med en gigantisk cache.

Poängen här är ju att t.ex. en RPi 3 skulle prestera rätt mycket bättre bara med lite mer cache minne. Även atom och "Pentium" och "Celeron" har ju oftast fått lida på cache-sidan. En del Pentium och Celeron är dessutom exakt samma kärna som Core modellen.

Skrivet av Yoshman:

Qualcomms Centriq är en server CPU, den har större "L0$" jämfört med AMD/Intels "micro-op cache" som är närmast jämförbar. Den har 64 kB L1I$ och 32 kB L1D$, d.v.s. samma som Zen och större L1I$ jämfört med Intel. L2$ är 512 kB, lika med Zen, större än Intels desktop men mindre än deras server. Sedan är L3$ upp till 60 MB, det är helt i nivå med AMD (men Qualcomm har till skillnad från AMD en monolitisk L3 -> svårare att designa men väsentligt snabbare kommunikation mellan alla kärnor).

Korrekt!

Skrivet av Yoshman:

De två första var ARMv7, d.v.s. 32-bitars ARM. Finns absolut en hel del hjärndöda designval i 32-bitars ARM. Grejen är att 64-bitars ARM är inte som x86_64 är mot x86, d.v.s. det är inte en utökning till 64-bitar utan Aarch64 är en helt separat ISA (vilket också gör det fördelaktigt att designa ARM-kärnor som överhuvudtaget inte stödjer 32-bitars ARM, det har så här långt bara Apple och Qualcomm gjort).

Också sant.

Skrivet av Yoshman:

AMDs använde Cortex A57, en design som inte på något sätt var tänk att konkurrera med "big-core" x86 sett till dess mikroarkitektur. Den stora skillnaden med Qualcomm Centriq, Apple Monsoon och Samsung M3 är att de har en mikroarkitektur med samma kapacitet (i Apples fall faktiskt högre kapacitet) jämfört med AMD/Intels big-core x86.

Och vad hade du tänkt dig att de skulle valt för annan design 2014? A57 var väl det senaste som fanns då?
T.ex. A75 kom väl så sent som förra sommaren?

Skrivet av Yoshman:

Det riktigt intressanta är att man även visar att man kan utnyttja den kapaciteten i praktiken. Aarch64 har egenskaper som gör den bättre lämpad för riktig "bred" back-end jämfört med x86, d.v.s. den har kapacitet att nå högre IPC i praktiken (och vi börjar redan se det i Apples fall, möjligen även Qualcomms)!

Råder inte längre några tvivel om att vi kommer inom kort ha ARM CPUer som i absoluta tal presterar bättre än de snabbaste x86 modellerna. Däremot får vi se om Microsoft lyckas bryta Windows totala beroende på x86, lyckas man blir det svettigt för AMD/Intel och misslyckas man lär det under väldigt lång tid finnas en plats för x86 på skrivbordet!

Jo det blir spännande tider framöver

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Datavetare
Skrivet av Herr Kantarell:

Ju mer cache desto mer data kan CPUn har "nära till hands" och slipper hämta från RAM eller sekundärminnen.

ISA säger väl ingenting om storlekar på cache. Hastighet på cache eller vilken litografi som ska användas? Cache är dyrt och man kan i teorin göra världens bästa arkitektur men får ändå prestandaproblem om man har för lite cache.

Tror vi är helt överens här, finns inget i ARMs ISA som hindrar dem från att ha väldigt stor och/eller väldigt snabb cache. Historisk har hög absolut prestanda inte varit fokus hos de som använder ARM, nu börjar vi se det ändras.

Skrivet av Herr Kantarell:

Du höll väl på med ARM programmering och borde väl sett i en del ARMv7 och ARMv8 datablad att det står att t.ex. L2 cachet är valbart för tillverkaren brukar det väl stå?

Tror du blandar ihop ISA / ARM-specifikation, den säger alltså noll om hur cache ska fungera. Däremot har naturligtvis varje implementation av en ISA också en specifikation på hur mycket cache och rent generellt hur mycket transistorer de vill lägga på olika buffertar, köer, ALUs etc.

Så ARMv7 och ARMv8 säger lika lite om storlek på cache och designens "bredd" som x86_64 (som egentligen finns i två smaker, AMD64 och Intel64 som är typ 99,9 % lika). Tar man AMD fallet implementerar ju både Jaguar och Zen AMD64, men det är ändå två väldigt olika mikroarkitekturer med väldigt olika prestanda!

Skrivet av Herr Kantarell:

Nu blev jag intresserad! Berätta gärna mer om hur spekuleringen fungerar i ARMv8!

Detta blir väldigt långt om det ska förklaras i detalj. Korta versionen är att x86 garanterar att all load/load, load/store sant store/store sker HW-mässigt sker i samma ordning som instruktionerna förekommer i instruktionsströmmen (kallas Total Store Ordering). Det är extremt mycket striktare än vad den minneskonsistensmodell som C, C++, Java och C# använder för multitrådade program.

Tar vi C++11 och senare så är det fullt tillåtet att utföra alla icke-synkroniserade atomära operationer i precis vilken ordning man behagar (bara saker blir logiskt rätt på den lokala tråden, i.e. man kan helt ignorera dyr synkronisering mellan kärnor om det inte explicit begärs av programmet). Nvidia pratar om hur moderna GPUer ligger ganska nära den modellen dragen till sin spets och hur det är en förutsättning för att effektivt kunna använda alla "trådar" som Nvidias/AMDs GPUer har idag.

Dagens ARM-kretsar är inte lika extrema som GPUer på den punkten, men de kan t.ex. utföra spekulativa "loads" på instruktioner som kommer efter andra load och stores i instruktionsströmmen. Big-core x86 gör denna typ av spekulation i praktiken, men där måste man hålla massa extra tillstånd då minneskonsistensmodellen kräver att programmet uppför sig som-om man egentligen utför saker i nära nog strikt sekventiell ordning -> kostar rätt rejält med transistorer för något som egentligen är helt onödigt i de aktuella versionerna av mest populära programspråken.

ARMv8 designades efter dessa språk satte sina regler -> specifikationen är så att den passar vad moderna applikationer faktiskt vill ha till 100 %.

Skrivet av Herr Kantarell:

Poängen här är ju att t.ex. en RPi 3 skulle prestera rätt mycket bättre bara med lite mer cache minne. Även atom och "Pentium" och "Celeron" har ju oftast fått lida på cache-sidan. En del Pentium och Celeron är dessutom exakt samma kärna som Core modellen.

Den stora skillnaden mellan CPUn i RPi3 och alla "big-core" designer (både ARM och x86) är att Cortex A53 är en s.k. "in-order" design. Sista "in-order" x86 från Intel var ursprungliga Pentium och AMD har inte haft någon sådan sedan 486(!).

D.v.s. de små ARM-kärnorna är överhuvudtaget inte designade för högre prestanda, de är enbart designade för att dra lite ström och vara billiga. De saker helt logik för att spekulera (konsekvens av att vara "in-order" istället för "out-of-order"), positiva är att de därför inte är påverkade av Spectre/Meltdown

Skrivet av Herr Kantarell:

Och vad hade du tänkt dig att de skulle valt för annan design 2014? A57 var väl det senaste som fanns då?
T.ex. A75 kom väl så sent som förra sommaren?

Tja, de hade ju t.ex. kunna designa sin egen ARM back-end. Faktum är att ursprungliga tanken med Zen var att den skulle komma med stöd för två olika ISA fast med samma back-end (vilket åter igen visar att ISA och mikroarkitektur är rätt frikopplat). ARMv8 version med Zens mikroarkitektur gick under namnet K12.

Finns en del designval i Zens mikroarkitektur som känns lite udda för en x86, däremot blir det helt logiskt mot bakgrund att samma back-end också var tänkt att kombineras med en Aarch64 front-end.

Trodde väldigt mycket på Epyc inför lanseringen, så pass mycket att jag köpte på mig hyfsat med AMD-aktier. Så här 10 månader efter lansering av Epyc är jag inte lika säker på att det kommer gå så bra, tror bl.a. att det var ett misstag att enbart köra x86 på serversidan. Givet utvecklingen hade enbart Aarch64 nog varit bättre för server, fast Ryzen hade inte fungerat om den inte körde x86 så förstår ändå AMDs val här.

Vidare var nog Skylake SP bättre än väntat, tror nog få räknat med att Xeon-serien skulle skilja sig så pass mycket som den ändå gör från desktop givet att det innan egentligen var samma CPU-design över hela linjen.

Epyc står sig bra mot Broadwell Xeon, Skylake SP är ett rätt rejält fall framåt som server CPU över Broadwell (mycket större skillnad än vi sett på klientsidan). Intels datacenter division slog ju rejält omsättningsrekord Q4 2017 trots att man redan har nästan 100 % marknadsandel, det medan AMDs serverdel inte alls visade några supersiffor för Q4 (och då har Epyc rent krasst funnits lite längre på marknaden).

Ovanpå det har ju Qualcomm och även Cavium (som också fattat galoppen till slut och nu gjort "big-core" ARMs med IPC matchade big-core x86, Cavium körde innan med den typiska många-långsamma-kärnor-med-bra-perf-per-W) börjat fajtas om att ta lite av Intels ~99 % för datacenter.

Precis som Zen är Centriq och ThunderX2 "4-wide" designer (Skylake är i praktiken "5-wide" medan Monsoon har ledartröjan här på "6-wide"), d.v.s. det handlar inte längre om att bara ha bra energieffektivitet utan man ligger nu på likvärdig nivå även sett till absolut prestanda per CPU-tråd!

Likt Skylake SP är Centriq och ThrunderX2 monolitiska designer, men man toppar på 48 kärnor (och en tråd) resp 32 kärnor (och fyra trådar) per krets. Thunder X2 -> optimerad för throughput / "exascalers" / HPC. Centriq -> optimerad för låg latens och mer "vanliga" servers!

AMDs MCM må vara billigare att tillverka, men MCM diskvalificerar produkten från vissa arbetslaster (t.ex. fungerar det rätt illa i databas-servers) + man nu har två ARM-konkurrenter som slår sina x86 konkurrenter både i perf/W och prislapp för många typer av laster! Tror tyvärr inte jättemycket på mina AMD-aktier längre, men håller kvar dem och hoppas på att jag ändå missat något rejält väsentligt på serversidan...

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 Yoshman:

Tror du blandar ihop ISA / ARM-specifikation, den säger alltså noll om hur cache ska fungera. Däremot har naturligtvis varje implementation av en ISA också en specifikation på hur mycket cache och rent generellt hur mycket transistorer de vill lägga på olika buffertar, köer, ALUs etc.

Tack för ett intressant svar

Nej. Det är detta jag menade:

Som du ser står det ett spann för cachestorlekar och beroende på vad man ger processorn så påverkar det prestandan rätt mycket. Valde bara en ARM cpu på måfå men det står för de flesta (om inte alla)

Eller här att cache storleken på L2 är mellan 512kB till 2MB

På A75an får kretstillverkaren inte längre välja size på I$ och D$. Där jag hittade bilden står det att L2 kan vara 256/512kB

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Datavetare
Skrivet av Herr Kantarell:

Tack för ett intressant svar

Nej. Det är detta jag menade:
http://linuxgizmos.com/files/arm_cortex_a35_block.jpg
Som du ser står det ett spann för cachestorlekar och beroende på vad man ger processorn så påverkar det prestandan rätt mycket. Valde bara en ARM cpu på måfå men det står för de flesta (om inte alla)

https://www.notebookcheck.net/uploads/tx_jppageteaser/ARM_Cortex_A57_600_01.jpg
Eller här att cache storleken på L2 är mellan 512kB till 2MB

https://cdn57.androidauthority.net/wp-content/uploads/2017/05/Cortex-A75-core.png
På A75an får kretstillverkaren inte längre välja size på I$ och D$. Där jag hittade bilden står det att L2 kan vara 256/512kB

Cortex A55 och Cortex A75 är exempel på konkreta implementationer av ARMv8.2. Dessa konkreta implementationer har självklart även en specifikation för mängden cache.

Däremot säger ARMv8.2 absolut ingenting om hur mycket cache det ska finns, 0 kB är en lika korrekt implementation som en där man har 1 TB cache. Det var min poäng.

Vidare så skulle all cache i världen ändå aldrig göra modeller som Cortex A53 och A55 speciellt snabba, dessa implementationer är "by-design" endast fokuserade på låg kostnad, extremt låg strömförbrukning och obefintlig kretsyta. En "in-order" design kan av en rad skäl aldrig uppnå speciellt hög IPC, poängen med dessa 2018 är att de är extremt simpla -> billiga (dock är A53/A55 med råge de snabbaste "in-order" CPU-designerna som någonsin skapats).

Många associerar ARM med låg prestanda då detta var den enda typen av kretsar som designades körandes ARM, det är inte alls sant längre. Vidare, 32-bitars ARM ISA innehåller idioti som gör det relativt komplicerat att designa riktigt "breda" och högpresterande kretsar. Detta har man ju löst i Aarch64 då den ISAn i praktiken har lika mycket med 32-bitars ARM att göra som x86 har att göra med t.ex. PowerPC, d.v.s. det är två helt separata ISA (vilket också är orsaken att vi bara ser de riktigt högpresterande ARM-kretsarna hos de som enbart stödjer Aarch64).

ARM Cortex A53, ARM Cortex A73 och Apple Monsoon är tre exempel som alla implementerar ARMv8 men de gör det med extremt olika kapacitet, olika storlek på cache och i slutändan med extremt olika IPC / absolut prestanda.

En analogt exempel på hur man kan välja att implementera något helt korrekt på logisk nivå utan egentligen alls implementera det på HW-nivå är AVX i alla AMDs kretsar (Jaguar, Bulldozer-serien och Zen). Dessa kretsar kan köra alla AVX instruktioner. Däremot är ju en av huvudpoängerna med AVX att använda 256-bitars register för högre kapacitet, men Zen et al. har bara kisel för 128-bitars så prestanda är exakt den samma med SSE (128-bitar) som med AVX (256-bitar).

Så en ISA specifikationen säger bara vilka instruktioner som en implementation måste kunna köra, den säger noll om hur dessa ska prestera.

Visa signatur

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

Permalänk
Inaktiv
Skrivet av Yoshman:

Detta är varför x86 kommer få det rejält svårt nu när ARM-kretsarna är i nära "big-core" x86 (ARMs Cortex A75), helt i nivå (Samsungs M3) och till och med förbi (Apples Monsoon) sett till mängd arbete utfört per klockcykel.

Du som är insatt i Arm hur bra är den för större datacenters? Alltifrån att köra 100 windows instanser till, driva linuxdistar till webbservrar. Det är liksom dit utvecklingen går, folk kan köra med precis vilken dritt som helst hemma, belastningen hamnar någon annanstans.

Operativsystemmässigt så är Microsoft Windows ganska uppf-ckad just nu och den är helt fel konstruerad för vad majoriteten använder sin dator till, Chromebook hållet är vad utvecklingen går emot även om de för många just nu är lite för extrem begränsad. Och då har man ett bättre mindre krävande operativsystem och sedan kanske processorer som är effektivare vilket lede till väldigt bra datorer.

Permalänk
Medlem
Skrivet av inquam:

Både och. MIndre tillverkningsteknik resulterar ofta i lägre strömförbrukning, vilket resulterar i lägre värmeutveckling. Prestanda, strömförbrukning och värmeutveckling är tre variabler man kan påverka med varandra. Dvs, när man går ner så kan man välja att utnyttja den minskade förbrukningen och värmeutvecklingen till att öka klockfrekvensen (som då ökar på strömförbrukningen och värmeutvecklignen lite igen). Men arkitektoriska förändringar kan i allra högsta grad påverka IPC.

Jo traditionellt har det väl varit så.

Men på senare tid har väl snarare minskning av tillverkningsteknik endast minskat strömförbrukningen och således värmeutvecklingen. Möjligheten att öka klockfrekvenserna har visat sig vara svårt? Dels på grund av den minskade kiselytan som ska kylas men även möjligtvis andra problem.

Jag är ganska säker på detta varit på tapeten för några år sedan gällande Intel. Därför jag tog upp det, samt att jag har ett vagt minne av att det var arkitekturförbättringar kring Zen där man fixade de svagaste länkarna så att säga som skulle möjliggöra detta.

Visa signatur

System: CPU: AMD Ryzen 9 3900X, MB: Gigabyte X570 Aorus Elite, Minne: Corsair 32GB DDR4 3200MHz, GPU: Asus GeForce RTX 2080 Super ROG Strix Gaming OC

Permalänk
Datavetare
Skrivet av anon159643:

Du som är insatt i Arm hur bra är den för större datacenters? Alltifrån att köra 100 windows instanser till, driva linuxdistar till webbservrar. Det är liksom dit utvecklingen går, folk kan köra med precis vilken dritt som helst hemma, belastningen hamnar någon annanstans.

Operativsystemmässigt så är Microsoft Windows ganska uppf-ckad just nu och den är helt fel konstruerad för vad majoriteten använder sin dator till, Chromebook hållet är vad utvecklingen går emot även om de för många just nu är lite för extrem begränsad. Och då har man ett bättre mindre krävande operativsystem och sedan kanske processorer som är effektivare vilket lede till väldigt bra datorer.

Är rätt bra insatt i ARM, men främst för inbyggda-system och inte servers. Av de benchmarks och de artiklar som skrivits om Qualcomms Centriq verkar ju många se den som en rejäl utmanar till Intel i datacenter.

Caviums ThunderX2 verkar vara lite mer nischad mot "exascalers" och HPC, sett att bl.a. Cray utrustat vissa av deras toppmodeller med ThunderX2 så rimligen står dessa modeller sig rätt bra där (men HPC är något jag bara läst om, inte jobbat med).

Skulle ändå säga att Windows är "tillräckligt bra" för vad majoriteten använder det till, föredrar personligen *NIX på servers fast gett upp hoppet om "year of the Linux-desktop" så där får det bli Windows eller MacOS

Ändå kul att det börjar hända lite på serversidan, de "gamla" drakarna som t.ex. POWER och SPARC är i praktiken irrelevanta idag. Trist för AMD att de nog kommer få det väsentligt svårare att plocka andelar jämfört med om det bara stått mellan Intel och deras 99 % av datacenter marknaden (många skriker efter en vettig konkurrent här), Intel kommer tappa andelar men inte alls säker att de nu kommer tillfalla AMD utan Qualcomm, Cavium, Ampere Computing, m.fl. som satsar på 64-bitars ARM kommer slåss om den biten.

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 Yoshman:

Cortex A55 och Cortex A75 är exempel på konkreta implementationer av ARMv8.2. Dessa konkreta implementationer har självklart även en specifikation för mängden cache.

Däremot säger ARMv8.2 absolut ingenting om hur mycket cache det ska finns, 0 kB är en lika korrekt implementation som en där man har 1 TB cache. Det var min poäng.

Vidare så skulle all cache i världen ändå aldrig göra modeller som Cortex A53 och A55 speciellt snabba, dessa implementationer är "by-design" endast fokuserade på låg kostnad, extremt låg strömförbrukning och obefintlig kretsyta. En "in-order" design kan av en rad skäl aldrig uppnå speciellt hög IPC, poängen med dessa 2018 är att de är extremt simpla -> billiga (dock är A53/A55 med råge de snabbaste "in-order" CPU-designerna som någonsin skapats).

Många associerar ARM med låg prestanda då detta var den enda typen av kretsar som designades körandes ARM, det är inte alls sant längre. Vidare, 32-bitars ARM ISA innehåller idioti som gör det relativt komplicerat att designa riktigt "breda" och högpresterande kretsar. Detta har man ju löst i Aarch64 då den ISAn i praktiken har lika mycket med 32-bitars ARM att göra som x86 har att göra med t.ex. PowerPC, d.v.s. det är två helt separata ISA (vilket också är orsaken att vi bara ser de riktigt högpresterande ARM-kretsarna hos de som enbart stödjer Aarch64).

ARM Cortex A53, ARM Cortex A73 och Apple Monsoon är tre exempel som alla implementerar ARMv8 men de gör det med extremt olika kapacitet, olika storlek på cache och i slutändan med extremt olika IPC / absolut prestanda.

En analogt exempel på hur man kan välja att implementera något helt korrekt på logisk nivå utan egentligen alls implementera det på HW-nivå är AVX i alla AMDs kretsar (Jaguar, Bulldozer-serien och Zen). Dessa kretsar kan köra alla AVX instruktioner. Däremot är ju en av huvudpoängerna med AVX att använda 256-bitars register för högre kapacitet, men Zen et al. har bara kisel för 128-bitars så prestanda är exakt den samma med SSE (128-bitar) som med AVX (256-bitar).

Så en ISA specifikationen säger bara vilka instruktioner som en implementation måste kunna köra, den säger noll om hur dessa ska prestera.

Nej men du måste ändå hålla med om att cachestorleken ökar prestandan

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Datavetare
Skrivet av Herr Kantarell:

Nej men du måste ändå hålla med om att cachestorleken ökar prestandan

Kort svar: normalt sett, ja!

Längre svar:

Inte nödvändigtvis därför det finns en motsatsförhållande mellan storleken på en cache och dess svarstid. Ofta är svarstiden extremt mycket viktigare för prestanda jämfört med "hit-rate", framförallt på en "in-order" design som har väldigt begränsade möjligheter att göra något vettigt medan den väntar på en tidigare instruktion.

Ovan kan idag tyckas vara en självklarhet, men det har det nog bara varit de senaste ~10 åren. Största orsaken är nog att det var ett icke-problem tidigare, gick helt enkelt inte att bygga speciellt stora cache:ar innan transistorerna blev riktigt riktigt små, SRAM tar allt för mycket plats.

När Intel introducerade Nehalem var det många som bestämt påpekade hur korkad designen var då man minskat L2$ från ett par MB i Core2 till endast 256 kB i Nehalem, vilken idiot hade kommit på den idén? Det man helt missade var att denna förändring gjorde att latensen för L2$ kunde halveras p.g.a. detta och kritiken försvann rätt snabbt när man såg resultaten.

Så som allt annat, det är en avvägning. Ingen cache är förödande för prestanda, det oavsett CPU. Är allt för stor skillnad mellan RAM-hastighet och den hastighet moderna CPU-kärnor behöver data. Dock finns det en optimal avvägning mellan storlek och latens, exakt vad detta är beror på tänkt arbetslast, mikroarkitektur etc.

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 pekkasteele:

Annars kan det ju vara så att den heter Zen 5 för att den skall använda DDR5?

Men Ryzen "2" använder inte DDR2.

Visa signatur

Fractal Design Meshify 2 Compact w/ Dark Tint | Intel i5 12600K | Asus ROG Strix B660-F | 32 GB Corsair DDR5 5600 MHz CL36 | MSI Geforce RTX 3060 TI Ventus 2X OCV1 | 512 GB Samsung Pro 850 SSD + 2TB WD Black SN850 NVME PCI-E 4.0 | Corsair RM750X |

Permalänk
Skrivet av Xinpei:

Men Ryzen "2" använder inte DDR2.

Nä, men alla Ryzen före använder ju DDR4, och dom kanske bara tänker markera att nu blir det DDR5. Man behöver ju inte följa samma namnschema hela tiden, det är det ju nästan ingen som gör.

Men bara en gissning, ingen aning egentligen.

Visa signatur

WS1: | Gigabyte X670 G AX | Ryzen 9 7950x3D | 32GB G.Skill Trident Z5 NeoRGB | Sapphire RX 7800XT Pure | Corsair RM650i | FD North XL | EK Nucleus CR360 | WS2: | Asus RoG Strix X470-F | Ryzen 7 5600x | 16gb G.skill Trident Z Neo 3600mhz | Asus RoG Strix 3070 | Lian-Li Lancool 205 | ESX Srvr1 | MSI B450-A Pro Max | Ryzen 7 3700x | 64GB Corsair Vengence | Jonsbo UMX4 | Srvr2 MacMini | ClearOS