Szerző: Bizó Dániel

2009. október 1. 17:09

Nem viccelt az NVIDIA: az Intel skalpjára hajt

Bejelentette következő generációs architektúráját az NVIDIA, mellyel látványos lépéseket tesz az általános célú processzorok irányába. A Fermi kódnévre hallgató fejlesztés a jelenlegi műszaki színvonalon elérhető legmagasabb számítási teljesítményre törekszik, megalkuvás nélkül.

Na persze

Mikor az AMD ATI Radeon 5800 generációjának rajtjakor az NVIDIA figyelemelterelő ellenrendezvényeket szervezett, méghozzá mindenféle termékbejelentés nélkül, kézenfekvő volt azzal a feltételezéssel élni, hogy a cég nem rendelkezik megfelelő válasszal. Igazán meglepő volt azonban, hogy ezt Igor Stanek regionális PR-menedzser kategorikusan nem is tagadta, sőt felvetette annak lehetőségét is, hogy az AMD grafikus chipje talán felülmúlja majd az NVIDIA következő generációját, de hangsúlyozta, bárhogyan is legyen, mindez nem igazán számít már.

Hogy miért? Mert az NVIDIA szerint a chipek jövője többé nem azon fog múlni, hogy a lehető legnagyobb grafikus teljesítmény adják le, hanem azon, hogy mennyire tudnak egyre inkább általános célú, rugalmasan használható processzorokká fejlődni. Olyan processzorokká melyeket a nagy számítási kapacitásra éhes mérnöki és tudományos (HPC) rendszerek, valamint a tömegtermékek, mint a PC-k és okostelefonok is egyaránt tudnak sokféle feladatra hasznosítani, természetesen más és más implementációban, szem előtt tartva a megcélzott eszközök fogyasztási és költségbeli kereteit.

Az NVIDIA nem most kezdett el beszélni erről az irányról, sőt azt, hogy komolyan gondolja a grafikus chipek általános alkalmazhatóságát, vagyis a GPGPU koncepcióját, lényegében bebizonyította a CUDA programozási környezet két és fél évvel ezelőtti bemutatásával, melyet tucatnyi HPC- és multimédiás alkalmazás aknáz ma már ki. Az azonban, hogy a vállalat már nyíltan felvállalja, hogy nem a 3D (raszterizációs) grafikus teljesítmény az elsődleges, és hogy erre jobban (túlságosan is) fókuszált az AMD, egy újabb szintre léptette elképzelését, pestiesen szólva: ez már meredek.

És tényleg

Mindez persze bárki számára tűnhet terelésnek, hiszen beszélni bármikor és bármennyit lehet, mely elfedheti a valóságot, például azt, hogy az NVIDIA egyszerűen nem versenyképes, és nagy gondok lehetnek a GT300 kódnéven ismert fejlesztésével. A Fermi, avagy helyesen GF100 architektúra létezése azonban minden kétséget kizárólag bebizonyítja azt, hogy az NVIDIA mennyire komolyan gondolja a GPGPU irányt, és hogy az elmúlt hónapokban új irányt vett kommunikációja mögött nem a tűzoltás áll, hanem egy évek óta tartó fejlesztés érett be.

\"\"

A Fermi célja, hogy áttörést érjen el a programozhatóság és a megcélzott HPC- és multimédiás területekre jellemző kódok futtatása terén. Mindezt részben az általános célú, modern mikroprocesszorok néhány kulcsfontosságú kód- és memóriavezérlési technikájának (például indirekt elágazásbecslés, kivételkezelés) átvételével éri el, másrészt pedig a cache-hierarchia és végrehajtó magok szervezésének egyszerűsítésével, valamint az egyes magok képességeinek drasztikus megerősítésével.

A Fermi a szélesebb körű alkalmazhatóság érdekében már támogatja az ECC memóriát is. Ha néhány pixel egy frissítésnél rosszul jelenik meg, semmi probléma, észre sem venni, egy pénzügyi vagy tudományos számításnál azonban gigantikus eltéréseket okozhat egy minimális hiba is. Az NVIDIA nem kevesebbet célzott meg, minthogy a jelenlegi GT200-hoz képest nyolcszorosára növelje a 64 bites lebegőpontos teljesítményt - ez 600 gigaflops nyers kapacitást jelentene, ami nagyjából tizenkétszerese a leggyorsabb Nehalem chipének, vagyis számítási erőforrásokban nem szűkölködik a Fermi. Igaz, ezen erőforrások kihasználtsága továbbra is a feladat párhuzamosíthatóságától és a kód minőségétől függ leginkább.

