Bulldozer konečně „ve svém“, rozbor architektury
Přiznám se, že po dlouhém čekání mě samotné vyvrcholení šílenství kolem architektury Bulldozer minulo. Díky tomu však možná budu schopen vše pojmout s mírným nadhledem a zhodnotit mikroarchitekturu jako celek. Můj první dojem v podstatě sílil po celou dobu a konferenčním hovorem o Opteronech 4200 a 6200 vyvrcholil. Jaký dojem že to je? Buldozer je těžký pracovní stroj a za tímto účelem je vyroben. Nebudeme-li si nic nalhávat, pak je celkem jednoznačné, že Bulldozer byl pro změnu navrhován pro servery. Tečka.
Od takového stroje tak prostě nemůžete čekat, že porazí na silnici osobní auto. S dobrým návleky na pásy však může jet dostačující rychlostí pro dopravení se z místa na místo, a hlavně s dobrou radlicí zvládne jakkoli těžkou práci. Budoucími úpravami se z něj možná odvodí i kolový traktor a nakonec pick-up, který se s dostatečně silným motorem vyrovná i leckterému osobáku. To ale pořád nebude hlavním cílem.
A tak je to i u našeho Bulldozeru se dvěma „l“. První generace, ač se AMD snažilo, očividně jednovláknový výkon shodila dolů. Na druhou stranu ve vícevláknovém je na tom lépe (zvláště v některých aplikacích) a má potenciál dál excelovat s optimalizací operačních systémů, kompilátorů a software. Že použití správného kompilátoru pro danou aplikaci (či budoucí optimalizace těch univerzálně používaných) může dělat ohromné rozdíly, ukazuje test provedený na serveru Phoronix. U Bulldozerů je to zveličeno tím, že mikroarchitektura přinesla nové instrukce, které konkurenční Intel nemá. Dalším potenciálem do budoucna je optimalizace systémů pro správné dělení úloh na moduly (a ne na jádra), ačkoli to se tak úplně netýká Opteronů.
Srovnání výkonu programu C-Ray kompilovaného pěti různými kompilátory
Nezapomínejme také na aféry kolem kompilátoru od Intelu, který po detekci ne-Intel procesorů rovnou zahazoval pokročilé instrukce SSE. AMD ve svých materiálech přímo doporučuje programy využívající SSE3 a novější instrukce rekompilovat v případě, že volají kontrolu výrobce procesoru. Pro podporu úplně nových instrukcí pak doporučuje přepsat zdrojový kód, překompilovat pro jejich volání či alespoň použít knihovnu, která je používá. Zde má ovšem AMD pořád mnoho prostoru kde zapracovat; v Linuxu je situace vcelku dobrá, ale pro Windows je sada kompilátorů od Intelu zdaleka nejpoužívanější. Na druhou stranu nelze všechnu vinu svalovat na AMD; ano, na úrovni procesoru lze dělat mnoho, pořád ale značná část práce leží na bedrech programátorů. Čip může být jednou programovatelný, pokud z něj ale chcete vymáčknout maximum výkonu, musíte se přizbůsobit tomu, jak funguje, a ne tlačit výrobce ať ho udělá na míru vám. Bohužel přístup vývojářů v tomto není moc flexibilní.
Architektura pod drobnohledem
V této části trochu rozeberu architekturu Bulldozer pro ty, kteří si o ní ještě nepočetli (na EHW jsme toto zatím neadresovali). Vycházet budu zejména z recenze na Anandtechu, kde byla jako vždy krásně rozebraná i právě tato teoretická část. Na začátku je dobré zmínit jednu zajímavou drobnost, dle zástupců AMD nejsou desktopové a serverové procesory úplně stejné, je v ich prý rozdíl. Jelikož tomu ale vše nasvědčuje, nejlogičtějším vysvětlením se zdá být to, že AMD vyrábí v podstatě jeden model, část prodá jako Opterony, části zamkne určité funkce a prodá je jako desktopové FX.
Je již celkem obecně znám směr, kudy se vydávají oba největší výrobci: zvýšit počet paralelně spustitelných programových vláken. Zatímco Intel přidal svým procesorům možnost běhu dvou instrukčních vláken na jednom jádře s jednou sadou interních komponent a jádra přidává pomalu spolu s přechodem na novější výrobní technologie, v AMD sebrali dvě jádra, ořezali je částečně o části, které nejsou obvykle tolik využívané a zbytek slepili dohromady. Vznikl tak modul se dvěma jádry sdílející část vnitřních zdrojů s potenciálem velmi dobrého škálování výkonu při současném snížení spotřeby místa na únosnou úroveň. Zástupci AMD sami prohlásili, že výsledkem 5–7 let inovací je fakt, že nejen celé moduly, ale i jejich jednotlivé součásti jsou plně modulární. Zatím se změny neplánují, ale v budoucnu bude možné nahradit je úplně jinými součástmi (např. částmi z grafických jader).
Počet jader |
Architektura | |||
K10 | Bulldozer | Sandy Bridge | ||
1 | Počet dekódovaných instrukcí | 3 | 4 | |
2 | 6 | 4 | 8 | |
4 | 12 | 8 | 16 | |
6 | 18 | 12 | 24 | |
8 | 24 | 16 | 32 | |
12 | 36 | 24 | 48 | |
16 | 48 | 32 | 64 |
Instrukce v Bulldozeru z instrukční cache (sdílená 64KB pro obě jádra – nedojde tak k duplicitnímu nahrávání instrukcí) míří do sběrače, který je schopen pojmout celkem čtyři za takt a přeposlat je k dekodéru. To je navýšení oproti architekturám K8 a K10, jejichž sběrač zvládl tři instrukce. Výraznou výhodou to však je jen pro případ, kdy modul používá jeden proces (což je zatím onen problém rozdělování práce operačními systémy), dva procesy (pro dvě jádra) totiž sběrač sdílí a tak každý proces za takt může dodat jen dvě instrukce. Přehledně to zobrazuje tabulka, kde je vidět, že škálování zdaleka není tak vysoké jako u předchozí architektury K10 či u konkurenčního Sandy Bridge. Na druhou stranu má AMD pravdu v tom, že mnoho instrukcí je dekódováno déle jak jeden takt, tudíž si zde nějakou dobu pobudou. Otázkou ale je, zda ve virtualizovaném či databázovém prostředí nepřevládá spíše mnoho jednodušších instrukcí, což by znamenalo, že za každý takt Bulldozery opravdu zpracují méně.
Schéma modulu architektury Bulldozer
Pravdou ale je, že v segmentu, do kterého procesory, resp. celé platformy míří, se spíše uvažuje směrem k celkovému výkonu, celkové energetické efektivitě a celkové ceně. Pokud tedy procesory v průměru zpracují na jádro o něco méně (ale celkově díky počtu jader stále o něco více) při celkově lepším využití prostředků tak, že neleží ladem a neberou zbytečně proud, celková hodnota platformy stoupne. Co dle AMD převažuje jsou celočíselné operace, proto si každé jádro zachovalo vlastní celočíselný plánovač (scheduler) a dvě symetrické instrukční ALU (aritmeticko-logické jednotky)/AGU (jednotka pro generaci adres) pipeline. Od K8 to byly tři, dle AMD se ale moc často nedařilo třetí zaplnit, proto byla v rámci úspor místa třetí odstraněna. Plus vlastní L1 DCache. K většímu využití samotných pipeline napomáhá technologie kterou Intel používá již dlouhou dobu, a sice slepování operací (Branch Fusion). Více operací se tak dá spojit a dále dekódovat jako jedna.
Schéma spojení pipeline a z toho vzniknuvší podpora nových instrukcí
Plánovače a pipeline pro výpočty s plovoucí desetinnou čárkou jsou opět sdílené oběma jádry, podobně jako 2MB L2 cache. K úspoře místa došlo i tím, že zde nejsou dedikovány vlastní trasy pro výpočty násobení a sčítaní s plovoucí desetinnou čárkou, ale vše řeší ty samé jednotky které umí i FMAC. FMAC (fused multiply accumulate, spojené násobení/sčítání) je zajímavá instrukce, neboť vlastně spojuje dvě (násobení a poté přičtení), čímž šetří procesorové cykly. Zajímavostí je pak možnost spojit obě 128bitové pipeline do virtuální 256bitové a počítat s vyšší přesností, což v praxi znamená možnosti využít již zmiňovaných nových instrukcí. Těmi jsou FMAC4 a VOP, které současná mikroarchitektura Intelu vůbec nenabízí. Jak ukazuje snímek, FMAC4 jsou vhodné k rozsáhlým aritmetickým operacím jako násobení velkých vektorů, matic či tenzorů, což má použití např. v modelování tekutin, částicové fyzice, kvantové mechanice, různých oborech chemie. Zmíněno bylo také zpracování čislicového signálu, na Opterony tak např. možná narazíme na straně vysílačů rádiového a televizního vysílání nebo také streamování po síti.
Cesta instrukcí ke zpracování v celočíselných jednotkách
Mezi celkové změny patří to, že všechny plánovače, buffery a fronty jsou větší. Nevýhodou jsou tak celkově delší pipeline a tudíž fenomén zvyšování frekvence. Na druhou stranu lépe zapracuje zpracování instrukcí mimo pořadí a procesor si sám zařadí instrukce jak potřebuje, tudíž je zde šance na lepší využití výpočetních jednotek. Novou změnou je zavedení jednotného fyzického registru, na který se pak data odkazují pomocí ukazatelů, není tak nutné neustále něco stěhovat po procesoru (což šetří čas i energii) mezi více registry.
Cesta instrukcí ke zpracování přes předpovídač větvení
Pro co nejlepší plnění výpočetních jader je ovšem nezbytně nutné vědět i to, jak vlastně instrukcemi plnit tak, aby nedocházelo ke konfliktům (např. čekání na výsledky ještě nezpracovaných instrukcí či zařazení instrukcí které ještě nejsou v cache). K tomu v AMD zcela předělali a opět zvětšili předpovídač větvení. Nově pojme více historických dat a má tak větší databázi ze které předpovídat. Navíc, dojde-li už ke konfliktu, předpovídač může pokračovat v práci namísto toho, aby se vše zastavilo, výsledky vyhodily a začalo se od začátku. Výhodou je i to, že samotné instrukční pipeline mohou průběžně přepínat mezi SSE a AVX instrukcemi, což je dle AMD opět unikátní vlastnost jejich procesorů, konkurenční procesory musí vše z pipeline vyhodit chtějí-li přepnout z AVX na SSE a naopak.
Na úrovni celého čipu je pak sdílena L3 cache o kapacitě 8 MB a funkce severního můstku. U Opteronů Interlagos jsou opět (jako u Magny-Cours) v jednom pouzdře čipy dva, proto je vše zdvojené, což přináší řadu výhod. Jednou z funkcí severního můstku je paměťový řadič, dle AMD zcela přepracovaný. Zde je ono místo, kde má AMD sedm let zkušeností (tak dlouho již uplynulo od uvedení mikroarchitektury K8/Hammer). Propustnost řadiče byla oproti Opteronům Barcelona zvýšena až o polovinu, za což zčásti může krom přepracování řadiče také podpora rychlejších pamětí DDR3-1600. K připojení dalších periferií má každý čip tři HyperTransport 3.0 linky, v případě Interlagos je vždy jedna použita na propojení obou čipů, na venek jsou tak k dispozici celkem čtyři linky.
Novinky a optimalizace v úspoře energie, výhody platformy, modely
První věcí, která není ani tak optimalizací v úspoře energie, jako spíše optimalizací ve využití už spotřebovávané energie, je Turbo Core (TC). Technologie poprvné představená u Thubanů se dočkala výraznějšího vylepšení. V AMD implementovali řadu funkcí pro sledování hodnot reálně odebíraného proudu, díky čemuž může TC zasahovat až do limitů TDP, tudíž také mnohem častěji. Na to se na serveru Anandtech podívali blíže a výsledkem je zjištění, že při jednovláknové záteži u Phenomu II X6 TC zasáhne velmi zřídka, u FX-8150 ovšem běží procesor celou dobu na frekvenci vyšší o 9 % a občas dokonce skočí až na samé maximum. Přímo v recenzi leží vyjádření: „Poprvé v historii AMD škáluje frekvenci lépe než Intel.“
Demonstrace chování TC při zatížení jednoho jádra
Zde je dobré zmínit jednu drobnost, pro někoho však zásadního charakteru: s tím, jak bude růst optimalizace využití prostředků procesoru až do reálných limitů příkonu (TDP), ukazatel průměrného příkonu (ACP) ztratí svůj smysl, tudíž jej v AMD postupně přestanou používat. Kromě přetaktování zůstávají zachovány funkce podtaktování, nově k nim přispívá i režim hlubokého spánku C6, který neaktivní jádra v podstatě úplně odstaví od proudu, díky čemuž právě je také možné dosahovat vyšších frekvencí s TC. V současné generaci Opteronů tak bude možné zvýšit frekvenci všech jader až o 500 MHz či poloviny jader až o více jak 1 GHz (to se bude lišit dle modelu), v budoucnu se možná dočkáme škálování i menšího počtu jader nezávisle na sobě.
Přehled možností TC na Opteronech
Zdánlivou drobností je kromě nízkonapěťových (1,35 V) modulů DDR3 podpora nového standardu LR DIMM, který jednak umožňuje použití více paměťových čipů na modul, a pak také ještě nižší napětí, jen 1,25 V. To se zdá jako nic, avšak typický případ použití jsou Blade servery či racky s omezenými možnostmi napájení a chlazení. Úspora několika desítek wattů tak může znamenat obsazení další pozice ještě jedním celým strojem. V AMD šli ještě dál a na žádost výrobců právě pro tyto systémy zavedli technologii Power Cap. V BIOSu tak bude možné přímo číselně zadat maximální hodnotu příkonu procesorů. Opět tak např. snížením TDP u všech strojů v racku o nějakých 10 % může být umožněno provozovat o několik strojů a desítky jader víc.
Srovnání možností využití racku při snížení příkonu procesorů
Srovnání platforem
Jelikož nové mikroprocesory od Intelu mají do vydání ještě měsíce, na serverovém trhu se AMD podařilo Intel chytit nepřipravený. Jednovláknový výkon jenž je slabou stránkou Bulldozeru, nemá smysl srovnávat; díky virtualizaci se jednovláknová zátěž jednoho klienta pro procesor rovná jednomu z desítek vláken žádajících o zpracování. Výhodou každopádně je větší množství jader proto, že u většího množství virtuálních klientů rostou nároky na jejich management. V tomto je výhodnější jít cestou celých jader na nižší frekvenci (ta ale navíc u Bulldozerů již oproti nabídce Xeonů nižší není) – každý klient dostane svoje vlastní jádro. Při menším počtu jader na nižší frekvenci je klientů na jednom jádře víc a při jejich přepínání roste neužitečná zátěž. V praxi však lze čekat (dle druhu zátěže ovšem) nasazení i více klientů na jedno jádro. I při nasazení pouze např. dvou na jádro oproti třem u Intelu je však výhoda jader stále zřejmá.
V současnosti tak lze pouhým srovnáním základních konfigurací dvou serverů od HP (ProLiant DL 385 G7/Opteron 6274 vs. DL 380 G7/Xeon E5649) zjistit, že za stejnou cenu zákazník obdrží dvacet jader navíc. Server na AMD zároveň pojme až 512 GB paměti oproti 288 GB u DL 380 G7. Jednoznačnou výhodou AMD zde je to, že procesory lze rovnou nasadit do stávajících systémů. Tudíž výrobci nemusí moc měnit, stačí aktualizovat BIOS, osadit je a dodávat na trh jinak nezměněné.
Srovnání výkonu na plochu Opteron vs. Xeon v podání AMD
Materiály AMD srovnávající nejvyšší Bulldozery s vyššími (ne nejvyššími) Xeony samozřejmě předvádí drtivé vítězství AMD, nelze moc čekat nic jiného. Je nutné vzít v potaz, že takové srovnání obvykle není úplně regulérní pokud např. je založeno na jednom testu a v tom je ještě u Xeonu vypnutý SMT (podrobnosti viz dokumenty na konci článku). Avšak pokud takto AMD vyhrává o značné desítky procent, lze čekat, že i se zapnutým SMT bude Xeon poražen.
Desktopové FX procesory již předvedly velmi dobrý výkon v šifrování a kompresi (což je předurčuje právě např. ke zpracování datových toků, zejména šifrovaných, dále pak i k databázovému nasazení). K regulérnosti výběru procesorů pro srovnání je třeba poté dodat, že nejvyšší Opteron bude stále o stovky dolarů levnější než srovnávaný Xeon. Tudíž, absolutního vrcholu (který tvoří ale jen mizivé procento obratu) AMD zřejmě nedosáhne, když ale nabízí srovnatelnou muziku za podstatně nižší cenu, má všechny šance výrazně rozšířit svoje působiště. Více jak dva miliony prodaných K10 Opteronů tomu jen nasvědčují a Bulldozery zde mají ještě lepší předpoklady. Ještě před oficiálním uvedením nových Opteronů na koncový trh započaly přednostní dodávky velkým partnerům jako Cray, kteří již odebrali přes 50 tisíc kusů. Jen Cray dodá 25 tisíc procesorů pro upgrade systému Jaguar na Titan. Další superpočítače založené na Interlagos procesorech jsou v plánu.
Ceny nových procesorů
Model | Počet jader | Základní frekvence | Turbo všech jader | Turbo maximální | TDP | Cena/ks (při odběru 1000 ks) (USD) |
4226 | 6 | 2,7 GHz |
2,9 GHz |
3,1 GHz |
95 W | 125 |
4228 HE | 6 | 2,8 GHz | 3,1 GHz |
3,6 GHz |
65 W | 255 |
4234 | 6 | 3,1 GHz |
3,3 GHz |
3,5 GHz |
95 W | 174 |
4238 | 6 | 3,3 GHz |
3,5 GHz |
3,7 GHz |
95 W | 255 |
4256 HE | 8 | 1,6 GHz |
1,9 GHz |
2,8 GHz |
35 W | 377 |
4274 HE | 8 | 2,5 GHz |
2,8 GHz |
3,5 GHz |
65 W | 377 |
4280 | 8 | 2,8 GHz |
3,1 GHz |
3,5 GHz |
95 W | 255 |
4284 | 8 | 3,0 GHz |
3,3 GHz |
3,7 GHz |
95 W | 316 |
6204 | 4 | 3,3 GHz |
- | - | 115 W | 455 |
6212 | 8 | 2,6 GHz |
2,9 GHz |
3,2 GHz |
115 W | 266 |
6220 | 8 | 3,0 GHz |
3,3 GHz |
3,6 GHz | 115 W | 523 |
6234 | 12 | 2,4 GHz |
2,7 GHz |
3,0 GHz |
115 W | 377 |
6238 | 12 | 2,6 GHz |
2,9 GHz |
3,2 GHz |
115 W | 455 |
6262 HE | 16 | 1,6 GHz |
2,1 GHz |
2,9 GHz |
85 W | 523 |
6272 | 16 | 2,1 GHz |
2,4 GHz |
3,0 GHz |
115 W | 523 |
6274 | 16 | 2,2 GHz |
2,5 GHz |
3,1 GHz |
115 W | 639 |
6276 | 16 | 2,3 GHz |
2,6 GHz |
3,2 GHz |
115 W | 788 |
6282 SE | 16 | 2,6 GHz |
3,0 GHz |
3,3 GHz |
140 W | 1019 |
Materiály
- Whitepaper (PDF)
- Prezentace k uvedení (PDF)
- SW Ecosystem (PDF)
- Obrázky (ve vysoké kvalitě jako odkazy ke stažení z mého webu)
Zdroj: AMD,
Anandtech, X-Bit labs