Diit.cz - Novinky a informace o hardware, software a internetu

Architektura Intel Larrabee

Po mnoha a mnoha měsících spekulací a nepotvrzených informací konečně sama společnost Intel poodhalila roušku tajemství kolem projektu Larrabee, od kterého si ona i IT svět jako takový, slibuje poměrně hodně. Co je tedy Larrabee zač, co od něho můžeme očekávat a jaké to za rok-dva po jeho uvedení na trh bude?
Intel čtyřjádro

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.

Architektura Intel Larrabee

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.

  Core 2 Duo „hypotetické“ Larrabee
# of CPU Cores 2 out of order 10 in-order
Instructions per Issue 4 per clock 2 per clock
VPU Lanes per Core 4-wide SSE 16-wide
L2 Cache Size 4MB 4MB
Single-Stream Throughput 4 per clock 2 per clock
Vector Throughput 8 per clock 160 per clock

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.

  Larrabee Core Pentium Core (P54C) Atom Core
Výrobní proces 45 nm 600 nm 45 nm
Multi-threading 4-way 1-way 2-way
Issue Width dual-issue
Délka pipline 5-stages (?) 5-stages 16-stages
Scalar Execution Resources 2×Integer ALUs (?)
1×FPU (?)
2×Integer ALUs
1×FPU
2×Integer ALUs
1×FPU
Vector Execution Resources 16-wide Vector ALU žádné 1×SIMD SSE
L1 Cache
(instrukční/datová)
32 kB/32 kB 8 kB/8 kB 32 kB/24 kB
L2 Cache 256 kB žádná (externě na desce až 2 048 kB, typicky 256/512 kB) 512 kB
ISA 64-bit x86
SSEn support(?)
Parallel/Graphics(?)
32-bit x86 64-bit x86
Full Merom ISA compatibility

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í.

Tagy: 

David Ježek

Dlouholetý zdejší redaktor (2005-2017), příznivec open-source rád píšící i o ne-IT tématech. Odpůrce sw patentů a omezování občanských svobod ve prospěch korporací. Fanoušek Asimova, Kinga, Feynmana, Sudka, 70mm filmu, sf/vf filmu, Fomapanu 400, starých dobrých her, 99% čokolády, indické kuchyně, domácího kváskového chleba a řady dalších věcí.

více článků, blogů a informací o autorovi

Diskuse ke článku Architektura Intel Larrabee

Čtvrtek, 14 Srpen 2008 - 14:52 | Ren1 | ...
Čtvrtek, 14 Srpen 2008 - 14:39 | Anonym | Proc myslis, ze si myslim, ze me kazdy chce...
Čtvrtek, 14 Srpen 2008 - 13:59 | Ren1 | weepy> Ale no tak..:-( Myslis, ze bys...
Středa, 13 Srpen 2008 - 19:10 | Anonym | Ren: Prostredky, kterych pouzivas, se nelisi od...
Středa, 13 Srpen 2008 - 13:19 | Ren1 | weepy> Hehe, zase ta neurcita cestina...
Středa, 13 Srpen 2008 - 13:17 | Ren1 | weepy> Tak pocitam, ze uz bylo po debate,...
Středa, 13 Srpen 2008 - 11:06 | Anonym | Vsimas si, ze ses timto vlozil sam do diskuse,...
Středa, 13 Srpen 2008 - 09:51 | Ren1 | weepy> Urcite nic, co bys sam davno...
Úterý, 12 Srpen 2008 - 14:58 | Anonym | Ren: no tak flame uz je sociologicky prostudovany...
Úterý, 12 Srpen 2008 - 14:44 | Ren1 | weepy, Milan M> Panove, vasi debatu jsem...

Zobrazit diskusi