Egy extrém párhuzamosságú processzor

Ha szakítunk az NVIDIA terminológiájával, akkor a Fermire pillantva egy 16 magos processzor rajzolódik ki elénk, ahol a magok saját dedikált L1 utasítás- és adattárakkal és belső vezérléssel rendelkeznek, és egy közös L2 cache-re csatlakoznak. A magok ugyanakkor nem függetlenek teljesen, egy globális ütemező rejti el őket a külvilág előtt, így a szoftverek szempontjából továbbra sem lehet többmagos chipről beszélni, legalábbis olyan értelemben nem, ahogyan azt a többmagos processzoroknál megszoktuk.

\"\"

Az L1 cache immár koherenciát biztosít a magon belüli szálak és végrehajtóegységek közt, és tartalmát időről időre kiírja a mag az L2 térbe, hogy más magok és a rendszer számára is láthatóak legyenek az eredmények - ez az úgynevezett félkoherencia, mivel nincs teljes védelem az ellen, hogy egyetlen címre más és más eredményeket írjon vissza kettő vagy több mag, amit így a programozónak vagy a fejlesztőeszközöknek kell felügyelnie, hogy ne történhessen meg.

Mindez gyökeres eltérést jelez az elődhöz képest, ahol 30 mag hármasával osztozott az L1 tárakon, melyek ráadásul semmilyen szintű koherenciát nem biztosítottak, és eredetileg textúrázásra termettek. A különbségek azonban csak most kezdődnek. A globális ütemező, mely kiosztja a magoknak a feladatokat, immár 16 különböző programszelet/szál (az NVIDIA terminológiájában kernel) állapotát tudja nyilvántartani, és kezelni a párhuzamos végrehajtásukat, szemben a korábbi eggyel, ami megnöveli a magok kihasználtságát, és hatékonyabbá teszi a chipet kisebb kernelek fogadására is.

Mindezt elősegítendő az ütemező a korábbinál tízszer gyorsabban tud kontextust váltani, igaz, ez számítástechnikai dimenzióban még mindig hosszadalmas, hiszen 25 ezer nanoszekundumot vesz igénybe, ami egy 1 gigahertzes áramkör esetében 25 ezer ciklus elpazarlását jelenti - összevetésképpen egy távoli memória elérése tipikusan legfeljebb néhány száz ciklus.

\"\"Masszív erőforrások

Ha belépünk az egyes magokba, hatalmas különbségeket látunk az elődökhöz képest. Az egyes magokban, vagyis streaming multiprocesszorokban, ahogyan az NVIDIA nevezi őket, a számítási erőforrások megnégyszereződtek, miután két futószalagon egyenként 16 végrehajtóegység (CUDA Core) található, mindegyikben egy 32 bites egészpontos (ALU) és egy 32 bites lebegőpontos (FPU) egységgel, melyekbe egyszerre az egyikhez lehet utasítást betölteni, mivel közös porton találhatóak.

Egy mag tehát összesen 64 végrehajtóegységgel rendelkezik. A 64 bites lebegőpontos számításokkor mindkét futószalag párhuzamosan dolgozik, és egy támogató logika segítségével összeolvasztják az eredményeket. Az NVIDIA ezzel megoldotta, hogy nem jelentkezik extra lassulás 64 bites műveletek végrehajtásakor, hanem a kétszeres szélességnek megfelelően pontosan feleannyi a sebesség mint a 32 bites feldolgozás esetén, megszüntetve ezzel a processzorokkal szembeni relatív hátrányát. A chip már teljesen szabványos, IEEE 754-2008 műveleteket végez a pontosság érdekében. A magok a kernel darabkáit blokkokban (thread blocks) fogadják, a blokkokat pedig tovább szeleteli és csoportosítja a mag utasításláncokká (warp), és ezeket a dekódolt láncokat ütemezi be a futószalagok számára.

