Reklama

Patch pro GCC odhaluje první detaily jader AMD Zen. Deset pipeline, čtyři ALU

Procesorová architektura Zen od AMD by měla v současnosti být asi nejvýznamnější věcí, která se v tomto oboru kuchtí (tedy pokud ze zásady neignorujete svět architektury x86 a nezajímají vás jen alternativní instrukční sady). Procesory na ní založené mají přijít až za rok či ještě delší dobu a zatím k těmto jádrům je jen minimum informací – použití SMT, pár obecností, co byly prozrazeny na AMD Financial Analyst Day 2015, a podporovaná instrukční rozšíření. Nyní ale zdá se podoba Zenu konečně dostává konkrétnější rysy.

Představu si můžeme udělat díky příspěvku do překladače GCC, který AMD zaslalo do mailové konference projektu 30. září. Tento patch v sobě obsahuje první zveřejněný (ať už oficiálně, nebo pokoutně) nárys architektury Zen. Upozornil na něj Matthias Waldhauer (který pod přezdívkou Dresdenboy před lety blogoval už o tehdy ještě nevydaném Bulldozeru). Z jeho analýzy zde vycházíme.

 

Čtyři pipeline ALU, čtyři v jednotce FPU

Hned z kraje lze říci, že Zen podle všeho bude skutečně tzv. „velkým jádrem“ v silném slova smyslu a měl by mít dobrý jednovláknový výkon. Podle kódu ze zmiňovaného patche má jádro celkem deset pipeline, z nichž čtyři jsou ALU, tedy aritmeticko-logické jednotky provádějící největší spektrum „obyčejných“ instrukcí. Tím by byl Zen na úrovni architektury Haswell/Broadwell (čtyři ALU má pravděpodobně i Skylake), i když architektura Intelu je stavěna trošku odlišně. Linie Bulldozer měla k dispozici ALU jen dvě, stejně jako Bobcat a Jaguar.

Instrukce SIMD a x87 (tedy kód, který u AMD zpracovává FPU) mají k dispozici rovněž čtyři pipeline. Steamroller a Excavator mají pipeline jenom tři, navíc sdílené mezi dvěma jádry. Zen by tudíž mohl mít na jedno jádro dokonce více výpočetních zdrojů pro instrukce typu SIMD a FMA, než jeden modul Steamroller/Excavator. Samozřejmě za předpokladu, že tyto pipeline jsou rovnocenné. Zdá se, že dvě by měly být určené pro sčítání (ADD) a dvě pro násobení (MUL), přičemž šířka vektoru jedné jednotky je 128 bitů. FPU by tím pádem byla schopná spočítat čtyři instrukce SSE za takt, nebo dvě 256bitové instrukce AVX/AVX2.

Architektura Zen dle údajů v patchi pro GCC
Architektura Zen dle údajů v patchi pro GCC

Zbylé dvě pipeline budou tzv. AGU (či AGLU?), tedy load/store jednotky pro výpočet adres a čtení či zápis dat z paměťového subsystému do registrů nebo zpět. V jejich případě k zvýšení počtu zřejmě nedošlo, dvojici AGU má Jaguar i současné „stavební stroje“. Podle zmínek na LinkedIn by snad měly být schopné dvou operací load nebo jedné store za takt. AMD se u Zenu zdá se rozhodlo pro značně jiný poměr mezi prostředky jako jsou AGU a čistě výpočetními jednotkami (ALU, FPU/FMAC). Také kapacita frontendu by měla být podobná jako u Steamrolleru a Excavatoru – dekodéry jsou čtyři, z nichž každý umí dekódovat jak jednoduché, tak komplexní instrukce. Jádro Zen je tedy tzv. „4-issue“, stavěné na zpracování 4 instrukcí za jeden takt.

 

Jádro má mít stejně velké L1 cache jako Jaguar, tedy zřejmě 32 KB pro data a 32 KB pro instrukce. Podle některých patentů, které AMD podalo, by datová L1 mohla mít osmicestnou asociativitu, toto ale patch samotný neukazuje. L2 cache bude mít kapacitu 512 KB, díky čemuž by měla mít lepší latence a snad i propustnost než 2MB L2 cache u Bulldozerů (respektive o něco rychlejší 1MB u Excavatoru).

