AMD "Renoir" för stationära datorer spöar "Matisse" i minnesprestanda

Permalänk

@mpat: Stort tack för den, nu hänger jag med!

Permalänk
Datavetare
Skrivet av Confusion:

Någon som kan förklara för en gammal gubbe hur mindre cache-minne ger lägre minneslatenser?

Finns inga gratisluncher

Är (nästan alltid, fysiken har hårda gränser) möjligt att göra en större cache lika snabb som en mindre. Men om en större cache ska vara lika snabb äter den mer ström (ingen expert på kretsdesign men rätt säker att det är mer än linjärt mer ström med avseende på storlek).

AMD valde faktiskt att minska storlek på L1I$ i Zen 2, från tidigare 64 kB till 32 kB. Vad jag kan se är latensen 4 cykler i båda fallen. Antagligen gjordes för att man ansåg att vinsten i lägre strömförbrukning vägde upp förlusten i prestanda.

Apple har en 4 cyklers latens L1$ på hela 128 kB, så där anser man tydligen att kostnaden i ökad strömförbrukning är värt vinsten i prestanda. Sedan har Apple även valt att nöja sig med <3 GHz, vilket gör det enklare att ha en stor cache som ändå håller 4 cyklers latens.

L3$ har inte alls lika tighta marginaler när det kommer till latens, så handlar nog främst om kostnad i transistorer där. Nästan halva CPU-kretsen i Zen 2 består av L3$, hade man inte kapat storleken i Renior hade kretsen kanske blivit allt för stor och därmed dyr!

Skrivet av Aleshi:

Som vissa nämnt så påverkar storleken på cachen. Men. Jag skulle vilja påstå att det är helt fel uttryckt i artikeln. Det är inte tack vare den mindre cachen vi ser den stora skillnaden i latens, utan för att det är en enda krets. I Matisse, alltså vanliga Zen 2-processorer, så är minneskontroller i en separat krets. Det är ett extra hopp till minnet. I Renoir så är CPU, nordbrygga inklusive minneskontroller, och GPU i samma krets. Det ger kortare latenser. Det kan vara så att de anser att de klarar sig med mindre L3 just för att det är så mycket kortare latens till RAM. Det kan alltså vara så att L3 är litet för att RAM-latensen är låg mer än att latens är låg för att L3 är litet.

https://cdn.sweclockers.com/artikel/bild/72039?l=eyJyZXNvdXJjZSI6IlwvYXJ0aWtlbFwvYmlsZFwvNzIwMzkiLCJmaWx0ZXJzIjpbInQ9YXJ0aWNsZUZ1bGwiXSwicGFyYW1zIjp7ImNhY2hlQnVzdGVyIjoiMjAyMDA0MDgifSwia2V5IjoiMzU5MGU4NDNjNDBmYmE2OTJkM2Q3Y2M2MzBlYTRjYmMifQ%3D%3D
https://www.sweclockers.com/test/27760-amd-ryzen-9-3900x-och-...

Tycker även att man kunde uttryckt tydligare att man i de modeller som har mer än 2 CCX, alltså CPU-kluster, så har man två kretsar med processorkärnor. Alltså två chiplets.
https://cdn.sweclockers.com/artikel/bild/72040?l=eyJyZXNvdXJjZSI6IlwvYXJ0aWtlbFwvYmlsZFwvNzIwNDAiLCJmaWx0ZXJzIjpbInQ9YXJ0aWNsZUZ1bGwiXSwicGFyYW1zIjp7ImNhY2hlQnVzdGVyIjoiMjAyMDA0MDgifSwia2V5IjoiYWEzMzI0Yzc2NGY2MTQ5ODI1NGJjMzBmNmNiZTliZjgifQ%3D%3D

Är också övertygad att det primärt handlar om integrerad minneskontroller vs att ha minneskontroller i en annan krets, det har en klar påverkan på minneslatens. Finns inga gratisluncher, chiplets har massa fördelar men en uppenbar nackdel är högre minneslatens.

Däremot har AMD av något anledning valt att alltid gå via I/O-kretsen när två CCX kommunicerar, det oavsett om de delar kisel eller ej. Är alltså exakt samma latens mellan alla CCX i 3900X/3950X. Detta val lär nog dels förenklat vissa saker och finns poänger att hålla ned sätt en design kan uppföra sig asynkront. Att programmera system som är asynkrona på ett optimalt sätt är svårt (d.v.s. dyrt -> händer typiskt inte i praktiken)!

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