Ha egy mag befejezi egy adott kernel végrehajtását, az eredményeket visszaírja az L1 adattárból az L2 cache-be, mely 6 darab 128 kilobájtos bankból épül fel. Az L2 cache a chip globális memóriaműveletek vezérlésére hivatott, és szinkronban tartja a magokat is, valamint az alkalmazás globális állapotát, ahogyan a végrehajtás szinkronizációját is támogatja - mindez persze rendkívül komplex feladat, ami a politikák és algoritmusok alapos tervezését és megvalósítását követeli meg. A chip immár 40 bites, lapos fizikai és virtuális memória címtartományt alkalmaz a globális címzés érdekében, és TLB-t a kettő közötti átjáráshoz, ami szintén alapvető változás a rugalmasság felé, és egy újabb elem, mely hasonlatossá teszi az általános célú processzorokhoz.

A külső memóriát a Fermi immár nem GDDR3- hanem GDDR5-vezérlőkön éri el, ami sokkal hatékonyabbá teszi a magasabb sávszélességek elérését. A hat darab, egyenként kétcsatornás vezérlő összesen 384 bit szélességgel fér hozzá a memóriához, így elméletileg elérhető a 230,4 GB/s nyers sávszélesség 1200 megahertzes memória órajel (4,8 gigatranszfer/s) mellett. A memória sebessége vélhetően attól is függ majd, hogy milyen piacra szánja majd az adott terméket az NVIDIA, legnagyobb sebességgel vélhetően a játékra szánt videokártyák rendelkeznek majd.

Programozás

A programozhatósághoz azonban szoftveres eszközökre is szükség van, és az NVIDIA itt is aktívan dolgozik azon, hogy egyre több szoftverfejlesztőhöz érjen el. Mire piacra kerülnek az első Fermi termékek (melyekről egyelőre semmit nem beszélt az NVIDIA), addigra a CUDA környezetben már C nyelven is lehet az alkalmazásokat írni a módosított C, Java, Python és Fortran mellett. Ezzel párhuzamosan a Visaul Studióval is integrált fejlesztői környezetet is kifejlesztett a cég Nexus néven, mely képes heterogén, vagyis az x86 és grafikus processzorokon egyszerre futó alkalmazásokat létrehozni. Az NVIDIA természetesen a CUDA-t támogatja elsősorban, de a Fermi DirectX 11-es API fogadására felkészített architektúra, ahogyan az OpenCL-t is támogatja.

Hogy a Fermi termék formájában mikor jelenik meg, egyelőre nem tudni, ezzel kapcsolatban az NVIDIA semmit nem közölt, Stanek ígérete szerint még év vége előtt megvásárolhatóak lesznek az első változatok. Ez azt sugallja, hogy szélesebb körben csak jövő év első felében indul meg a Fermire épülő termékek gyártása és terjesztése.

Zárszó, kitekintés

A fejlesztések eredményeként a Fermi elődeinél sokkal hatékonyabb, és többszörös teljesítményű lehet az olyan masszívan párhuzamos természetű számítási feladatokban, mint amilyen például a valósidejű adatvizualizáció és képmanipuláció, videoszerkesztés, ray-tracing, áramlástani szimulációk, statisztikai elemzések, vagyis HPC és PC-felhasználásra egyaránt alkalmasabbá válhat. Az NVIDIA közzététele itt olvasható.

Mivel termékről nem esett szó, és a szilíciumról is lényegében csak annyit tudni, hogy a TSMC 40 nanométeres eljárásán készül, és 3 milliárd tranzisztorból áll, ezért az órajelekről és a leadott teljesítményről sem lehet pontos képünk, főleg nem a grafikus teljesítményéről, mivel az architektúra ezen aspektusáról nem beszélt a cég. Minden jel arra utal azonban, hogy az NVIDIA megpróbált megalkotni egy csúcsteljesítményű processzort, mely gyártásba kerülésekor a világ egyik, ha nem a legintegráltabb és legnagyobb chipje lesz, mely eddig tömegtermelésbe került, és melynek technológiája később majd a piac alsóbb szegmensei számára is lecsorog.