Odhadované schéma jádra Zen podle Matthiase Waldhauera (Zdroj: Citavia Blog)
Odhadované schéma jádra Zen podle Matthiase Waldhauera (Zdroj: Citavia Blog)

Patch ukazuje dále například snížené latence při výpočtu dělení a odmocnin (což jsou složité operace trvající desítky cyklů; tato zlepšení by údajně měl mít i Excavator). Ovšem i třeba násobení s pohyblivou řádovou čárkou má mít nízkou latenci (tři cykly), což podle Waldhauera ukazuje, že architektura není zaměřená na vysoké frekvence jako Bulldozer. Design je i počtem výpočetních jednotek evidentně stavěn na vysoké IPC, i když to samozřejmě závisí i na další infrastruktuře jádra, paměťovém subsystému s cache, predikci větvení a podobně.

IPC je ovšemže jen jednou neznámou ve vzorci udávajícím výkon. AMD bude muset zároveň dosahovat relativně vysokých frekvencí, což bude se Zenem pravděpodobně o něco těžší než s architekturami založenými na Bulldozeru. V tomto ohledu ale bude zároveň klást překážky výrobní proces (podle všeho 14nm proces 14LPP s FinFETy od GlobalFoundries), tento faktor by mohl být i významnějším limitem než architektura sama. Na jakých taktech má 14nm Zen podle AMD běhat, se bohužel z daných informací nedá odhadnout. Matthias Waldhauer si myslí, že relativně vysoké frekvence mezi 3,5 – 4,0 GHz jsou pro něj dosažitelné, nepřekvapilo by mě ale, kdyby to v reálu bylo níže.

 

Zen je začátek větší rodiny architektur

Tato podoba Zenu je v GCC naprogramována pod označením znver1. První generaci architektury by v následujících letech měly následovat vylepšené verze, podobně jako na Bulldozer (bdver1) navázal Piledriver (bdver2), Steamroller (bdver3) a Excavator (bdver4). Stávající údaje o architektuře Zen v kódu GCC mimochodem AMD vytvořilo tak, že vzalo jako základ podporu právě pro Excavator a nad ní provedlo první změny. Mnohé vlastnosti Zenu tedy tento kód zatím ještě neodráží, neboť patch není definitivní, další úpravy mají následovat později.

Zen, ilustrační foto

Zdroj: Citavia Blog, AMD (mailová konference GCC-patches)

Oblíbené Tisk E-mail
Další články na téma: 
Reklama
Reklama

Komentáře

Cache 512MB, tak to bude opravdu pokrok :-)

Na obrázku je 512kB ne MB a ve Zdroji je taky 512kB to by byl fakt pokrok a bylo by to zbytečně drahý, stačilo by 32MB

Jo, to je samozřejmě chyba, sorry & díky za upozornění. (Jó, prejže ranní ptáče dál doskáče.)

Ale jo, dál doskáče. Ale víc sežere a dřív umře. :-)

Vyzera to slubne.
1jadro. vykon by sa mohol pohybovat tesne pod Sandybridge a multi by mohol byt vyrovnany s Haswellom

Podle AMD jde výkon na takt o 40% nahoru proti Excavatoru.

IPC Excavatoru je asi 50% slabsie ako Broadwellu.
Cize vyzera tu dobre.

hej, a teda excavator by sa musel zlepsit o 100% aby dosiahol na broadwell, z tohoto pohladu to 40% zlepsenie nie je ziadny zazrak

On nemyslel, že by IPC Broadwellu bylo 200% Excavatoru, nýbrž 150%. Teda těch 50% navíc by ho dorovnalo.

Je to ale taková matematika s odhadama no, IPC v různých úlohách se mění (i relatirvní rozdíly mezi AMD a Intelem), v některých úlohách může ZEn to IPC zvýšit tak, v jiných onak. A hlavně nikdo teď neví, co přesně těch 40 % mělo znamenat - maximum, minimum, průměr, nebo nějaké specifické benchmarky? V jednom vlákně, nebo se započítámín SMT? Čert ví.

