Hoofdcategorieën
Device Settings

Larrabee: op het kruispunt van gpu en cpu

Door Wouter Tinus, donderdag 14 augustus 2008 11:40, views: 67.424

Pimp my Pentium

Om Larrabee vanuit technisch oogpunt te bestuderen beginnen we bij de core. Intel zegt dat deze is gebaseerd op de originele Pentium. Dat mag tot op zekere hoogte dan wel waar zijn, maar van de andere kant is het ook misleidend. Er zijn behoorlijk wat toeters en bellen toegevoegd die zelfs in Nehalem ontbreken.
Pentium 166MHz with MMX
Larrabee is net als de Pentium een in-order ontwerp dat maximaal twee instructies tegelijk kan uitvoeren. Maar hetzelfde geldt voor Atom, die door Intel nooit vergeleken is met een architectuur uit 1993. Gespeculeerd wordt daarom dat Larrabee net als de Pentium een korte pipeline heeft. De Pentium had namelijk maar 5 stappen, terwijl Atom er 16 heeft. Hoe lang de pipeline van Larrabee precies is, wil Intel op dit moment echter nog niet kwijt.

Hoe dan ook is de core flink op de schop genomen. De Pentium is nog nooit kleiner gebakken dan 0,25µm en moest dus maar liefst vijf generaties gekrompen worden om de 45nm te bereiken. Daarnaast is ondersteuning voor 64bit-instructies en hyperthreading met vier threads toegevoegd . Voeg daar specifieke nieuwe eenheden en instructies aan toe voor grafische toepassingen en het ontwerp is van dichterbij nauwelijks meer herkenbaar.

Het belangrijkste punt is echter dat het een kleine en hele simpele core is. Tijdens het ontwerp heeft men becijferd dat er binnen het transistorbudget en het tdp van een Core 2 Duo maar liefst tien Larrabee-achtige cores passen, die samen veertig keer zoveel floating point-werk per kloktik kunnen verzetten.

* x86-uitbreidingen

Zoals gezegd is de Larrabee-core eigenlijk geen familie meer van de Pentium te noemen. Een van de meest in het oog springende toevoegingen is een 512bit brede vectoreenheid die op 16 waarden tegelijk kan kauwen. Dat is vier keer zoveel als een normale core van Intel of AMD op dit moment aan kan.

De vectoreenheid heeft ook een aantal slimme features die niet terug te vinden zijn in gewone x86-chips. Zo is het mogelijk om delen van de uitvoer te maskeren. Daarmee kan de hardware bijvoorbeeld bij een if-else constructie beide mogelijke paden tegelijk bewandelen, om halverwege te besluiten welke aan het einde zal worden doorgelaten. Samen met wat extra hardware voor het converteren en herschikken van data maakt dit de vectoreenheid een stuk waardevoller dan een standaard sse-implementatie.

Larrabee architectuur
Links: de hele Larrabee-core | Rechts: ingezoomd op de vectoreenheid

Een tweede grote verandering is het toevoegen van instructies met drie parameters. De belangrijkste operatie die hierdoor mogelijk wordt is fmac. Zoals de naam al zegt is dat een instructie om een vermenigvuldiging en een optelling in een keer uit te voeren. Dit is een populaire instructie voor grafisch rekenwerk die het aantal gigaflops effectief kan verdubbelen. De fmac is wel aanwezig in Itanium en de Power-architectuur van IBM, maar binnen de x86-wereld heeft Larrabee met deze toevoeging de primeur.

Nog een innovatie die uniek is voor een x86-chip is de implementatie van gather en scatter. Deze instructies maken het makkelijk om te werken met vectoren van waarden die niet vooraf netjes naast elkaar in het geheugen zijn gezet. Een programmeur die een vector wil vullen kan hiermee een lijst van 16 adressen samenstellen en met een instructie alle data bij elkaar sprokkelen. Op dezelfde manier kan hij met een instructie alle delen van een vector laten wegschrijven naar verschillende adressen.

Gather scatter illustratie
De Larrabee-core heeft 64KB L1-cache en 256KB L2-cache tot zijn beschikking, wat voor het eerst beheersbaar is gemaakt vanuit software. Het is bijvoorbeeld mogelijk om de prefetchers aan te sturen, data rechtstreeks naar het gewenste niveau te laden én om het er weer uit te schoppen. Wanneer de programmeur weet dat hij eenmalig een groot blok moet doorlopen, zoals een texture, kan hij er voor zorgen dat deze niet in de cache wordt opgeslagen, zodat de overige gegevens die later nog wel nodig zijn, snel toegankelijk blijven.

Belangrijk om te weten is dat Larrabee garandeert dat de caches altijd synchroon zijn. Mensen die gewend zijn om met x86 te werken zullen niets anders verwachten, maar bij een Geforce of een Cell kan de hardware dit niet afdwingen, waarmee het als oefening aan de programmeur wordt overgelaten om ervoor te zorgen dat er niets mis gaat tijdens de interactie tussen verschillende threads.

Tot slot zijn er nog enkele specifieke instructies toegevoegd, zoals bit count en bit scan, die specifieke delen van het renderen enkele procenten sneller maken. Ondertussen is hopelijk wel duidelijk geworden dat Larrabee mijlenver van de Pentium staat, ondanks de overeenkomsten op hoog niveau.

Volgende pagina (Larrabee - 3/5)


Inhoudsopgave

VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011