A Fermi lélektani jelentősége hatalmas, ezt követően ugyanis az NVIDIA törekvését, hogy rövid időn belül átvegye az uralmat a PC-k lelkében, elhomályosítva az x86-os processzorok jelentőségét, nem lehet nem komolyan venni. Természetesen szó nincs arról, hogy a belátható időn belül ne volna szükség x86-os chipekre, hiszen mindezt megköveteli a PC-világ kompatibilitása, ugyanakkor a hangsúly a GPGPU, mint koprocesszor felé tolódhat el, ahogyan egyre több feladatot képes átvenni a hagyományos processzoroktól, és hatékonyabban elvégezni azt.

Mindez azt jelentené a piac több mint 80 százalékát uraló Intel számára, hogy a piac relatíve egyre kevesebbet költene x86-os chipekre, és egyre többet az újfajta koprocesszorokra, melyet az NVIDIA szállítana. Az NVIDIA szerint ennek a trendnek egyik előfutára az Atom-Ion páros, melynél egy 40 dolláros Intel processzor is elegendő ahhoz, hogy Windows 7 Aero folyékony megjelenítésére, 1080p videók vagy World of Warcraftot és Sims lejátszására alkalmas rendszert építsünk, nem szükséges 100-200 dolláros processzorokat megfizetnünk hozzá. Gyakorlatilag egy \"hétköznapi\" felhasználás előtt az utolsó akadály a nagy felbontású flash videók és animációk jelentik, hamarosan azonban ez is megoldódik, ahogyan egy következő Flash Player frissítés már képes lesz a GPU-kon gyorsítani azt is, így a Youtube HD-t is élvezhetjük hamarosan netbookokon is.

Úgy tűnik, ez csak a kezdet, az NVIDIA Fermi hatalmas előrelépést képvisel a GPGPU irányban, hardveres és szoftveres oldalról egyaránt, és idővel, valószínűleg nagyjából egyéves távon az architektúra leszivárog a notebookok területére is. Az jelenlegi ismeretek szerint az Intel ez kétféle stratégiai kezdeményezéssel válaszol: az ultrahordozható notebookok és olcsó gépek terén igyekszik minél szorosabban a processzorhoz integrálni a grafikus magot és a chipsetet, másrészt pedig gőzerővel dolgozik a Larrabee-n, mely az Intel diszkrét, masszívan párhuzamos architektúrájú vizualizációs és HPC-chipje, avagy a saját GPGPU-ja.

A jövő év elején megjelenő Westmere generáció már a processzorral közös tokon belülre emeli a grafikus magot, és ez az új rendszerarchitektúra később a netbookok terén is megjelenik, így nagyjából másfél-két éven belül az egész ultramobil palettát lefedi majd. Mindez azt jelenti, hogy az NVIDIA csak extra költségként tud megjelenni ezekben a PC-kben, ugyanis nincs lehetőség arra, hogy az Intel helyett NVIDIA integrált chipsetet építsen a gépbe a gyártó - mindenképpen meg kell fizetni az Intel grafikus chipet, így drasztikusan csökken az NVIDIA piaca. Ésszerű lépés volna saját x86-kompatibilis platformmal megjelennie a cégnek, erről azonban mélyen hallgat.

Az Intel másik eszköze a GPGPU nagyteljesítményt igénylő felhasználási területeken történő védekezést, avagy ellentámadást célozza. Ez a Larrabee projekt, mely lényegében az Intel első próbálkozása, hogy egy diszkrét, kifejezetten csúcsteljesítményű grafikus chipet alkosson. A Larrabee-t az Intel néhány hete már demózta az Intel Developer Forumon, ahol a Quake Wars egy interaktív ray-tracing változatát futtatta, demonstrálva képességeit.

Az eddig nyilvánosságra került információk alapján a Larrabee erőteljesen vektorizált (512 bit széles végrehajtás, Larrabee New Instructions), egyszerűsített x86 magokból épül fel, melyeket körbusz köt össze, és a grafikus alkalmazhatóság érdekében extra textúrázó és raszterizáló egységeket is kap. A Larrabee architektúrája idővel a processzorral integrált megoldásokban is megjelenik majd, közölte az Intel. Hogy mire lesz képes, és hogyan állja meg a helyét például a Fermivel szemben, egyelőre még csak tippelni sem lehet, főként mivel egyik végleges specifikációit sem ismerni, ráadásul nincsenek olyan kiforrott kódok, melyeket sztenderdként elfogadva megfelelő összevetési alapot adnának - 2010 izgalmas évnek ígérkezik a számítástechnika történetében.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról