Permalänk
Medlem
Skrivet av Enigma:

Låt oss länka och diskutera Zen här

http://pcpress.rs/wp-content/uploads/2016/07/AMD-Zen-Summit-Ridge.jpg

Bulldozer gjorde mig djupt besviken. Man photoshoppade vitala läckor som kunde avslöja prestandafaktorer tidigt, och John Fruehe på AMD ljög om Bulldozers prestanda.

http://icdn7.digitaltrends.com/image/summit-ridge-shot-1-720x480-c.jpg

Nu ser vi äntligen många konkreta faktorer till att Zen kommer bli en stark mikroarkitektur. För att skissa upp Zen så tog AMD tillbaka Jim Keller som ursprungligen var med och konstruerade första Athlon K7 och K8 ihop med andra veteraner från DEC (Digital Equipment Corporation). AMD har numera en ny CEO som gör uttalanden om att den har 40% högre IPC än Excavator som i sin tur är en förbättrad version av Bulldozer. Lisa Su, AMD's CEO har också gjort uttalanden efteråt som säger att man till och med nått över 40% IPC mot Excavator:

AMD Preisdent & CEO Lisa Su – Q4 2015 AMD Earnings Call Transcript:

Our Zen-based CPU development is on track to achieve greater than 40% IPC uplift from our previous generation and we’re on schedule to sample later this year.

http://cdn.wccftech.com/wp-content/uploads/2016/01/AMD-Zen-Core-IPC.jpg

Vi kan alltså räkna med att enkeltrådig prestanda (prestanda per kärna/tråd dvs) äntligen kommer att vara i nivå/snabbare med/mot Intel's senaste motsvarigheter.

http://cdn.wccftech.com/wp-content/uploads/2015/05/AMD-40-IPC-Zen-Zen-.jpg

Man ser också att AMD genom etableringen av Zen, kommer fortsätta att öka IPC betydligt mer aggressivt än tidigare i form av 'Zen+'-kärnor, vilket är mycket positivt för hela CPU-industrin.

http://cdn.wccftech.com/wp-content/uploads/2015/05/AMD-x86-Zen-Core-Architecture.jpg

Vi ser nu också SMT (flertrådsteknologi) i Zen, och det är omöjligt att säga hur väl denna implementation fungerar. Intel har förbättrat sin SMT (Hyperthreading) med åren, medans det blir debuten för SMT i AMD's processorer. SMT va redan på tapeten hos DEC i Alpha EV8 prototyper, och det är också därifrån AMD har/haft en del av sina ingenjörer, och inte minst Jim Keller. Jag har stora förväntningar på dess parallellism och hur den kommer att skala.

Ett helt nytt inklusivt cachesystem och en micro-op buffert för att göra färre missar i dess branch prediction är numera en del av designen vilket är en av dom stora anledningarna till att IPC stiger avsevärt. 512Kb L2 cache per core är också något att höja ögonbrynen lite över.

https://www.techpowerup.com/img/16-02-02/82a.jpg

Det är också nu en dedikerad 4-way decoder per kärna med massivt uppiffad FPU och 4 ALU's/2 AGU's. Det betyder 50% mer resurser för heltalsoperationer jämfört med Excavator och beroende på hur man ska tolka dess nya förhållande med dess flyttalsenheter så rör det sig om dubbla eller fyrdubbla resurser.

Dold text

Bulldozer/Excavator fick 2st 128-bit FPU'er delat på 2 heltalsenheter medans Zen enligt officiella diagram kommer med 2st 256-bit kapabla flyttalsenheter vilket på så vis blir fyrdubbla resurser för flyttalsberäkningar jämfört mot BD/EV. Med andra ord är man tillbaka i ett 1:1 förhållande på integer/float. Varje flyttalsenhet ska bestå utav 2st 128-bit FMUL och 2st 128-bit FADD. Om dessa är AVX-512 kapabla eller finns där i huvudsak för serverorienterade applikationer återstår att se, men man kan vara relativt säker på att flyttalsprestandan är skyhög, något som vart AMD's tidigare starka sida.

Zen ska komma i en stor variation av typer. Det återstår att se om den 8 kärniga versionen är nativ eller om det är en MCM med två 4 kärniga nativa block. Av dom dieshot's som finns så ser det ut att vara 8 kärniga nativa enheter, men man vet än så länge att 4 kärnor delar på en L3 cache.

Dold text

2st 256bit FPU:er? Är rätt säker på att det är 2st 128bit som tillsammans kan köra 1st 256Bit FMAC per klockcykel. Precis som Yoshman poängterar. Lite roligt att du här tolkar allt som att den har dubbla kapaciteten från vad den har när SweClockers feltolkar åt andra hållet och tror att Zen har hälften av vad den har, eller en fjärdedel av vad du påstår. De skriver "En tydlig kompromiss AMD gjort med Zen är att flyttalsenheten (FPU) i varje kärna har en bredd på 128 bitar, istället för 256 bitar som i Intels arkitekturer eller när en kärna i en CMT-modul i Bulldozer fick hela flyttalsenheten för sig själv."

Denna bilden är från WCCFTech gissningar från i julas, de prickar ju ganska bra men du ska inte ha den bland officiella bilder från AMD. Förövrigt visar den 2st 128bit FPU:er och inte 2st 256bit.

Permalänk
Medlem
Skrivet av Aleshi:

2st 256bit FPU:er? Är rätt säker på att det är 2st 128bit som tillsammans kan köra 1st 256Bit FMAC per klockcykel. Precis som Yoshman poängterar. Lite roligt att du här tolkar allt som att den har dubbla kapaciteten från vad den har när SweClockers feltolkar åt andra hållet och tror att Zen har hälften av vad den har, eller en fjärdedel av vad du påstår. De skriver "En tydlig kompromiss AMD gjort med Zen är att flyttalsenheten (FPU) i varje kärna har en bredd på 128 bitar, istället för 256 bitar som i Intels arkitekturer eller när en kärna i en CMT-modul i Bulldozer fick hela flyttalsenheten för sig själv."

Denna bilden är från WCCFTech gissningar från i julas, de prickar ju ganska bra men du ska inte ha den bland officiella bilder från AMD. Förövrigt visar den 2st 128bit FPU:er och inte 2st 256bit.

Vet inte varför den kom med från första början då jag håller mig till den i huvudposten. Från IB till Haswell så ser du ingen större skillnad i prestanda på typiska flyttalsberäkningar, och AVX är väldigt udda idag. Då är ändå Haswell kapabel till dubbelt så många flyttalsberäkningar i både enkelprecision och dubbelprecision. Jag låter det vara osagt tills man vet vilket instruktionsset som ska köras på dom. FMA3/FMA4/AVX och hurvida Zen grupperar om sina pipelines i FPU'n.

Visa signatur