Veľmi zaujímavé a veľmi sľubné tento four-issue (4­-wide­) out-of-order execution microarchitektúry alias Jaguar (Puma+) na steroidoch (x2 ALU atď.) feat. niektoré dobré prvky microarchitektúry z Excavatora = Zen.
V podstate tak ako to zhodnotil Jim Keller namiešali tú správnu alchýmiu z kombinácie microarchitektúr Jaguar a "stavebných strojov" (Excavator) + samozrejme aj pre AMD nové prvky ako SMT atď.
link: https://www.youtube.com/watch?t=2&v=SOTFE7sJY-Q

Jaguar
link: http://www.cnews.cz/co-prinese-architektura-amd-jaguar-nasledovnik-uspor...

Excavator
link: http://www.cnews.cz/cpu-architektury-excavator-budou-umet-avx2-rdrand-da...

Ty s tím opěvováním koček nikdy nepřestaneš. :)

Internet je obecně hrozně zaujatej ve prospěch koček, s tím se už nic dělat nedá :)

http://i.imgur.com/ZwLtozI.gif

Poznámka: měl jsem tam menší chybu, původně bylo uvedeno, že se čtyřmi ALU by byl zen jako Nehalem - Ivy Bridge. To jsem se ale spletl, čtvrtou ALU dostal u Intelu až Haswell, tím pádem lze Zen srovnávat s Haswellem/Broadwellem a asi i Skylake, aspoň tedy nevím o tom, že by SKL mělo pátou ALU (ovšem je to komplikované, ta architektura Intelu s různými exekučními porty je dělaná trochu jinak). Text opraven.

Muhee já čekal optotranzistory a memristory. To je slabota :D :D :D Kvatovej počítač s neaurální sítí asi nebude no. :D

Teď ale vážně. Až AMD tohle vydá tak Intel bude zase jinde. To už nedohoní. To by musel nastat nějaký zázrak.

Aj ja necakam zazrak, uz bulldozer mal byt a nebol, no dufam, ze asontaky vykon bude a take ceny, ze clovek bude realne uvazovat o kupe procesorov AMD a ked uz ich kupi, tak budu konkurencieschpne , cena, vykon, sporeba bude OK, teraz nepoznam ludi, co by kupovali AMD az na skalnych fanusikov.

No tak len blázon mohol od Buldozerov, ktoré mali myslím len +/- polovičnú šírku FP, očakávať výkon na úrovni vtedajších Intelov ;) A pri skladbe testov (väčšina založená na FP, integer/AES prehlasované za irelevantné) bolo jasné ako to dopadlo.

A zo ZENom to bude rovnaké. Niekde bude výkonnejší ako Skylake, inde pod Nehalemom, ale to musí byť každému jasné. Lepšia otázka je podľa mňa ako sa k tomu postavia recenzenti.

Pro pobavení z jeDDnoho nejmenovaného webu: "Intel je poněkud nervózní z procesorů AMD Bulldozer."

Jj na tom nejmenovaném webu byl aDDmin ze mě poněkud nervózní a tak jsem dostal ban. :D

A jaký přesně že byl nárůst výkonu(IPC) mezi SB a Skylake za uplynulé čtyři roky? Spíše než výrazný pokrok u AMD předpokládám stagnaci CPU části u Intelu.

    Cena za CPU výkon se proti minulosti navyšuje, minimálně vezmeme-li v úvahu měnící se podíl velikosti CPU/GPU části na chipu.

    http://www.anandtech.com/show/4083/the-sandy-bridge-review-intel-core-i7...
    http://www.techpowerup.com/215333/intel-skylake-die-layout-detailed.html

    Pochybuju, že by Intel za ten rok byl někde jinde. Evidentně tam ani není zájem být někde jinde. Takže jen doufejme, že AMD přežije a dokáže ten Zen vydat a tím i pokopnout Intel. Samozřejmě pro Intel by nebyl problém již Skylake udělat jako osmijádro, když čtyřjádra mají pouhých 65W, ale hold není zájem, proč by to dělali, když můžou 6-8jádra prodat na dražší platformě. AMD potřebujeme jako sůl.

    Akorát těch 8 jader by na desktopu bylo totálně k ničemu. Existuje terminálně málo věcí, které jsou schopny to využít. A většina věcí se dost blbě paralelizuje.

    To počúvam stále, a aj by som tomu veril, ale môžeš upresniť "Existuje terminálně málo věcí, které jsou schopny to využít."

    A uviesť nejaké príklady úloh, ktoré sa ťažko paralelizujú.

    Pripomínam že sa bavíme o desktopoch.

    Taky by mě to zajímalo. Na desktopu sice nebudeme provozovat databáze, ale co se dneska tak blbě pararelizuje? A co nám brání používat pro různé procesy různá jádra?

    Většina zátěže v prvé řadě bude vždy závislá na I/o nebo vstupu od uživatele, což nám zlikviduje většinu trhu i při započítání velkého množství procesů zároveň. A potom se dostáváme k problému kolik se toho dá paralelizovat. Odpověď dost zní: dost málo. Velmi často se tož musí sdílet nějaký zdroj (datová struktura nebo nějaký objekt) a pak to zabije synchronizace a věcí bez sdílení už mnoho nezbývá a ty jsou pak často spíše vektorizovány (SSE/AVX nebo GPGPU) A všude pak limituje výkon paralelního kódu pravidlo Amdalovo (https://en.wikipedia.org/wiki/Amdahl%27s_law)

    Typuju že nikdo z vás není programátor... (nejen že je těžké něco paralelizovat, ale no je velmi těžké to udělat bez chyb pramenících z vícevláknového kódu a "magické" knihovny neexistují)

    Nesouhlasim plne s tim, ze se toho da paralelizovat tak malo (byt vidim, jakej problem to programatorum dela).

    I/O od uzivatele ma bezet ve vlastnim vlakne (ne nutne HW), na pozadi muzou probihat jine vypocty. Ale veskrze celkem souhlasim s tim, ze tech vypoctu v uzivatelskych aplikacich neni prilis (vsak typicke zatizeni vetsiny stroju je browser, ktery mi prijde pomerne slusne paralelizovatelny, ale utahlo by ho libovolne dvoujadro).

    S cim nesouhlasim je neexistence "magickych" knihoven. Pro embarrassingly parallel (map and reduce) problemy mas nastesti podporu vsude. A myslim, ze prave ty situace nastavaji docela casto (byt je mozna na pozadi knihovny resi i pomoci vektorizace).

    Jako uzivatel mam spis dojem, ze v posledni dobe neexistuje aplikace, ktera by umela vytizit procesor tak, ze by se na nej cekalo. Kdyz pominu hry, ve kterych se prd vyznam, tak mam dojem, ze trcime prave na I/O a jaky mame CPU je fuk.

    Na zaver bych ale stejne ten plan osmijadra obhajil. Myslim, ze nejen HW musi nasledovat SW, ale i naopak. Dej do vsech pocitacu 8-16 jadra a programatori zjisti, ze muzou zacit pouzivat veci, ktery driv nemohli. Treba se dockame neuronek jako algoritmu pro biometriky, ktere se budou ucit cloveka rozpoznavat v menicim se case... (Neuronky asi nejsou nejsikovnejsi napad, pac bezi spis na GPU, ale urcite bych nasel i neco co ma smysl jet na silnych velkych jadrech CPU.)

    Skoro všechny úlohy které jsou z GUI nebo závislé na I/O. A potom cokoliv s nějakou datovou závislostí nebo sdílenou strukturou. Příkladem může být víceméně jakýkoliv program. I video sem spadá, protože existuje jen několik postupů pro více vláknové zpracování, a všechny mají dost citelný nevýhody. (MT komprese například snižuje dost kvalitu)

    Čistě MT úloh je minimum. Část kompilace (C++), některé věci z videa (audio nikoliv), masivní tabulky v Excelu, nějaká čistě výpočetní úloha bez větších sdílených datových struktur a pod. Pár takových mám ve vývoji. (+kryptoměny)

    Jenom drobné upozornění:
    Před pár dny Intel vydal nový optimalizační manuál s detaily ke Skylake. Velmi zajímavé změny v kontextu naměřených změn.
    http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-i...

    Diskuze na RWT:
    http://www.realworldtech.com/forum/?threadid=154100&curpostid=154100