Det är alltid spännande när jag läser AMD relaterade nyheter.

Visa signatur

MSI X99A GODLIKE GAMING | i7-6950X 4.3GHz | 64GB RAM 3200MHz | RTX 2080

Nintendo Switch | PlayStation 5 | Xbox Series X

Min FZ Profil

Permalänk
Medlem
Skrivet av Yoshman:

chiplets har massa fördelar men en uppenbar nackdel är högre minneslatens.

Trodde det bara var tillverkningsfördelar, vilken fördel skulle chiplets ha över en monolitisk design?

Permalänk
Medlem
Skrivet av Mordekai:

Trodde det bara var tillverkningsfördelar, vilken fördel skulle chiplets ha över en monolitisk design?

Skalbarhet, samma kisel används ju till servrar, workstations och konsumenter och på flera olika sätt dessutom.

Permalänk
Medlem
Skrivet av medbor:

Skalbarhet, samma kisel används ju till servrar, workstations och konsumenter och på flera olika sätt dessutom.

ja det är på tillverkningssidan.

Permalänk
Datavetare
Skrivet av Mordekai:

Trodde det bara var tillverkningsfördelar, vilken fördel skulle chiplets ha över en monolitisk design?

Tillverkningsfördelarna är helt klart de primära. Ur prestandahänseende är det oftare en nackdel, undantaget är att chiplets ger en till dimension för "binning" av kretsar. Vi har ju sett detta i 3900X vs 3950X, den förra har dels en kärna avslagen per CCX men man blandar också en krets som kan klockas lite högre med en som inte klockar fullt lika bra medan 3950X har två kretsar som klockar bra.

Kommer bli väldigt spännande att se hur pass lite negativ påverkan man kan få från chiplets framöver. Nästa krets att hålla koll på här blir Rocket Lake S, det förutsatt att den nu är designad som det spekuleras i. Där kommer CPU-delen sitta på en separat krets (tillverkad på 14 nm) och man kopplar in en separat GPU+I/O-krets (tillverkad på 10 nm) direkt på CPU-delens ring-buss via EMIB. Logiskt sett är detta exakt samma design som idag, d.v.s. logiskt sett är det fortfarande en "integrerad" minneskontroller trots att den ligger på en annan krets. Hur bra/dåligt detta kommer fungera hänger helt på hur snabb/effektiv EMIB faktiskt är.

Logiskt sett ligger InfinityFabric ett steg längre ifrån CPU, där är CPU+L3$ en separat enhet som i helhet pratar över IF. I Rocket Lake S fall är det kommunikationslänken mellan CPU och L3$ (som är en crossbar i Zen så inte lämplig att sprida över kretsar) som förlängs över flera kretsar.

Totalt sett är ändå chiplet något man tar till när det inte fungerar att integrera allt på en enda krets. Intel kan inte komma längre än 28 kärnor per krets för sina servers (ökar till 36 st nu när Ice Lake SP släpps), för att nå de 64 kärnor AMD nu har måste man köra chiplets på x86. Men vi ser att man i ARM-lägret inte alls kör med chiplets, trots att man nu redan har server-kretsar med hela 80-kärnor, detta kommer ökas till 128 st innan året är slut (detta är möjligt på TSMC 7 nm då en N1 kärna tar ungefär 1/3 av ytan hos en Zen 2 kärna). En monolitisk krets är bättre, fast det förutsätter ju att den faktiskt kan tillverkas!

Det positiva med chiplets är att vi rimligen inte är i slutet av dess S-kurva än, så man kommer hitta tekniker för att minska prestandaförlusten jämfört med monolitiska kretsar med tiden.

Edit: detta är rätt mycket handviftande och extrapolation med stor osäkerhet, men en klar nackdel med chiplets är att det totalt sett resulterar i betydligt fler transistorer. En CPU-krets + I/O-krets baserad på Zen 2 har 8 kärnor på totalt ~200 mm² kisel (75 mm² 7 nm, 125 mm² 14 nm) och ~6B transistorer. 9900K uppskattas bestå av 3B transistorer på ~177 mm² kisel1, varav ~800M utgörs av GPU2. Dessa två designer presterar anmärkningsvärt lika (framförallt sett till IPC).

14C är 122 mm² medan 8C är 177 mm², antar man samma transistordensitet blir det då 1,75 * 177 / 122 ~ 2,5 B -> massor med osäkerhet så avrunda till en signifikant siffra -> 3B

2Ungefär halva kretsen är utgörs av GPU i 4C varianten av Skylake och Intel har sagt att 6700K består av 1,75B transistorer

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:

Apple har en 4 cyklers latens L1$ på hela 128 kB, så där anser man tydligen att kostnaden i ökad strömförbrukning är värt vinsten i prestanda. Sedan har Apple även valt att nöja sig med <3 GHz, vilket gör det enklare att ha en stor cache som ändå håller 4 cyklers latens.

Enligt Anandtech är det t.o.m 3 cykler:

Citat:

In terms of caches, Apple seems to have kept the cache structures as they were in the Vortex cores of the A12. This means we have 8-way associative 128KB L1 instruction and data caches. The data cache remains very fast with a 3-cycle load-to-use latency.

https://www.anandtech.com/show/14892/the-apple-iphone-11-pro-...

Visa signatur

5900X | 6700XT

Permalänk
Medlem
Skrivet av mpat:

Är Apples val av större cache kopplat till någon specifik funktion i deras operativsystem möjligtvis?

Permalänk
Datavetare
Skrivet av mpat:

Ah coolt! Det är nog möjligt just då Apple designat kretsen för < 3 GHz. Intel har fortfarande 3 cyklers latens för Atom som också toppar runt 3 GHz. Både AMD och Intel körde ju länge just 3 cykler, men de fick kliva ned till 4 när frekvenserna klev mot 4 GHz och förbi.

Skrivet av Mindboggle:

Är Apples val av större cache kopplat till någon specifik funktion i deras operativsystem möjligtvis?

Det lär inte vara direkt kopplat till något i OSet, är nog en kombination av flera saker

  • Apple har marginaler nog att kunna bygga dyra lösningar, L1 cache är dyrt sett till kretsyta/cache-kapacitet

  • Nog enklare att hantera effektuttaget hos en stor cache i en CPU som är designad att inte klocka mer än ~3 GHz

  • Av latens-tekniska skäl vill man helst att L1$ uppfyller följande olikhet: size/ways <= page-size
    Fler "ways" ger endera högre latens (seriell uppslagning) alt. (mer vanligt i praktiken) högre strömförbrukning (parallell uppslagning). Då ARM64 tillåter 16 kB pages klarar sig Apple då med 128 / 16 = 8 ways. Det är exakt lika många "ways" som x86 får med 32 kB, både Zen 2 och Skylake har 8-ways. Intel fick gå upp till 12-ways i Sunny Cove då den har 48 kB L1D$.

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:

Ah coolt! Det är nog möjligt just då Apple designat kretsen för < 3 GHz. Intel har fortfarande 3 cyklers latens för Atom som också toppar runt 3 GHz. Både AMD och Intel körde ju länge just 3 cykler, men de fick kliva ned till 4 när frekvenserna klev mot 4 GHz och förbi.

Det lär inte vara direkt kopplat till något i OSet, är nog en kombination av flera saker

  • Apple har marginaler nog att kunna bygga dyra lösningar, L1 cache är dyrt sett till kretsyta/cache-kapacitet

  • Nog enklare att hantera effektuttaget hos en stor cache i en CPU som är designad att inte klocka mer än ~3 GHz

  • Av latens-tekniska skäl vill man helst att L1$ uppfyller följande olikhet: size/ways <= page-size
    Fler "ways" ger endera högre latens (seriell uppslagning) alt. (mer vanligt i praktiken) högre strömförbrukning (parallell uppslagning). Då ARM64 tillåter 16 kB pages klarar sig Apple då med 128 / 16 = 8 ways. Det är exakt lika många "ways" som x86 får med 32 kB, både Zen 2 och Skylake har 8-ways. Intel fick gå upp till 12-ways i Sunny Cove då den har 48 kB L1D$.

Jag tänker att cachen kanske har med emuleringen av x86 att göra för att verkligen optimera så den kan gå så fort som möjligt?

Permalänk
Medlem
Skrivet av medbor:

Jag tänker att cachen kanske har med emuleringen av x86 att göra för att verkligen optimera så den kan gå så fort som möjligt?

Så var det faktiskt för läääääänge sen, när Apple bytte från 68k till PPC - emuleringen gick som en snigel om man hade en modell med mindre L1, som Performa 5200. Just här vet jag inte om det är så, men det är en idé.

Visa signatur

5900X | 6700XT