[ AMD 7800X3D // EK-Block @ custom loop, 2x420mm ][ MSI B650 Tomahawk ][ 32GB G.Skill Z5 Neo @ DDR6000 CL28 1T ][ AMD 7900XTX @ custom loop ][ Corsair 750D // Corsair RM1000X ][ 2TB Samsung 990PRO M.2 SSD ][ Win10 PRO x64 ][ LG 34GN850 ]

Permalänk
Medlem

Countdowner, AMD Zen Presentation på HotChips (fler avslöjanden om arkitekturen)

Visa signatur

[ AMD 7800X3D // EK-Block @ custom loop, 2x420mm ][ MSI B650 Tomahawk ][ 32GB G.Skill Z5 Neo @ DDR6000 CL28 1T ][ AMD 7900XTX @ custom loop ][ Corsair 750D // Corsair RM1000X ][ 2TB Samsung 990PRO M.2 SSD ][ Win10 PRO x64 ][ LG 34GN850 ]

Permalänk
Datavetare
Skrivet av Enigma:

Haswell har på pappret enorma förbättringar, men är inte enormt mycket bättre än IB. Intel kör oförändrat vidare på 32Kb L1 cache för både instruktions och datacache, men det har varit variationer på associativiteten. 45nm Lynnfield hade t.ex 4-way på L1i utan någon större inverkan på IPC, och med Skylake så ser vi en halvering på associativiteten på L2 cachen istället. Detta medförde sämre cacheflow, men bättre energieffektivitet och kunde vägas upp emot andra förbättringar i designen då det räcker med 4-way.

Haswell är rätt rejält mycket snabbare än Ivy Bridge på flera områden, t.ex. så är den lägre klockade fyrkärniga Xeon E3 1245v3 snabbare än sexkärniga 4960X i matrisberäkningar

Haswell är också rejält mycket snabbare än Ivy Bridge i saker som har nytta av SMT (d.v.s. inte sådant som är ALU-begränsat som t.ex. Blender och Cinebench)

Det är ju >10 % IPC-förbättringar och i flera fall höjer Skylake ribban ett bra snäpp till.

Sandy Bridge var ett rätt stort steg upp från Nehalem/Westmere, säger inte att L1I$ förändringen är den stora orsaken men det är en del av det pusslet.

För servers, där Intel numera har 99,2 % av marknaden, är lyftet från Ivy Bridge till Haswell enormt. Inte lika stort som mellan Westmere och Sandy Bridge där det låg runt 100 % för servers, men Haswell är inte långt ifrån.

Är helt övertygad om att Zen inte kommer ha det minsta problem att dra runt spel, de är ju nästan helt begränsade av GPU och man lär gå till rätt gamla Intel i5/i7-modeller för att flaskhalsen ska hamna på CPU-delen.

Skrivet av Enigma:

Jag har en känsla över att Zen är väldigt balanserad, men AMD själva har ju också bekräftat att den har 5x högre cachebandbredd till varje kärna och att specifikt L1 cachen har låg latens. För att ta fördelarna med Zen's cachearkitektur:

  • L1i dubbelt så stor som Skylake

  • L1d är 8-way, dvs samma som Haswell/Skylake

  • L1d är fördubblad från BD i både storlek och associativitet

  • L1i är fördubblad i associativitet från BD

  • L2 cachen har dubbelt så hög associativitet än Skylake och är dubbelt så stor

  • Instruktionscachen är inte längre delad mellan två kärnor

Första har ju nackdelen att ge högre latens.

Andra är ju identisk med Sandy Bridge och framåt, den är även "write-back" precis som Intel sedan första Pentium. Fattar inte vad AMD tänkte när det gjort L1D$ "write-back" i Bulldozer!

L2-cachen blir det kritiska, det Intel lyckas med är att göra en L2-cache som har lägre latens än vad någon annan mäktat med än. Möjligen har Apples CPUer lika låg latens i cykler räknat, men de klockar ju inte i närheten lika högt.

Angående balans så håller jag till 99 % med, Zen ser balanserad ut så när på en sak: 4 ALU / 2 AGU. Det valet är inte så konstigt när man tänker på att Jim Kellers baby var faktiskt inte Zen, det var K12 (som tyvärr aldrig lär släppas nu då AMD droppat ARM-spåret). För en RISC är 2:1 mellan ALU och AGU rätt, för x86 är det lågt och brukar vara 1:1 då många operationer tar minne som argument (vilket inte är möjligt på en RISC).

Tanken var ju att Zen och K12 skulle köra med samma back-end och olika front-ends. Ryktet säger att Keller sa upp sig då han tyckte att AMD inte prioriterade ARM-spåret nog mycket och det var spåret han fann mest spännande.

För applikationer på skrivbordet tror jag inte 2:1 splitten kommer vara relevant, på servers kan det däremot spela en större roll då det finns rätt många applikationer som är väldigt minnesintensiva där. Är inte heller någon slump att Haswell har en pipeline dedikerad för "stores", en "stores" är lättare att göra än "load". Är inte heller en slump att två pipeliens kan göra både "load" och "store" och bara en är dedikerad till "store", normalt är det ungefär 2:1 för "load" mot "store" i serverapplikationer. Finns dock fall där det är närmare 1:1 och Haswell tar båda fallen lysande.

Skrivet av Enigma:

En fotnot och liten spekulation från min sida: Varje "Zen block" ska ha en 8MB L3 cache, vilket betyder att en nativ 8 kärnig Zen-processor kommer ha 16MB L3 cache:

http://www.3dnews.ru/assets/external/illustrations/2016/08/19/938056/855-4.jpg

Väldigt få applikationer som inte är någon form av benchmarkingprogram använder AVX. Mest intressant är hur spel kommer bete sig på processorerna som verkligen är cache och FPU krävande.

Jag tror att framförallt den stora L2 cachen ihop med den helt omarbetade L1 cachen och en micro-op cache kan göra en enorm förbättring på just IPC. Hur sofistikerad SMT är låter jag vara osagt. Just Blender vet jag har varit ganska Intel-främjande, så det var lite otippat att AMD skulle välja just den applikationen som en IPC-jämförelse.

AMD kommer släppa mer information "inom kort" är det sagt med mer detaljer om arkitekturen på Hot Chips. Jag tror på en större IPC än Haswell. Något säger mig att det finns ett litet ess i räckärmen... Ha lite tålamod i ett par dagar till:

http://www.hotchips.org/program/

AVX används där det behövs, vilket inte är på skrivbordet eller i serverapplikationer som kör databaser och webbservers. Med tiden kommer det komma in även på skrivbordet, men om SSE är något att gå efter så tar det nästan 10 år innan det hittar in i sådan programvara i någon större utsträckning. AVX lanserades för ca sex år sedan.

L3-cachen blir också intressant, här har ju Intel lyckats designa en L3-cache som är relativt stor men ändå har en latens helt i nivå med de flesta andra CPUers L2-cache!

Det sagt: givet informationen vi har kring Zen i detta läge går det ju överhuvudtaget inte att göra någon vettig gissning kring prestanda. Ren magkänsla säger någonstans mellan Ivy Bridge och Haswell i IPC, sedan kvarstår frågan kring hur pass högt klockad den blir. Det enda som betyder något är frekvens * IPC.

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:

Haswell är rätt rejält mycket snabbare än Ivy Bridge på flera områden, t.ex. så är den lägre klockade fyrkärniga Xeon E3 1245v3 snabbare än sexkärniga 4960X i matrisberäkningar
https://www.pugetsystems.com/images/pic_disp.php?id=32678&width=800&height=800

Haswell är också rejält mycket snabbare än Ivy Bridge i saker som har nytta av SMT (d.v.s. inte sådant som är ALU-begränsat som t.ex. Blender och Cinebench)
http://techreport.com/r.x/skylake/qtbench.gif
http://techreport.com/r.x/skylake/sunspider.gif
http://techreport.com/r.x/skylake/handbrake.gif

Det är ju >10 % IPC-förbättringar och i flera fall höjer Skylake ribban ett bra snäpp till.

Syntetiska tester? Handbrake är en sak då det är en typisk praktisk tillämpning när man kör encoding av videomaterial, annars är dom allra flesta överens om att dom IPC ökningar vi sett i typiska applikationer blygsam hittills mellan generation 2 till 6. ( för att inte nämna dom som köpte 2600K och varför dom inte behövt byta på "evigheter"). Dessutom så har 4790K 500Mhz högre turbofrekvens än 3770K som jämförs i testet du valt att länka till. Det behövs verkligen ingen upplysning om vad som skiljer IB och Haswell åt i 95% av relevanta applikationer.

Citat:

Sandy Bridge var ett rätt stort steg upp från Nehalem/Westmere, säger inte att L1I$ förändringen är den stora orsaken men det är en del av det pusslet.

Sandy Bridge fick en micro-op buffert och en hel del andra arkitektoniska förbättringar som är den absolut största förbättringen mot Nehalem. Där såg vi mycket riktigt också en rejäl ökning av IPC i just praktiska applikationer/spel som används/stöds idag.

Citat:

För servers, där Intel numera har 99,2 % av marknaden, är lyftet från Ivy Bridge till Haswell enormt. Inte lika stort som mellan Westmere och Sandy Bridge där det låg runt 100 % för servers, men Haswell är inte långt ifrån.

I servermiljö så har Haswell större chans att sträcka på benen ja. Jag tror dock att AMD har betydligt mindre bekymmer att lyckas på servermarknaden med Zen än på konsumentmarknaden vilket var det jag mest inriktade mig på.

Citat:

Är helt övertygad om att Zen inte kommer ha det minsta problem att dra runt spel, de är ju nästan helt begränsade av GPU och man lär gå till rätt gamla Intel i5/i7-modeller för att flaskhalsen ska hamna på CPU-delen.

Det var ingen fråga att kunna "dra runt" ett spel, men krav ökar och det är härligt att se om AMD kommer tillbaka som en stark CPU i spel, ett område där man presterade hysteriskt mycket bättre än Intel på P4 tiden. Minns det som igår när en Athlon 64 1.8Ghz fick mer fps i Doom3 än en Prescott 3.6, dvs mer än dubbelt så snabb per klockcykel till 1/3 del av strömkonsumptionen.

På den tiden snackar vi skillnader och utveckling på området. Dom IPC ökningar som gjorts sista 10 åren på x86 arkitekturer är bara pinsamt och finns inget annat än att bara inse när man kan blicka tillbaks på historiens konkurrens som vi hade mellan bolagen. Det var kul ända tills hotet från AMD blev så stort att Intel fick muta sig bort från dom. Kontentan: historiskt bötesbelopp i domstol.

Citat:

Första har ju nackdelen att ge högre latens.

AMD har alltid kört 64Kb L1 instruktionscache och nu har man ökat associativiteten med det dubbla. Det kan mycket väl vara gynnande för denna typ av arkitektur att ha en större L1i cache. Bara för att Intel kör med 32Kb så ska det vara skrivet i sten att en helt annan arkitektur ska bli lidande av det? Ja lika mycket eller lite kanske Skylake blev lidande utav att få hälften av associativiteten på L2 cachen jämfört mot tidigare generationer. Det som är min poäng.

Citat:

Andra är ju identisk med Sandy Bridge och framåt, den är även "write-back" precis som Intel sedan första Pentium. Fattar inte vad AMD tänkte när det gjort L1D$ "write-back" i Bulldozer!

L2-cachen blir det kritiska, det Intel lyckas med är att göra en L2-cache som har lägre latens än vad någon annan mäktat med än. Möjligen har Apples CPUer lika låg latens i cykler räknat, men de klockar ju inte i närheten lika högt.

Blir spännande att se. L2 cachen har mycket att säga till om i samtliga arkitekturer och det är en stor förändring som gjorts som ser bra ut på pappret.

Citat:

Angående balans så håller jag till 99 % med, Zen ser balanserad ut så när på en sak: 4 ALU / 2 AGU. Det valet är inte så konstigt när man tänker på att Jim Kellers baby var faktiskt inte Zen, det var K12 (som tyvärr aldrig lär släppas nu då AMD droppat ARM-spåret). För en RISC är 2:1 mellan ALU och AGU rätt, för x86 är det lågt och brukar vara 1:1 då många operationer tar minne som argument (vilket inte är möjligt på en RISC).

Zen har en asymmetrisk design utav load/store, så det räcker förmodligen med 2 AGU's. Förhoppningsvis har AMD räknat på det som en del av balansen med tanke på infon som man nu stenhårt gått ut med både tidigt och officiellt.

Citat:

Tanken var ju att Zen och K12 skulle köra med samma back-end och olika front-ends. Ryktet säger att Keller sa upp sig då han tyckte att AMD inte prioriterade ARM-spåret nog mycket och det var spåret han fann mest spännande.

Har du någon mer källa på det där än bara ryktet? Så vet jag vet så var Keller väldigt inne i just Zen sedan det var en nystart sedan K7/K8 tiden.

Citat:

För applikationer på skrivbordet tror jag inte 2:1 splitten kommer vara relevant, på servers kan det däremot spela en större roll då det finns rätt många applikationer som är väldigt minnesintensiva där. Är inte heller någon slump att Haswell har en pipeline dedikerad för "stores", en "stores" är lättare att göra än "load". Är inte heller en slump att två pipeliens kan göra både "load" och "store" och bara en är dedikerad till "store", normalt är det ungefär 2:1 för "load" mot "store" i serverapplikationer. Finns dock fall där det är närmare 1:1 och Haswell tar båda fallen lysande.

AMD sa att detta skulle vara väl uppmätt och därav det designvalet, och vi ser ju då 1x16Byte store per cykel respektive 2x16-Byte load. Hurvida det stämmer i verkligheten är ännu en sak vi får vänta och se.

Citat:

AVX används där det behövs, vilket inte är på skrivbordet eller i serverapplikationer som kör databaser och webbservers. Med tiden kommer det komma in även på skrivbordet, men om SSE är något att gå efter så tar det nästan 10 år innan det hittar in i sådan programvara i någon större utsträckning. AVX lanserades för ca sex år sedan.

Vid den tidspunkt då AVX eventuellt skulle normaliseras som den typ av flyttal som används hårt på konsumentmaskiner så är både Zen och Haswell dammsamlare på hyllan.

Citat:

L3-cachen blir också intressant, här har ju Intel lyckats designa en L3-cache som är relativt stor men ändå har en latens helt i nivå med de flesta andra CPUers L2-cache!

L3 cachen och dess interna bussarkitektur vet man väldigt lite om än så länge, och jag gissar på att detta är en typisk detalj som kommer att uppenbara sig mer på HotChips.

Citat:

Det sagt: givet informationen vi har kring Zen i detta läge går det ju överhuvudtaget inte att göra någon vettig gissning kring prestanda. Ren magkänsla säger någonstans mellan Ivy Bridge och Haswell i IPC, sedan kvarstår frågan kring hur pass högt klockad den blir. Det enda som betyder något är frekvens * IPC.

Blir intressant att se hur den skalar i frekvens.

Nu i tråden, gärna lite mer om Zen, och mindre om Intel.

Visa signatur

[ AMD 7800X3D // EK-Block @ custom loop, 2x420mm ][ MSI B650 Tomahawk ][ 32GB G.Skill Z5 Neo @ DDR6000 CL28 1T ][ AMD 7900XTX @ custom loop ][ Corsair 750D // Corsair RM1000X ][ 2TB Samsung 990PRO M.2 SSD ][ Win10 PRO x64 ][ LG 34GN850 ]

Permalänk
Datavetare
Skrivet av Enigma:

Syntetiska tester? Handbrake är en sak då det är en typisk praktisk tillämpning när man kör encoding av videomaterial, annars är dom allra flesta överens om att dom IPC ökningar vi sett i typiska applikationer blygsam hittills mellan generation 2 till 6. ( för att inte nämna dom som köpte 2600K och varför dom inte behövt byta på "evigheter"). Dessutom så har 4790K 500Mhz högre turbofrekvens än 3770K som jämförs i testet du valt att länka till. Det behövs verkligen ingen upplysning om vad som skiljer IB och Haswell åt i 95% av relevanta applikationer.

Har nog aldrig sett någon tidigare försökt hävdat att kompilering är ett syntetiskt test... Skulle jag bara få AMD att publicera ett enda test för Zen så vore det just hur den står sig i kompilering jämfört med andra modeller. Kompilering är så pass heltäckande att det inte går att "fuska" på något annat sätt än att helt enkelt göra en bra CPU-design. Sett flera göra anmärkningen att SPECInt är totalt värdelöst så när som på kompileringstestet då i princip allt annat går att göra speciallösningar för på olika sätt.

Även om Linpack är ett benchmark så skulle jag inte kalla de för syntetiskt. Man använder just detta test för att designa superdatorer för HPC då det är väldigt representativt för verklig prestanda. Sedan är resultaten jag postade tagna med Intel MKL, ett bibliotek som många använder i applikationer som jobbar med matriser eller signalbehandling.

Sunspider är absolut ett dåligt syntetiskt test om man ser det som en test av webbläsarprestanda. Sunspider, Octane samt Kraken är däremot alla riktigt bra tester för att ge en vink om generell prestanda i applikationer skrivna i JavaScript/NodeJS vilket är en allt viktigare plattform på servers och i "molnet".

Angående turbofrekvensen, jämför då 3770K (3,9 GHz turbo) och 5775C (3,7 GHz turbo) alt. kompensera för frekvensen, det är >10 % högre IPC. L4-cachen i 5775C har i princip noll effekt i dessa tester (snarare negativ då 2 MB av L3 används för snoop-information för L4 så man har bara 6 MB L3 mot 8 MB på 3770K).

Skrivet av Enigma:

I servermiljö så har Haswell större chans att sträcka på benen ja. Jag tror dock att AMD har betydligt mindre bekymmer att lyckas på servermarknaden med Zen än på konsumentmarknaden vilket var det jag mest inriktade mig på.

Det måste vara viktigare för AMD att lyckas i datacenter och servers än att göra det på skrivbordet med Zen då det förra är både mer lukrativ och till skillnad från den senare fortfarande en växande marknad.

Skrivet av Enigma:

På den tiden snackar vi skillnader och utveckling på området. Dom IPC ökningar som gjorts sista 10 åren på x86 arkitekturer är bara pinsamt och finns inget annat än att bara inse när man kan blicka tillbaks på historiens konkurrens som vi hade mellan bolagen. Det var kul ända tills hotet från AMD blev så stort att Intel fick muta sig bort från dom. Kontentan: historiskt bötesbelopp i domstol.

IPC ökning de senaste tio åren är högre än de tio år du hade innan, det som ökade prestanda innan dess var nästan uteslutande högre frekvens. Och IPC ökningen de senaste tio åren är bara pinsam om man använder t.ex. spel som måttstock då dessa, men där är ju inte CPU-delen flaskhals så en värdelös måttstock.

Skrivet av Enigma:

AMD har alltid kört 64Kb L1 instruktionscache och nu har man ökat associativiteten med det dubbla. Det kan mycket väl vara gynnande för denna typ av arkitektur att ha en större L1i cache. Bara för att Intel kör med 32Kb så ska det vara skrivet i sten att en helt annan arkitektur ska bli lidande av det? Ja lika mycket eller lite kanske Skylake blev lidande utav att få hälften av associativiteten på L2 cachen jämfört mot tidigare generationer. Det som är min poäng.

Skylake har högre bandbredd mot L2, vilket till viss del kan kompensera för lägre associativiteten.
Här är ändå min huvudpoäng: visst kan det fungera helt OK med att inte kunna köra TLB uppslagning parallellt med L1I$, men resultatet är en högre effektiv latens jämfört med huvudkonkurrenten.

Skrivet av Enigma:

Zen har en asymmetrisk design utav load/store, så det räcker förmodligen med 2 AGU's. Förhoppningsvis har AMD räknat på det som en del av balansen med tanke på infon som man nu stenhårt gått ut med både tidigt och officiellt.

AMD sa att detta skulle vara väl uppmätt och därav det designvalet, och vi ser ju då 1x16Byte store per cykel respektive 2x16-Byte load. Hurvida det stämmer i verkligheten är ännu en sak vi får vänta och se.

Detta ska bli intressant att se effekten av. AMD har aldrig tidigare haft en x86 modell där inte load/store vs ALU varit 1:1. Intel har så vitt jag kan dra mig till minnes haft en modell med 3:2 splitt av ALU vs load/store (PII till Pentium M), annars har det varit 1:1.

Effekten av detta är i alla fall garanterat noll i tester som Cinebench och Blender då båda dessa är begränsade av att man endast har två flyttalspipeliens som kan göra add/mul. Framförallt Cinebench verkar väldigt hårt begränsad av detta då den får väldigt liten boost av SMT.

Lite intressant att man ändå har 2x load och 1x store kapacitet. Gissningsvis har man detta för att kapa toppar efter en cache-stall för designen kan inte upprätthålla mer än totalt två minnesoperationer per cykel.

Varför känns 2:1 lite klent? Tänk bara på denna C++ rad

this->foo += bar;

Finns rätt många rader med motsvarande logik i typiska program, vad behövs för att köra detta?
En load, en addition och en store, om vi antar att foo inte har offset noll behövs också en adressberäkning (lea). Gissar att lea även kan köras av ALU-pipes, såg det nämnas någonstans att just denna instruktion kan hanteras i AGU (vilket även är fallet på Intel där man till och med har en separat pipeline för adressberäkningar).

Min gissning är att första förändringen man kommer göra på Zens pipeline i framtiden är att addera en ren store-pipeline. Två pipelines som kan göra load/store plus en som kan göra store matchar den design de redan har mot cache och en ren store-pipeline är mycket enklare då store:s inte behöver "snoopa" andra kärnors "store-buffer".

Skrivet av Enigma:

Har du någon mer källa på det där än bara ryktet? Så vet jag vet så var Keller väldigt inne i just Zen sedan det var en nystart sedan K7/K8 tiden.

Såg det på ett par forum, det är ett rykte så "källa" blir ju lite svajigt. I ett av fallen var kommentaren från någon som hävdade att hen vid tillfället jobbade på AMD med just detta.

Sedan kanske värt att reda upp lite kring vad Keller faktiskt gjort: han har rimligen inte designat K7 då han började ungefär ett år innan den kretsen först lanserades. Han jobbade faktiskt bara ett år på AMD under den tiden, då var han chefsarkitekt för K8 samt medförfattare av AMD64. Första K8 modellen lanserades två-tre år efter att han slutande, vilket stämmer bra med ryktet att hans arbete med första generations Zen redan var färdigt när han slutade förra året.

Skrivet av Enigma:

Vid den tidspunkt då AVX eventuellt skulle normaliseras som den typ av flyttal som används hårt på konsumentmaskiner så är både Zen och Haswell dammsamlare på hyllan.

Haswell kommer vara fyra år gammal när Zen lanseras, anser du att det är en krets som är obsolete idag?

Som jag skrev innan, AVX är irrelevant för applikationer på skrivbordet och många serverapplikationer. Men program som Matlab och andra där man jobbar mycket med matriser har absolut stöd för AVX redan. Anledningen är att man får en signifikant boost av prestanda så det är värt besväret. På det stora hela är det ändå nischmarknader, AMD kan inte sikta på allt direkt med Zen och flyttalsapplikationer som kan vektoriseras är en akilleshäl för första Zen-generationen.

Skrivet av Enigma:

L3 cachen och dess interna bussarkitektur vet man väldigt lite om än så länge, och jag gissar på att detta är en typisk detalj som kommer att uppenbara sig mer på HotChips.

Blir intressant att se hur den skalar i frekvens.

Nu i tråden, gärna lite mer om Zen, och mindre om Intel.

Det man undrar om Zens L3 är om det är en LLC som täcker alla kärnor eller om det är ett sektion per fyra kärnor som die-shot pekar mot... Detta är relevant av flera skäl.

Om alla kärnor delar en LLC kan denna också används som "snoop-filter" vid cache-missar, man kan ha en bit per kärna som talar om huruvida det minnet någonsin varit cachat på en viss kärna. Det kan ge "false-positivs" men om biten inte är satt för någon annan kärna än del lokala så vinner man latens då man inte behöver invalidera andra kärnors L1D/L2.

Vidare är en LLC som delas av alla kärnor kritiskt för att relativt effektivt kunna kommunicera mellan kärnor. Jaguar-kretsen som sitter i PS4/XBO är väldigt asymmetrisk på denna punkt då det finns två grupper om fyra kärnor som delar L2 men de två grupperna har ingen delad cache. Det skiljer en ungefär en faktor tio mellan att peta på en cache-line som ligger inom samma block (som delar L2) och en som används av någon kärna i det andra blocket.

För servers är det ett mindre problem då man typiskt har väldigt många saker som sinsemellan är oberoende, så hög latens på det sättet är ingen katastrof. De applikationer på skrivbordet som faktisk kan använda flera CPU-trådar, t.ex. spel, måste tänka rätt mycket på att hålla allt som behöver dela något inom kärnor som delar LLC.

Om det är en L3 per fyra kärnor så skulle jag säga att den fyrkärniga Zen-modellen känns som det vettigare valet på skrivbordet. Eller ja, den är nog det vettigare valet oavsett bra den kan klockas högre då väldigt nära 100 % av alla desktopanvändare klarar sig mer än nog med fyra kärnor (majoriteten har absolut inga problem med två kärnor + HT även om man gör rätt avancerade saker).

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:

Har nog aldrig sett någon tidigare försökt hävdat att kompilering är ett syntetiskt test... Skulle jag bara få AMD att publicera ett enda test för Zen så vore det just hur den står sig i kompilering jämfört med andra modeller. Kompilering är så pass heltäckande att det inte går att "fuska" på något annat sätt än att helt enkelt göra en bra CPU-design. Sett flera göra anmärkningen att SPECInt är totalt värdelöst så när som på kompileringstestet då i princip allt annat går att göra speciallösningar för på olika sätt.

Även om Linpack är ett benchmark så skulle jag inte kalla de för syntetiskt. Man använder just detta test för att designa superdatorer för HPC då det är väldigt representativt för verklig prestanda. Sedan är resultaten jag postade tagna med Intel MKL, ett bibliotek som många använder i applikationer som jobbar med matriser eller signalbehandling.

Det var en rad av olika tester som uppvisade enorma skillnader mot dom man är van vid. Linpack MKL stressar typiskt flyttalsenheten i processorn, men till vilken praktisk grad menar du som skulle vara relevant på en skrivbords-PC? Intel's MKL bibliotek förändrar ju inte heller att Linpack beräkningar är inget vanliga dödliga sitter och kör. Samma sak med SiSoft sandra eller Sysmark. Riktiga tester på Zen kommer efter vart...

Citat:

Sunspider är absolut ett dåligt syntetiskt test om man ser det som en test av webbläsarprestanda. Sunspider, Octane samt Kraken är däremot alla riktigt bra tester för att ge en vink om generell prestanda i applikationer skrivna i JavaScript/NodeJS vilket är en allt viktigare plattform på servers och i "molnet".

Kanske att Zen är bra i Sunspider också? Vem vet...

Citat:

Angående turbofrekvensen, jämför då 3770K (3,9 GHz turbo) och 5775C (3,7 GHz turbo) alt. kompensera för frekvensen, det är >10 % högre IPC. L4-cachen i 5775C har i princip noll effekt i dessa tester (snarare negativ då 2 MB av L3 används för snoop-information för L4 så man har bara 6 MB L3 mot 8 MB på 3770K).

Man ser ganska stor skillnad mellan alla generationer i det testet. I det stora hela så är fortfarande IPC ökningen blygsam och återigen, alla som sitter kvar med sina 2600K är ganska nöjda över en anledning, inte sant...

Citat:

Det måste vara viktigare för AMD att lyckas i datacenter och servers än att göra det på skrivbordet med Zen då det förra är både mer lukrativ och till skillnad från den senare fortfarande en växande marknad.

Det är viktigare, men jag tror det är lättare för AMD att få tillbaka fotfäste på server/HPC marknaden än på skrivbordet. Det kommer nog ta en bra stund innan konsumenter förstår att AMD är ikapp och kanske på så vis hellre ser efter en PC med Intel-CPU, hur bra Zen än lyckas.

Citat:

IPC ökning de senaste tio åren är högre än de tio år du hade innan, det som ökade prestanda innan dess var nästan uteslutande högre frekvens. Och IPC ökningen de senaste tio åren är bara pinsam om man använder t.ex. spel som måttstock då dessa, men där är ju inte CPU-delen flaskhals så en värdelös måttstock.

Enskilt hos Intel möjligtvis, men det verkar ju påverkas över konkurrensen vilket gör det lite direkt relevant till vart AMD står sig. Jag tänker då främst på AMD egna processorer där man hade en stark design med K7 som blev enormt förbättrad med K8, för att sen misslyckas med Phenom, sen försöka förbättra situationen med Phenom 2 som egentligen inte var en dålig processor, för att sen lansera Bulldozer.

Citat:

Skylake har högre bandbredd mot L2, vilket till viss del kan kompensera för lägre associativiteten.
Här är ändå min huvudpoäng: visst kan det fungera helt OK med att inte kunna köra TLB uppslagning parallellt med L1I$, men resultatet är en högre effektiv latens jämfört med huvudkonkurrenten.

Många saker i en mikroarkitektur ska stämma. Jag väntar på fler detaljer, men ser det som är korrigerat i Zen som extremt positivt mot hur cachearkitekturen såg ut i tidigare generationer. Det är en förbättring med hästlängder.

Citat:

Detta ska bli intressant att se effekten av. AMD har aldrig tidigare haft en x86 modell där inte load/store vs ALU varit 1:1. Intel har så vitt jag kan dra mig till minnes haft en modell med 3:2 splitt av ALU vs load/store (PII till Pentium M), annars har det varit 1:1.

Effekten av detta är i alla fall garanterat noll i tester som Cinebench och Blender då båda dessa är begränsade av att man endast har två flyttalspipeliens som kan göra add/mul. Framförallt Cinebench verkar väldigt hårt begränsad av detta då den får väldigt liten boost av SMT.

Lite intressant att man ändå har 2x load och 1x store kapacitet. Gissningsvis har man detta för att kapa toppar efter en cache-stall för designen kan inte upprätthålla mer än totalt två minnesoperationer per cykel.

Varför känns 2:1 lite klent? Tänk bara på denna C++ rad

this->foo += bar;

Finns rätt många rader med motsvarande logik i typiska program, vad behövs för att köra detta?
En load, en addition och en store, om vi antar att foo inte har offset noll behövs också en adressberäkning (lea). Gissar att lea även kan köras av ALU-pipes, såg det nämnas någonstans att just denna instruktion kan hanteras i AGU (vilket även är fallet på Intel där man till och med har en separat pipeline för adressberäkningar).

Min gissning är att första förändringen man kommer göra på Zens pipeline i framtiden är att addera en ren store-pipeline. Två pipelines som kan göra load/store plus en som kan göra store matchar den design de redan har mot cache och en ren store-pipeline är mycket enklare då store:s inte behöver "snoopa" andra kärnors "store-buffer".

AMD ska ju enligt roadmap öka IPC mycket aggressivt hos Zen med "Zen+" så det kan ju vara en av dom korrigeringar man gör, men det verkar vara ett starkt medvetet drag som man uppskattat. Just en sån här detalj är svårt att spekulera fram hur stor inverkan den faktiskt kommer att göra, men jag tror inte att teamet är inkompetenta. Åtminstone inte på den nivå man var när man gjorde Bulldozers cachesystem. En eller annan har garanterat fått sparken efter den skandalen.

Citat:

Såg det på ett par forum, det är ett rykte så "källa" blir ju lite svajigt. I ett av fallen var kommentaren från någon som hävdade att hen vid tillfället jobbade på AMD med just detta.

Sedan kanske värt att reda upp lite kring vad Keller faktiskt gjort: han har rimligen inte designat K7 då han började ungefär ett år innan den kretsen först lanserades. Han jobbade faktiskt bara ett år på AMD under den tiden, då var han chefsarkitekt för K8 samt medförfattare av AMD64. Första K8 modellen lanserades två-tre år efter att han slutande, vilket stämmer bra med ryktet att hans arbete med första generations Zen redan var färdigt när han slutade förra året.

Förstår. Jag skrev bara från K7/K8 tiden då han var där. En CPU design brukar lanseras 5 år efter att den designats, så det är en vanlig tumregel. Jag tror bara som jag skrev att han var mycket intresserad över att vara med och designa Zen och Zen+.

Citat:

Haswell kommer vara fyra år gammal när Zen lanseras, anser du att det är en krets som är obsolete idag?

Absolut inte, men du kan byta ut Haswell mot Kaby Lake om det känns bättre. Vad jag menar är att det hänt såpass lite och AVX/AVX512 knappast har någon relevans här. AVX512 som instruktionsset och enskilda instruktioner från det fördelas också i olika tidslanseringar och mellan olika Xeonmodeller baserat på Skylake.

Citat:

Som jag skrev innan, AVX är irrelevant för applikationer på skrivbordet och många serverapplikationer. Men program som Matlab och andra där man jobbar mycket med matriser har absolut stöd för AVX redan. Anledningen är att man får en signifikant boost av prestanda så det är värt besväret. På det stora hela är det ändå nischmarknader, AMD kan inte sikta på allt direkt med Zen och flyttalsapplikationer som kan vektoriseras är en akilleshäl för första Zen-generationen.

Ja precis min mening, det är en nisch. Ironiskt nog så har AMD vart mycket starka i en del vetenskapliga applikationer. Jag har inte tittat så mycket på just sådana tester med Bulldozer som råkar ha en svag flyttalsenhet i förhållande, men jag tror att Zen kan göra sig typiskt bra här också beroende på hur flyttalsenheten kommer agera under specifika tester.

Citat:

Det man undrar om Zens L3 är om det är en LLC som täcker alla kärnor eller om det är ett sektion per fyra kärnor som die-shot pekar mot... Detta är relevant av flera skäl.

Om alla kärnor delar en LLC kan denna också används som "snoop-filter" vid cache-missar, man kan ha en bit per kärna som talar om huruvida det minnet någonsin varit cachat på en viss kärna. Det kan ge "false-positivs" men om biten inte är satt för någon annan kärna än del lokala så vinner man latens då man inte behöver invalidera andra kärnors L1D/L2.

Vidare är en LLC som delas av alla kärnor kritiskt för att relativt effektivt kunna kommunicera mellan kärnor. Jaguar-kretsen som sitter i PS4/XBO är väldigt asymmetrisk på denna punkt då det finns två grupper om fyra kärnor som delar L2 men de två grupperna har ingen delad cache. Det skiljer en ungefär en faktor tio mellan att peta på en cache-line som ligger inom samma block (som delar L2) och en som används av någon kärna i det andra blocket.

För servers är det ett mindre problem då man typiskt har väldigt många saker som sinsemellan är oberoende, så hög latens på det sättet är ingen katastrof. De applikationer på skrivbordet som faktisk kan använda flera CPU-trådar, t.ex. spel, måste tänka rätt mycket på att hålla allt som behöver dela något inom kärnor som delar LLC.

Om det är en L3 per fyra kärnor så skulle jag säga att den fyrkärniga Zen-modellen känns som det vettigare valet på skrivbordet. Eller ja, den är nog det vettigare valet oavsett bra den kan klockas högre då väldigt nära 100 % av alla desktopanvändare klarar sig mer än nog med fyra kärnor (majoriteten har absolut inga problem med två kärnor + HT även om man gör rätt avancerade saker).

Specifik info om L3 cachen blir förhoppningsvis någon man får se mer utav imorgon på HotChips så man slipper spekulera mer

Visa signatur

[ AMD 7800X3D // EK-Block @ custom loop, 2x420mm ][ MSI B650 Tomahawk ][ 32GB G.Skill Z5 Neo @ DDR6000 CL28 1T ][ AMD 7900XTX @ custom loop ][ Corsair 750D // Corsair RM1000X ][ 2TB Samsung 990PRO M.2 SSD ][ Win10 PRO x64 ][ LG 34GN850 ]

Permalänk
Datavetare

@Enigma: hoppas också man får lite mer kött på benen kring Zen denna vecka. Notera att jag inte säger något absolut om hur Zen presterar, för givet det vi vet idag går det överhuvudtaget inte att göra en vettig gissning.

Faktum är att vi egentligen inte kan säga något om L2-cachen heller, vi har ingen aning om dess bandbredd i praktiken och vi har ingen aning om dess load-to-use latens (som är 10-11 cykler för Intel och typiskt 20 cykler eller mer för i princip alla andra designer).

Själv får jag inte en "warm fuzzy feeling" av AMDs val av "läckta" benchmarks, de har en historia av enorm cherry-picking... Det här är min favorit, FX-8150 är tydligen 56 gånger snabbare på något jämfört med i7-2600...

Eller den där Fury X var snabbare än 980Ti på i princip allt

Råder inga tvivel om att Zen är ett rejält lyft över förra generationen, men än så länge går det överhuvudtaget inte att säga hur den i genomsnitt kommer presterar mot Intel och då främst Kaby Lake som tydligen fått 18 % högre IPC om man ska gå på det resultat som "råkade" läcka (självklart cherry-picking från Intels sida).

Åter igen: man ska aldrig extrapolera från en punkt, vare sig det är produkter från AMD, Intel, Nvidia eller till och med självaste Apple.

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

@Enigma @Yoshman

Permalänk
Datavetare

@Jonathanknet: där har vi nörd-porr på hög nivå!!!

Blev så till mig att bara var tvungen att skapa en liten jämförelsetabell. Går absolut inte att säga med någon större precision hur Zen kommer presterar från en sådan tabell, men nu börjar man ändå kunna skönja en hyfsad mellan-tummen-och-pekfingret känsla. Mitt stalltips står nu än starkare att i genomsnitt hamnar IPC mellan Ivy Bridge och Haswell, men lutar nog att det är närmare Haswell än Ivy Bridge numera.

Zen

Excavator

Sandy Bridge

Haswell

Skylake

Twister (A9)

front-end width

4

4

4 (5)*

4 (5)*

5 (6)*

6

µ-op dispatch (decoder->scheduler)

6

4

4

4

6

6

dispatch ports mem/int/fp (scheduler->ports)

2/4/4

2/2/3

3/3(/3)

4/4(/3)

4/4(/3)

2/7/3

µ-op in flight

192

128

168

192

224

192

load queue

72

48

64

72

72

?

store queue

44

32

36

42

56

?

scheduler type

distributed #

global

global

global

global

distributed

scheduler int/fp ¤

84(6*14)/96

48/96

54/-

60/-

97/-

?

integer rename

168

96

160

168

180

?

float rename

160

160

144

168

168

?

L1 ITLB 4k(/2M)

64

72

64

128/8+8

128/8+8

?

L1 DTLB 4k(/2M/1G)

64

32

64/32/-

64/32/4

64/32/4

?

L2 TLB

1536

1024

512

1024

1552

?

*
blir ett högre varje gång man har en lyckad s.k. macro-op fusion, vilket i praktiken är rätt vanligt då det händer t.ex. vid jämförelse följt av ett hopp villkorat på jämförelsen

Typ detta

if (pred) { foo(); }

¤
AMD har separat schemaläggare för heltal och flyttal, Intel har en som täcker båda.

#
gissning baserar det på denna bild där man har en box per heltalspipeline.

Dold text

Är inte alls orimligt då distribuerade schedulers i princip uteslutande används för ARM CPUer och andra strömsnåla modeller (som t.ex. Intels Atom). Än rimligare blir det när man tar i beaktande att "back-end" i Zen initialt även skulle användas i deras 64-bitars K12 ARM.

Fördelen med distribuerade scheduler är enklare att designa och strömsnålare än globala schedulers. Nackdelen är att beläggningen av alla tillgängliga resurser blir i genomsnitt lägre.

Även POWER8 använder distribuerade scheduler. Där är nog orsaken att kretsen är brutalt "bred" och skulle nog kostar allt för mycket transistorer med en global scheduler där. Här är jämförelsen med Hawell intressant då POWER8 har totalt 16(!) pipelines mot Haswells 8 men ändå får Haswell bättre IPC när endast en tråd används.

Edit: hade ju totalt missat det, trots alla Athlons, Athon 64 och Phenoms jag haft genom åren... Var ju distribuerande schedulers även i dessa vilket med stor sannolikhet även betyder att Jaguar har detta. Så för AMD är det bulldozer-serien som är undantaget på denna punkt (om nu Zen använder detta).

Edit2: efter gårdagens presentation är det nu klarlagt att det är en distribuerad scheduler. Så siffran 84 för Zens heltals/minnes-scheduler är egentligen sex stycken separata köer med en kapacitet på 14 var.

Känns som storleken på L2 kontra L3 är lite obalanserad i Zen givet att man nu kör med inklusive policy. När alla fyra kärnor i ett CCX jobbar så kommer ju L3-cachen bestå till 50 % av redundant information (det som ligger i L2). I en hierarki med inkluderande policy vill man normalt har rätt stor skillnad i storlek mellan nivåerna. Med exkluderande policy fungerar det helt OK att även ha samma storlek på två nivåer, något AMD historisk också haft.

Skönt att se AMD använda samma terminologi som Intel var det gäller micro-ops. Tidigare kallade AMD de interna instruktioner för "macro-ops" medan Intel kallade dem för "micro-ops". Än värre blev det när Intel kallar två x86-instruktioner som slagits ihop för "macro-op fusion" (en finess som kom med Core2).

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

Grymt!

Skrivet av Yoshman:

@Jonathanknet: där har vi nörd-porr på hög nivå!!!

Blev så till mig att bara var tvungen att skapa en liten jämförelsetabell. Går absolut inte att säga med någon större precision hur Zen kommer presterar från en sådan tabell, men nu börjar man ändå kunna skönja en hyfsad mellan-tummen-och-pekfingret känsla. Mitt stalltips står nu än starkare att i genomsnitt hamnar IPC mellan Ivy Bridge och Haswell, men lutar nog att det är närmare Haswell än Ivy Bridge numera.

Zen

Excavator

Sandy Bridge

Haswell

Skylake

front-end width

4

4

4 (5)*

4 (5)*

5 (6)*

µ-op dispatch

6

4

6

8

8

µ-op in flight

192

128

168

192

224

load queue

72

48

64

72

72

store queue

44

32

36

42

56

scheduler type

distributed #

global

global

global

global

scheduler int/fp ¤

84/96

48/96

54/-

60/-

97/-

integer rename

160

96

160

168

180

float rename

160

160

144

168

168

L1 ITLB

64

72

128

144

144

L1 DTLB

64

32

80

100

104

L2 TLB

1536

512

512

1024

1552

*
blir ett högre varje gång man har en lyckad s.k. macro-op fusion, vilket i praktiken är rätt vanligt då det händer t.ex. vid jämförelse följt av ett hopp villkorat på jämförelsen

Typ detta

if (pred) { foo(); }

¤
AMD har separat schemaläggare för heltal och flyttal, Intel har en som täcker båda.

#
gissning baserar det på denna bild där man har en box per heltalspipeline.

Är inte alls orimligt då distribuerade schedulers i princip uteslutande används för ARM CPUer och andra strömsnåla modeller (som t.ex. Intels Atom). Än rimligare blir det när man tar i beaktande att "back-end" i Zen initialt även skulle användas i deras 64-bitars K12 ARM.

Fördelen med distribuerade scheduler är enklare att designa och strömsnålare än globala schedulers. Nackdelen är att beläggningen av alla tillgängliga resurser blir i genomsnitt lägre.

Även POWER8 använder distribuerade scheduler. Där är nog orsaken att kretsen är brutalt "bred" och skulle nog kostar allt för mycket transistorer med en global scheduler där. Här är jämförelsen med Hawell intressant då POWER8 har totalt 16(!) pipelines mot Haswells 8 men ändå får Haswell bättre IPC när endast en tråd används.

Edit: hade ju totalt missat det, trots alla Athlons, Athon 64 och Phenoms jag haft genom åren... Var ju distribuerande schedulers även i dessa vilket med stor sannolikhet även betyder att Jaguar har detta. Så för AMD är det bulldozer-serien som är undantaget på denna punkt (om nu Zen använder detta).

Känns som storleken på L2 kontra L3 är lite obalanserad i Zen givet att man nu kör med inklusive policy. När alla fyra kärnor i ett CCX jobbar så kommer ju L3-cachen bestå till 50 % av redundant information (det som ligger i L2). I en hierarki med inkluderande policy vill man normalt har rätt stor skillnad i storlek mellan nivåerna. Med exkluderande policy fungerar det helt OK att även ha samma storlek på två nivåer, något AMD historisk också haft.

Skönt att se AMD använda samma terminologi som Intel var det gäller micro-ops. Tidigare kallade AMD de interna instruktioner för "macro-ops" medan Intel kallade dem för "micro-ops". Än värre blev det när Intel kallar två x86-instruktioner som slagits ihop för "macro-op fusion" (en finess som kom med Core2).

Bra jobbat med tabellen! Men alla värden stämmer inte riktigt i den Först nu jag har haft tid att kasta mig över dessa presentationsblad och dregla.

En del är över mina förväntningar i Zen... Jag undrar fortfarande dock vad det är för decoding-enheter, där man tidigare endast jobbat med complex decoders. Jag misstänker att det inte är en slump att man har (stannar kvar) på 64Kb L1i cache här för att man uppnått en hög decoding rate, något som vart en av flaskhalsarna tidigare.

Det är också betryggande att se att L1 numera inte är en write-through typ och att L3 cachen är delad där varje kärna kan sniffa data med låg latens.

SMT ser också mycket bra ut på sin resursindelning och FPU'n med betydligt lägre latenser och fler portar, så spel och typiskt legacy/nuvarande flyttalsoperationer borde gå fort på Zen.

Ska in och kika lite närmare zenare... Fyll på med era spekulationer Det här är riktigt kul för AMD, och för oss konsumenter!

Visa signatur

[ AMD 7800X3D // EK-Block @ custom loop, 2x420mm ][ MSI B650 Tomahawk ][ 32GB G.Skill Z5 Neo @ DDR6000 CL28 1T ][ AMD 7900XTX @ custom loop ][ Corsair 750D // Corsair RM1000X ][ 2TB Samsung 990PRO M.2 SSD ][ Win10 PRO x64 ][ LG 34GN850 ]

Permalänk
Medlem

Intressant att det finns stöd för "SHA256". Frågan är bara om det endast gäller den funktionen eller hela SHA-2. Hoppas på en typo eller ett missförstånd när de skapade presentationmaterialet.

Visa signatur

Efter att ni har läst det här har ni insett att det inte gav något.

Permalänk
Medlem

Knappt 5 timmar kvar nu...

Visa signatur

Server: Fractal design Define 7 XL | AMD Ryzen 7 5800X 8/16 | ASUS ROG CROSSHAIR VIII DARK HERO | 64GB Corsair @ 3000MHz | ASUS Radeon RX 460 2GB | Samsung 960 PRO 512 GB M.2 | 2x 2TB Samsung 850 PRO SSD | 6x Seagate Ironwolf Pro 10TB
WS: Phantex Entoo Elite | AMD Ryzen Threadripper 1950X 16/32 | ASUS Zenith extreme | 128GB G.Skill @ 2400MHz | ASUS Radeon HD7970 | 3x 2TB Samsung 960PRO M.2 | 6x Seagate Ironwolf Pro 10 TB
NEC PA301W 30" @ 2560x1600 | Linux Mint 21.3 Cinnamon

Permalänk
Medlem
Skrivet av OldComputer:

Knappt 5 timmar kvar nu...

Jag missade streamen men det lär förhoppningsvis komma rapporter från det senare idag.

Skickades från m.sweclockers.com

Visa signatur

SpelDator: | Asus ROG Strix XG438Q 4K 120hz| AMD Ryzen 5 5600X 3.7 GHz 35MB| B450 I AORUS PRO WIFI| MSI Radeon RX 6800 16GB | Corsair Force MP510 1920GB M.2 NVMe | Samsung EVO 860 2TB | Seagate Guardian BarraCuda 2.5 5TB| Corsair 32GB (2x16GB) DDR4 3600MHz CL18 Vengeance LPX Svart| Ghost S1 MK2| Corsair SF750 750W 80+ Platinum| Logitech MX Sound| WD My Passport V2 USB 3.0 4TB| Buffalo Mediastation Ultra-Thin Portable Blu-Ray writer| Logitech Logitech G604 Lightspeed

Permalänk
Datavetare
Skrivet av Enigma:

Bra jobbat med tabellen! Men alla värden stämmer inte riktigt i den Först nu jag har haft tid att kasta mig över dessa presentationsblad och dregla.

Det var något enstaka typo, borde vara fixat nu. Sedan fick jag dela upp exakt vad siffran betyder för "dispatch" då det visade sig att beroende på vem du frågan kan de ge olika svar.

En siffra är hur många instruktioner som kan komma från decoder/micro-op-cache för att stoppas in i out-of-order schemaläggaren. Det andra är hur många mikro-ops som kan påbörja exekvering varje cykel, något som måste delas in i tre grupper, minnesoperationer, heltalsoperationer (vilket också inkluderar saker som hopp) samt flyttal.

TLB-siffrorna är väldigt svåra att prestera då implementationerna skiljer sig på punkter som: är det en TBL för alla page-storlekar (vilket är fallet för L1 i Zen) eller har man flera burkar för de olika möjliga storlekarna (var först 4k och 2M, senare lades även 1G till) vilket är fallet för Intel. Egentligen enda detta tillför är att vink om hur stora dataset en designen kan jobba med innan prestanda börjar gå rejält söderut, irrelevant för skrivbordet givet lägstanivån.

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

Några nyheter, en väldigt överraskande kom ut från gårdagens presentation.

Det är inte inkluderande cache på Zen. Påpekade redan tidigare i tråden att storleksförhållandet mellan L2 och L3 kännes lite obalanserat för en inkluderande design, förklaringen är alltså att L3-cachen är en s.k. victim-cache för L2 (det som måste slängas ut ur L2 placeras i L3, när något hämtas från L3 in i L2 så tas det bort ur L3), precis som på alla tidigare AMD-designer med L3-cache.

Det som verkar vara inkluderande är L1 i L2, något som i så fall lite mildrar latensen vid cache-miss, räcker att endast undersöka (snoop:a) alla L2-cachar. Då L3 ändå inte delas av alla kärnor, den delas mellan fyra kärnor i ett CCX, skulle den ändå inte räcka som snoop-filter, men nu blir ju cache-missar även inom en CCX rätt mycket dyrare än på Intel.

Som jämförelse är Intels L1 och L2 inte strikt inkluderande då L2-cachen då skulle bestå av 25 % redundant information (L1I$ och L1D$ är båda 32 kB). Det påverkar ändå inte snoop-latens då L3 är strikt inkluderande av allt som ligger på lägre nivå (och L1/L2 tillhör endast en kärna), vilket betyder att en miss aldrig behöver titta i någon annan cache än den lokala L1/L2 samt L3 för att globalt avgöra att det ingen har den minnesadressen lagrad.

Rent praktiskt betyder detta inte jättemycket för arbetslaster som består av många helt oberoende uppgifter där man inte delar annan data än sådant som är "read-only" eller där data är "read-mostly" med en lås-strategi som inte består enkla lås som mutex eller liknande (dessa orsakar rejält med kors-CPU cache-koherenstrafik som kommer straffa designen i Zen).

Däremot lär mer desktop-inriktade laster som normalt kräver mer interaktion mellan kärnor (om de överhuvudtaget är multitrådade). Så gissar att om spel någonsin blir CPU-begränsade så kommer Zen skala sämre med kärnor än Core-serien. Den har helt enkelt högre latens för att hantera data som både läses och skrives av mer än en CPU-kärna. Än värre är det när man går mellan CCX men inget detaljer kring hur kommunikationen hanteras mellan CCX nämndes.

En positiv nyhet är att flyttalsdelen och heltalsdelen kan påbörja instruktioner samma cykel vilket betyder att sett till "peak-rate" så kan Zen påbörja två minnesoperationer, fyra heltalsoperationer OCH fyra flyttalsoperationer samma cykel. Då framförallt flyttalsdelen är rätt asymmetriska så är det många saker som måste rada upp sig för att det någonsin ska hända. Är peak då designen maximalt kan leverera 6 mikro-ops och maximalt kan avkoda 4 x86 instruktioner. Men det kan hända efter en rejäl "pipeline bubble".

Vidare verkar det som Zen inte har två FMAC där man för separata MUL elller ADD kör med "halva" FMAC:en (så fungerar Intel och även Excavator om jag förstått rätt). Zen har i stället två MUL och två ADD i separata pipelines där två pipelines kan kombineras för FMAC stöd. I det läget ger inte FMAC högre kapacitet, utan det enda man vinner på att använda FMAC är högre precision då det inte sker någon avrundning till registerformat mellan multiplikation och additionssteget.

Så i arbetslaster som har någorlunda nära 1:1 med flyttalsaddition och flyttalsmultiplikation men FMAC inte kan används samt där man inte använder AVX så är flyttalskapaciteten i Zen högre än Skylake räknat per klockcykel. Valet av Blender som jämförelse ter sig allt mindre som en slump (det kör SSE2 vilket saknar FMA-stöd), AnandTech har också spånat lite kring varför man valde just detta test. Slutsatsen är typ att inget kan sägas om generell prestanda baserat på detta test då allt för många parametrar är okända och det är endast ett test.

Som redan nämns flera gånger i denna tråd så är flyttalsintensiva laster en nischmarknad, innan vi får lite känsla för hur Zen presterar i "normala" applikationer så är allt väldigt mycket spekulation än.

Angående @Kuufukuji fråga om SHA1/SHA256. Vad jag kan se så är det verkligen begränsat till dessa två då man implementerat Intels SHA1/SHA256 instruktioner som beskrivs här. Folk har visat att det är möjligt att med SSE/AVX öka hastigheten med i teorin en faktor 4(SSE)/8(AVX) och man kommer hyfsat nära detta i praktiken. SHA1/SHA256 instruktionerna ger klart större boost än en faktor 4/8, men de är då begränsade till just dessa två varianter.

Edit: I tråden kring AnandTechs sammanfattning av gårdagens presentation säger någon detta

"One research paper that I read showed exclusive caches having twice the latency of inclusive when snooping was required. If your data-structure has a scaling that works well up to 16 cores on Intel's inclusive cache, it may cap out around 8 cores on AMD's exclusive, thanks to Amdahl's law."

Dold text

Tyvärr ges ingen länk till sagda forskningsresultat, posta gärna länkar i denna tråd om någon hittar sådant.

Att program som har viss kors-CPU kommunikation inte kommer skala lika väl på Zen står klart redan när man ser CCX designen, men för skrivbordet är ju 4 kärnor fullt tillräckligt i en majoritet av fallen så påverkar ju bara modeller med fler än 4 kärnor. Skulle vara intressant att få en känsla för vad de olika cache policyvalen kan tänkas bidra med, även om det också blir extremt mellan-tummen-och-pekfingret innan vi ser jämförelser med verkliga program. Där finns dock påverkar även inom CCX.

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:

Några nyheter, en väldigt överraskande kom ut från gårdagens presentation.

Det är inte inkluderande cache på Zen. Påpekade redan tidigare i tråden att storleksförhållandet mellan L2 och L3 kännes lite obalanserat för en inkluderande design, förklaringen är alltså att L3-cachen är en s.k. victim-cache för L2 (det som måste slängas ut ur L2 placeras i L3, när något hämtas från L3 in i L2 så tas det bort ur L3), precis som på alla tidigare AMD-designer med L3-cache.

Det som verkar vara inkluderande är L1 i L2, något som i så fall lite mildrar latensen vid cache-miss, räcker att endast undersöka (snoop:a) alla L2-cachar. Då L3 ändå inte delas av alla kärnor, den delas mellan fyra kärnor i ett CCX, skulle den ändå inte räcka som snoop-filter, men nu blir ju cache-missar även inom en CCX rätt mycket dyrare än på Intel.

Som jämförelse är Intels L1 och L2 inte strikt inkluderande då L2-cachen då skulle bestå av 25 % redundant information (L1I$ och L1D$ är båda 32 kB). Det påverkar ändå inte snoop-latens då L3 är strikt inkluderande av allt som ligger på lägre nivå (och L1/L2 tillhör endast en kärna), vilket betyder att en miss aldrig behöver titta i någon annan cache än den lokala L1/L2 samt L3 för att globalt avgöra att det ingen har den minnesadressen lagrad.

Rent praktiskt betyder detta inte jättemycket för arbetslaster som består av många helt oberoende uppgifter där man inte delar annan data än sådant som är "read-only" eller där data är "read-mostly" med en lås-strategi som inte består enkla lås som mutex eller liknande (dessa orsakar rejält med kors-CPU cache-koherenstrafik som kommer straffa designen i Zen).

Däremot lär mer desktop-inriktade laster som normalt kräver mer interaktion mellan kärnor (om de överhuvudtaget är multitrådade). Så gissar att om spel någonsin blir CPU-begränsade så kommer Zen skala sämre med kärnor än Core-serien. Den har helt enkelt högre latens för att hantera data som både läses och skrives av mer än en CPU-kärna. Än värre är det när man går mellan CCX men inget detaljer kring hur kommunikationen hanteras mellan CCX nämndes.

En positiv nyhet är att flyttalsdelen och heltalsdelen kan påbörja instruktioner samma cykel vilket betyder att sett till "peak-rate" så kan Zen påbörja två minnesoperationer, fyra heltalsoperationer OCH fyra flyttalsoperationer samma cykel. Då framförallt flyttalsdelen är rätt asymmetriska så är det många saker som måste rada upp sig för att det någonsin ska hända. Är peak då designen maximalt kan leverera 6 mikro-ops och maximalt kan avkoda 4 x86 instruktioner. Men det kan hända efter en rejäl "pipeline bubble".

Vidare verkar det som Zen inte har två FMAC där man för separata MUL elller ADD kör med "halva" FMAC:en (så fungerar Intel och även Excavator om jag förstått rätt). Zen har i stället två MUL och två ADD i separata pipelines där två pipelines kan kombineras för FMAC stöd. I det läget ger inte FMAC högre kapacitet, utan det enda man vinner på att använda FMAC är högre precision då det inte sker någon avrundning till registerformat mellan multiplikation och additionssteget.

Så i arbetslaster som har någorlunda nära 1:1 med flyttalsaddition och flyttalsmultiplikation men FMAC inte kan används samt där man inte använder AVX så är flyttalskapaciteten i Zen högre än Skylake räknat per klockcykel. Valet av Blender som jämförelse ter sig allt mindre som en slump (det kör SSE2 vilket saknar FMA-stöd), AnandTech har också spånat lite kring varför man valde just detta test. Slutsatsen är typ att inget kan sägas om generell prestanda baserat på detta test då allt för många parametrar är okända och det är endast ett test.

Som redan nämns flera gånger i denna tråd så är flyttalsintensiva laster en nischmarknad, innan vi får lite känsla för hur Zen presterar i "normala" applikationer så är allt väldigt mycket spekulation än.

Angående @Kuufukuji fråga om SHA1/SHA256. Vad jag kan se så är det verkligen begränsat till dessa två då man implementerat Intels SHA1/SHA256 instruktioner som beskrivs här. Folk har visat att det är möjligt att med SSE/AVX öka hastigheten med i teorin en faktor 4(SSE)/8(AVX) och man kommer hyfsat nära detta i praktiken. SHA1/SHA256 instruktionerna ger klart större boost än en faktor 4/8, men de är då begränsade till just dessa två varianter.

Edit: I tråden kring AnandTechs sammanfattning av gårdagens presentation säger någon detta

"One research paper that I read showed exclusive caches having twice the latency of inclusive when snooping was required. If your data-structure has a scaling that works well up to 16 cores on Intel's inclusive cache, it may cap out around 8 cores on AMD's exclusive, thanks to Amdahl's law."

Dold text

Tyvärr ges ingen länk till sagda forskningsresultat, posta gärna länkar i denna tråd om någon hittar sådant.

Att program som har viss kors-CPU kommunikation inte kommer skala lika väl på Zen står klart redan när man ser CCX designen, men för skrivbordet är ju 4 kärnor fullt tillräckligt i en majoritet av fallen så påverkar ju bara modeller med fler än 4 kärnor. Skulle vara intressant att få en känsla för vad de olika cache policyvalen kan tänkas bidra med, även om det också blir extremt mellan-tummen-och-pekfingret innan vi ser jämförelser med verkliga program. Där finns dock påverkar även inom CCX.

Tänkte ta upp det där med om inte Zen var bredare än Skylake då FPU och ALU inte delar pipor i Zen medan Intel har samma portar till både heltal och flyttal?
Angående det där med Blender. Hur är det generellt med spel och balans med gammal ren MUL och ADD jämfört med FMA?

Permalänk
Medlem
Visa signatur

Server: Fractal design Define 7 XL | AMD Ryzen 7 5800X 8/16 | ASUS ROG CROSSHAIR VIII DARK HERO | 64GB Corsair @ 3000MHz | ASUS Radeon RX 460 2GB | Samsung 960 PRO 512 GB M.2 | 2x 2TB Samsung 850 PRO SSD | 6x Seagate Ironwolf Pro 10TB
WS: Phantex Entoo Elite | AMD Ryzen Threadripper 1950X 16/32 | ASUS Zenith extreme | 128GB G.Skill @ 2400MHz | ASUS Radeon HD7970 | 3x 2TB Samsung 960PRO M.2 | 6x Seagate Ironwolf Pro 10 TB
NEC PA301W 30" @ 2560x1600 | Linux Mint 21.3 Cinnamon

Permalänk
Datavetare
Skrivet av Aleshi:

Tänkte ta upp det där med om inte Zen var bredare än Skylake då FPU och ALU inte delar pipor i Zen medan Intel har samma portar till både heltal och flyttal?
Angående det där med Blender. Hur är det generellt med spel och balans med gammal ren MUL och ADD jämfört med FMA?

Normal definition av "bredd" för en CPU är antal ISA-instruktioner den kan hantera över obegränsad tid givet inga andra flaskhalsar. I fallet för både AMDs och Intels modeller är det då front-end som sätter gränsen, alla utom Skylake är då 4 bred medan Skylake är 5 bred. Notera att även med den definitionen blir Apples Twister bredast då den tar upp till 6 ARM-instruktioner.

Sedan har Intel sedan Core2 "macro-op fusion" där vissa par av x86 instruktioner slås ihop och räknas som en instruktion i front-end, så med "rätt" mix kan Intels modeller hålla 5 resp 6 (Skylake) instruktioner. Oavsett vilken mix man har på Zen och Excavator är det maximalt 4 x86-instruktioner.

De flesta spel använder nog inte flyttal alls (eller möjligen i minimal utsträckning), något som varit fallet sedan man började köra hela 3D-pipeline på GPUn och inte bara rastrering. Tittar man på hur Aigis PPU för PhysX var designad så verkar SIMD vara en rätt bra match för spelfysik så om man börjar köra det i någon större utsträckning lär AVX vara värt att använda. GPUer är helt beroende av att kunna utnyttja FMA, så om PhysX fungerar någorlunda vettigt på GPUer lär det dra nytta av FMA.

Rent generellt är det så att de flesta program både på skrivbordet och servers är helt beroende av heltalsprestanda, i de fall de jobbar med flyttal är det typiskt inte flaskhalsen. Undantag finns naturligtvis, t.ex. program som Blender och annat som renderar. Alla lägen där man jobbar med matriser passar FMA (och SIMD rent generellt) som hand i handsken, men här finns också områden som än bättre hanteras på en GPU (så om GPGPU någonsin tar fart kanske det inte blir gnäll på att det finns en iGPU som äter kisel).

"Gammal" FMUL/FADD i form av x87-instruktioner existerar i praktiken inte för AMD64/Intel64 då SSE2 är ett minimikrav. Däremot kan man använda SSE även för skalärer och i det läget borde Zen ha en fördel av 2 FADD + 2 FMUL.

Att Intel har samma portar till både heltal och flyttal är i praktiken ingen begränsning då det finns fler portar än antal mikro-ops som kan stoppas in i schemaläggaren. Eventuella trafikstockningar hanteras av att det finns en kö. Vidare har Zen har ju ett par cyklers latens mellan heltalsdelen och FPU, en latens som är noll för Intel då allt hanteras av en och samma schemaläggare.

Var detta jag försökte visa med att sätta en parentes runt antal "dispatch ports" för flyttal på Intel, det är 3 flyttalspipelines men de delar portar med heltal. En port behövs ju bara för att påbörja en instruktion, så även om säg FMA tar 5 cykler så kan man starta en heltalsintruktion cykeln efter man startade FMA. D.v.s. porten är inte spärrad medan något håller på (man kan även starta en till FMA då dessa är "fully pipelined", på Zen är det en var annan cykel när man kör AVX).

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:

Normal definition av "bredd" för en CPU är antal ISA-instruktioner den kan hantera över obegränsad tid givet inga andra flaskhalsar. I fallet för både AMDs och Intels modeller är det då front-end som sätter gränsen, alla utom Skylake är då 4 bred medan Skylake är 5 bred. Notera att även med den definitionen blir Apples Twister bredast då den tar upp till 6 ARM-instruktioner.

Sedan har Intel sedan Core2 "macro-op fusion" där vissa par av x86 instruktioner slås ihop och räknas som en instruktion front-end, så med "rätt" mix kan Intels modeller hålla 5 resp 6 (Skylake) instruktioner. Oavsett vilken mix man har på Zen och Excavator är det maximalt 4 x86-instruktioner.

De flesta spel använder nog inte flyttal alls (eller möjligen i minimal utsträckning), något som varit fallet sedan man började köra hela 3D-pipeline på GPUn och inte bara rastrering. Tittar man på hur Aigis PPU för PhysX var designad så verkar SIMD vara en rätt bra match för spelfysik så om man börjar köra det i någon större utsträckning lär AVX vara värt att använda. GPUer är helt beroende av att kunna utnyttja FMA, så om PhysX fungerar någorlunda vettigt på GPUer lär det dra nytta av FMA.

Rent generellt är det så att de flesta program både på skrivbordet och servers är helt beroende av heltalsprestanda, i de fall de jobbar med flyttal är det typiskt inte flaskhalsen. Undantag finns naturligtvis, t.ex. program som Blender och annat som renderar. Alla lägen där man jobbar med matriser passar FMA (och SIMD rent generellt) som hand i handsken, men här finns också områden som än bättre hanteras på en GPU (så om GPGPU någonsin tar fart kanske det inte blir gnäll på att det finns en iGPU som äter kisel).

"Gammal" FMUL/FADD i form av x87-instruktioner existerar i praktiken inte för AMD64/Intel64 då SSE2 är ett minimikrav. Däremot kan man använda SSE även för skalärer och i det läget borde Zen ha en fördel av 2 FADD + 2 FMUL.

Att Intel har samma portar till både heltal och flyttal är i praktiken ingen begränsning då det finns fler portar än antal mikro-ops som kan stoppas in i schemaläggaren. Eventuella trafikstockningar hanteras av att det finns en kö. Vidare har Zen har ju ett par cyklers latens mellan heltalsdelen och FPU, en latens som är noll för Intel då allt hanteras av en och samma schemaläggare.

Var detta jag försökte visa med att sätta en parentes runt antal "dispatch ports" för flyttal på Intel, det är 3 flyttalspipelines men de delar portar med heltal. En port behövs ju bara för att påbörja en instruktion, så även om säg FMA tar 5 cykler så kan man starta en heltalsintruktion cykeln efter man startade FMA. D.v.s. porten är inte spärrad medan något håller på.

Okej. Bra och tydligt förklarat.
Antar att det är typ extrapotentiellt svårare att öka bredden på front-end? Vill minnas att jag fått det förklarat för mig att det blir ganska ovärt då det blir mycket mer kisel och ström som går åt till något som sällan kan utnyttjas optimalt med normal kod.

Permalänk
Medlem

Kommer zen lida av högre latenser än vad fx cpuerna gjorde?!

Permalänk
Datavetare
Skrivet av Aleshi:

Okej. Bra och tydligt förklarat.
Antar att det är typ extrapotentiellt svårare att öka bredden på front-end? Vill minnas att jag fått det förklarat för mig att det blir ganska ovärt då det blir mycket mer kisel och ström som går åt till något som sällan kan utnyttjas optimalt med normal kod.

Det är nog inte exponentiellt svårare, men däremot är det väldigt mycket "diminish return" vilket gör att utfört arbete per Watt ekvationen inte ser speciellt rolig ut för en bredare front-end. I praktiken ligger genomsnittlig IPC för Intels dagens modeller (har bara mätt på dessa) i bästa fall på ~2,0-2,5 och även när man kör två trådar är det sällan man ser 3. Flaskhalsen är ytterst sällan front-end ens med en bredd på fyra.

Prestandan i Skylake ökade ju rätt lite trots att bredare front-end och högre s.k. "retire rate" (d.v.s. hur många mikro-ops per cykel som maximalt kan lämna out-of-order delen) i enkeltrådfallet. Däremot ser man en vinst med HT, så blir spännande att se hur mycket boost Zen får av SMT.

Att Apple ändå kan köra med en så stor bredd är nog den enda fördelen som finns kvar för RISC: front-end blir betydligt enklare så där kan man tydligen kosta på sig 6-wide även för en CPU för telefoner. Apple är dock ensamma om detta, för de andra ARM-tillverkarna är bredden som mest 3-wide (kan finnas någon precis lanserad modell för servers som är bredare och finns absolut modeller på gång som är bredare än 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
Datavetare
Skrivet av criscros:

Kommer zen lida av högre latenser än vad fx cpuerna gjorde?!

Nej! En stor flaskhals i Bulldozer-serien ska tydligen ha varit latens för skrivningar, något som orsakades av att L1D$ är av en typ som kallas "write-through", d.v.s. allt som skrivs måste också skrivas i nästa nivå (L2).

Zen har en L1D$ av "write-back" typ. Ovanpå det är bandbredden cache-till-cache rejält mycket högre i Zen jämfört med tidigare.

Däremot lär Zen ha högre genomsnittlig latens än Intel givet att man ändå kör med exkluderade L3-cache.

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

@Yoshman:
Har försökt hänga med i tråden men ni spelar i en helt annan liga. Du verkar kunnig, får Amd tumme upp eller tumme ner?

Permalänk
Medlem
Skrivet av Yoshman:

Nej! En stor flaskhals i Bulldozer-serien ska tydligen ha varit latens för skrivningar, något som orsakades av att L1D$ är av en typ som kallas "write-through", d.v.s. allt som skrivs måste också skrivas i nästa nivå (L2).

Zen har en L1D$ av "write-back" typ. Ovanpå det är bandbredden cache-till-cache rejält mycket högre i Zen jämfört med tidigare.

Däremot lär Zen ha högre genomsnittlig latens än Intel givet att man ändå kör med exkluderade L3-cache.

fju... vilken tur!! började bli riktigt förvirrad utav all info här ..

De började gå över styr med latenser redan till phenom arkiteturen.. och det bara fortsatte dala ner efter till bulldozer..

Och att de har lite högre latens än intel är nog itne så konstigt då intel har ,i princip, enbart finslipat på en redan extremt finslipat arkitetur...

edt: redigerade lite

Permalänk
Datavetare
Skrivet av foxzox7:

@Yoshman:
Har försökt hänga med i tråden men ni spelar i en helt annan liga. Du verkar kunnig, får Amd tumme upp eller tumme ner?

Råder inga tvivel om att Zen är långt bättre än vad den ersätter, det som i alla fall jag tycker är omöjligt att säga givet den information vi har idag är: exakt hur bra/dåligt står den sig mot Intels aktuella produkter. Så väntar med tummen, ser dock inget som är en show-stopper så det kan absolut blir bra.

Skrivet av criscros:

fju... vilken tur!! började bli riktigt förvirrad utav all info här ..

De började fucka upp sina jävla latenser redan till phenom arkiteturen.. och det bara fortsatte dala ner efter till bulldozer..

Zen kommer även ha lägre latens än Phenom, t.ex. har man en design av L1D$ som möjliggör lägre genomsnittlig latens än även vad som fanns i Phenom-serien. Även om latens i viss lägen är sämre än Intel kan man inte med informationen som finns idag säga hur relevant det är för prestanda i olika applikationer. Det kan visa sig vara ett icke-problem i många 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
Medlem
Skrivet av Yoshman:

Råder inga tvivel om att Zen är långt bättre än vad den ersätter, det som i alla fall jag tycker är omöjligt att säga givet den information vi har idag är: exakt hur bra/dåligt står den sig mot Intels aktuella produkter. Så väntar med tummen, ser dock inget som är en show-stopper så det kan absolut blir bra.

Zen kommer även ha lägre latens än Phenom, t.ex. har man en design av L1D$ som möjliggör lägre genomsnittlig latens än även vad som fanns i Phenom-serien. Även om latens i viss lägen är sämre än Intel kan man inte med informationen som finns idag säga hur relevant det är för prestanda i olika applikationer. Det kan visa sig vara ett icke-problem i många fall!

det låter bra!

ne även om zen har högre latenser än intels så tror jag knappast det blir den avgörande faktorn...

Ser ut som om zen lär bli väldigt motståndskraftigt!

Permalänk

Någon som vet om AM3+ kylare kommer att vara kompatibla med AM4? Jag funderar på om jag kan beställa vattenblock nu som jag sedan kommer kunna använda med Summit Ridge?

Visa signatur

/ Tidigare: Dr.Pez /
Stationär:- Lian Li o11 - Asus B450F Gaming II - Ryzen 9 3900X - Kingston HyperX 3200mhz 4x8GB - Corsair RM750x - RX 6900 XT - Custom Loop -
Bärbar: Dell Latitude 5290
Monitor: Acer X34 + Asus PB278Q Lurar: Sennheiser HD599

Permalänk
Entusiast
Skrivet av Emil Hansson:

Någon som vet om AM3+ kylare kommer att vara kompatibla med AM4? Jag funderar på om jag kan beställa vattenblock nu som jag sedan kommer kunna använda med Summit Ridge?

Har du inte en Noctua så blir det jobbigt.
http://m.sweclockers.com/nyhet/22237-sockel-amd-am4-far-nytt-...

Visa signatur

Den digitala högborgen: [Fractal Design Meshify C] ≈ [Corsair RM850x] ≈ [GeForce RTX 3080] ≈ [AMD Ryzen 7 7800X3D ≈ [Noctua NH-U14S] ≈ [G.Skill Flare X5 32GB@6GHz/CL30] ≈ [MSI MAG B650 TOMAHAWK] ≈ [Kingston Fury Renegade 2 TB] ≈

Permalänk
Skrivet av Sisyfos:

Tack för infon, Då väntar jag med att köpa CPU block helt enkelt

Visa signatur

/ Tidigare: Dr.Pez /
Stationär:- Lian Li o11 - Asus B450F Gaming II - Ryzen 9 3900X - Kingston HyperX 3200mhz 4x8GB - Corsair RM750x - RX 6900 XT - Custom Loop -
Bärbar: Dell Latitude 5290
Monitor: Acer X34 + Asus PB278Q Lurar: Sennheiser HD599