Architektura Intel Larrabee
Kapitoly článků
První, asi nejdůležitější informací, kterou vám vůbec můžeme sdělit, je toto: Larrabee není GPU. Není to klasický grafický procesor se stovkami a stovkami shader jednotek. Je to víceméně klasické CPU vycházející z Pentium architektury, ale samozřejmě s několika radikálními modifikacemi v duchu doby. Je to čip s mnoha procesorovými jádry optimalizovanými pro masivně paralelní výpočty plně vyhovující IEEE normám pro single i double precision výpočty.
V čem je tedy háček a kouzlo toho, že Larrabee bylo/je považováno za opětovný návrat Intelu mezi výkonné grafiky? Inu, jeho procesorová jádra jsou zcela univerzální, takže díky software se mohou klidně tvářit jako výpočetní jednotky GPU a renderovat grafiku takovým způsobem, jaký známe z Radeonů či GeForce. Vše je záležitostí ovladačů, hardware je jak pro klasické počítání, tak pro počítání grafiky připraven, nemá žádné potíže s DirectX ani OpenGL. Nejedná se samozřejmě o žádnou emulaci GPU, vše beží nativně. Vývojáři pak nejsou nijak limitování rozhraními DirectX či OpenGL. Larrabee může silou svého výkonu počítat i čistě softwarové renderovací nástroje, hypoteticky ať již byste si chtěli zahrát některou starou hru z pre-3Dfx dob, nebo třeba provětrat renderer v Blenderu nebo Pov-ray, Larrabee toto v principu dokáže, vše je jen o napsání patřičných knihoven.
Core 2 Duo (2007) versus Pentium (1993)
Pokud se vám zdá divné, proč Larrabee staví na jádrech procesoru z doby, kdy možná někteří z vás byli ještě„na houbách“, je tu odpověď v podobě hypotetického experimentu ve srovnání stávající architektury Core 2 Duo s Larrabee.
Připomeňme, že Pentium přišlo na trh zpočátku vyráběné 800nm, později 600nm procesem, zatímco Core 2 Duo dnes těží z 45nm procesu. Vezměme tedy Core 2 Duo (na blíže neurčené frekvenci) a podívejme se, kolik Pentium jader vměstnáme do stejné velikosti křemíku. Dostaneme se k číslici 10.
|
Tabulka porovnává teoretické schopnosti obou řešení v počtu vykonatelných operací, nikoli celkový výkon. Z pohledu na tabulku je jasné, že někde Pentium řešení ztrácí, ale v oblasti vektorových operací naopak výrazně získává, a to rovnou dvacetinásobně při stejné velikosti čipu a spotřebě.
Výpočetní jádro Larrabee
Každé výpočetní jádro v Larrabee spadá do dual-issue in-order architektury vycházející z originálního Pentia. To je však modifikováno, Intel přidal podporu 64bitových operací a aktualizoval i samotnou x86 instrukční sadu, přidal větší vyrovnávací paměti, 4-way SMT Hyper-threading a 16-wide vektorovou ALU.
Na vývoji Larrabee zpočátku také pracoval tým, který stojí za architekturou Intel Atom, nicméně mezi oběma produkty jsou rozdíly. Atom je primárně cílen na co nejvyšší výkon v jednom výpočetním vláknu s co nejdelší výpočetní pipeline a velkou L2 cache, Larrabee naopak jde cestou co nejvyššího paralelismu.
|
Multi-threading v podání Larrabee umí čtyři výpočetní vlákna najednou (SMT = Simultaneous Multi-Threading). Vyrovnávací pamětí se spíše podobá Atomu, to asi nepřekvapí. Atom má 24 kB datové cache jako důsledek potřeby srazit napájení na co nejnižší úroveň, což je věc, kterou Larrabee zas tak moc řešit nemusí, jeho cílení na trhu je někdě úplně jinde než v ultramobilním segmentu ;-).
Sluší se připomenout, že v dobách minulých nebyla L2 cache součástí procesoru, ale byla na základní desce formou několika čipů (nebo na modulu). Typicky jí bylo 256 nebo 512 kB, pozdější Super Socket 7 desky mívaly 1 MB a dalo se narazit i na desky s 2 MB. Teprve se Slot-1 procesory se L2 přesunula na CPU (i když nejdřív opět formou dodatečných čipů jen na procesorový modul a navíc neběžela na plné frekvenci procesoru, ale to je jiná pohádka).
256 kB je pak velikost, kterou má k dispozici každé jádro v Larrabee čipu. Larrabee dokáže nejlépe težit právě z tohoto množství. Méně by bylo nedostačující, více již zbytečně mnoho s ohledem na rozměry čipu a spotřebu. Standardní OpenGL/DirectX renderer Larrabee je tile-based (takto renderovalo PowerVR Kyro II, hodně dobrá metoda), přičemž scénu si rozděluje na 64×64, resp. 128×128 s 32bit barvami a 32bit Z, s čímž se vejde do 128 kB. Zbývajících 128 kB je pak k dispozici na „kešování“ dalších dat. Takto to dělají všechna Larrabee jádra.
Velkým rozdílem Larrabee oproti Pentiu a Atomu jsou jednotky vektorových výpočtů. Originální Pentium nemělo žádné SIMD instrukce (ty přišly až se SSE, resp. 3D Now! u AMD), Atom dostal do vínku právě SSE a Larrabee je podstatně dále, nese v sobě 16-wide vektorovou ALU (aritmeticko logická jednotka). Ta umí pracovat současně s šestnácti 32bitovými operacemi v plovoucí desetinné čárce, což ji činí daleko „širší“ než výše uvedená řešení. S ohledem na předpokládaná nasazení Larrabee v praxi je to jasná volba a jedna z klíčových částí architektury.
Dále Larrabee umí 64bitové x86 a obsahuje hardwarové prefetch jednotky. Jak se ty liší oproti Atomu, to těžko říci, odhadovat se ale dá, že jsou uzpůsobeny právě pro paralelní nasazení.