Skrivet av dahippo:
Har en lite annorlunda fråga och utgår från frågeställningen"inget är bättre än svagaste länk". Om man jämför AMDs SMT(Zen) mot Intels SMT. Vad är effektivast, menar inte IPC utan när AMD (Zen) kommer att använda SMT tar de 4 kärnor till en enhet, där varje kärna har 4 ALU, 2 AGU och en FPU del med 2x128 bits FMAC(som klarar 256 bits AVX). Intel SMT(Haswell) utgår från 2 kärnor och har per kärna 4 ALU och 2 AGU och likvärdig FMAC och AVX2. När de har 4 trådar per cykel är 1a 2 på uppgående fyrkants våg medans de sista 2 är på nergående fyrkants våg(kallat HT)?. Hur löser AMD sin SMT är det 4 eller 8 trådar och vilken är effektivast. Någon som har en ide?
Allt för få detaljer kring Zen är känd för att man ska kunna göra någon som helst rimlig gissning kring sådant.
Sedan fungerar inte SMT som du beskriver med att trådar kör på fallande resp. stigande klockflank, finns heller inget i Intels design som utgår från två kärnor. I Zen verkar däremot en "unit" vara fyra kärnor som delar direktaccess till samma L3$-partition.
Varje klockcykel kan Core2 till Broadwell avkoda fyra x86-instruktioner (eller fem vid macro-op fusion). Skylake kan avkoda fem/sex (macro-op fusion). Av allt att döma verkar Zen kunna avkoda fyra x86-instruktioner. Detta gäller oavsett om en eller två trådar används per kärna, däremot finns vad jag vet ingen information om huruvida instruktionerna kommer från en specifik tråd varje klockcykel (rätt troligt ändå) eller om de kan komma från båda trådarna samma cykel.
För alla dessa CPUer delas sedan x86-instruktionerna upp i RISC-liknande interna instruktioner, dessa stoppas sedan in i en lista över instruktioner "in-flight" (out-of-order fönstret) eller en av två sådana listor i Zen, där verkar heltal och flyttal ha separata köer (enligt läckt information, Bulldozer till Steamroller har två sådana listor). Från denna lista kan sedan Core 2 till Ivy Bridge ta upp till sex micro-ops medan Haswell och senare kan ta upp till åtta micro-ops. Av den information som finns kring Zen kan man gissa att den kan ta upp till sex micro-ops.
Fast det är betydligt mer komplicerat än så... Tittar man på Skylake så måste fyra av dessa micro-ops vara beräkningar och gå till heltals/flyttals ALU, två kan vara läsning eller skrivning, en kan bara vara skrivning och den sista är dedikerad för att skriva data till L1D$ (något som i Bulldozer till Streamroller i stället "kostar" en heltalslot, d.v.s. en mindre ALU kan utföras i sådant läge, ingen aning hur Zen fungerar här).
Ska man beskriva det lite enkelt så har Core2-Ivy Bridge 3 ALU och 2 AGU, Haswell och senare har 4 ALU och 3 AGU medan Zen har 4 ALU och 2 AGU. Fast det säger inte mycket mer än vad peak-rate är, det intressanta är genomsnittlig IPC och den kan inte utläsas från detta då den beror på långt fler faktorer.
Tittar man på Intels CPUer och specifikt på SMT så ökade effekten en del i Haswell tack vare högre kapacitet i "back-end". Effekten av SMT ökade rätt mycket i Skylake för heltalsintensiv kod, rimligen för att en enda tråd har väldigt svårt att fylla den högre kapaciteten i "front-end". Däremot tenderar kod som använder SSE/AVX inte få speciellt stor effekt av SMT, gissningsvis för sådan kod ofta är begränsad av kapacitet för flyttalsmultiplikation eller FMA (båda har relativt hög latens 5 cykler innan Skylake, 4 cykler för Skylake, i princip alla heltalsinstruktioner har 1 cykels latens).
Fast det sista som står där känns rätt taget ur luften
"Last, but not the least, the part of the news about Intel was true. It seems that Intel will commercialize a 10 cores Broadwell-E due to its own internal Zen simulations (Intel has some data we don't know, yet, and has skilled engineers that know what they do). Zen will have 8 cores, while Broadwell-E 10 cores. So, Intel will have the “King of the Hill”, but Zen seems to be very good in the mid range of the market (AKA, gaming and enthusiast configurations)."
Finns ingen rimlig möjlighet för Intel att göra några vettiga simuleringar av Zen givet den information som är känd. Enda konkreta informationen kring Zens interna design så här långt är väldigt översiktlig information från presentationer samt informationen i GCC-patchen som gav antal ALU, AGU och antal flyttalspipelines.
Finns t.ex. ingen information om exakt vad varje ALU är kapabel till, latens på olika instruktioner, latens mot cache, storlek på out-of-order fönster, storlek på load resp store buffers etc. En vild gissning är ungefär lika bra som en simulering givet informationen som finns så här långt.
Man blundar helt för elefanten i rummet: Xeon E5 finns i tre "smaker", LCC, MCC och HCC (Low/Medium/High Core Count). E-serien har så här långt innefattat alla modeller i LCC-gruppen, med Haswell (Xeon E5 v3) hade denna grupp upp till 8 kärnor medan Broadwell (Xeon E5 v4) har upp till 10 kärnor i LCC-gruppen.
Det som är unikt för LCC-gruppen är att alla kärnor och L3-cache segment sitter på en enda dubbelriktad ringbuffer samt en enda minneskontroller som hanterar fyra kanaler. MCC och HCC har två dubbelriktade ringbuffertar och två minneskontroller som hanterar två kanaler var, mer komplicerad systemagent (uncore) och därmed dyrare krets vilket inte lämpar sig för en konsumentmodell.