A cellaprocesszor bemutatása

Matthew Scarpino alapvető szinten elmagyarázza, mi a cellaprocesszor és hogyan működik.

2007 szeptemberében a Guinness Rekordok Könyve bejelentette a világ legerősebb elosztott számítási rendszerének új rekordtartóját. Ez nem egy hagyományos, nagy teljesítményű számítógépekből álló klaszter volt, hanem egy világméretű hálózat, amely hagyományos PC-kből és PlayStation 3 konzolokból (PS3) állt. A Folding@Home nevű elosztott számítási rendszer a fehérjék hajtogatását szimulálja, hogy elemezze, hogyan keletkeznek a betegségek.

A PS3-ak csatlakozása előtt a hálózat mindössze 0,25 petaflops (250 000 000 000 000 lebegőpontos művelet másodpercenként) teljesítményre volt képes. Amikor azonban a Folding@Home kliens elkezdett futni a PS3-akon, a számítási sebesség hat hónap alatt megnégyszereződött, így a Folding@Home lett az első olyan elosztott számítási rendszer, amely átlépte az 1 petaflopos határt.

Az 1.1. táblázat tisztázza a PS3-ak jelentőségét a Folding@Home hálózatban. Közel sincs annyi konzol, mint PC, de több számítási teljesítményt biztosítanak, mint a Windows/Mac/Linux számítógépek együttvéve.

Táblázat 1.1. Folding@Home teljesítménystatisztikák (Felvétel április 16-án készült,

OS Type

Current Pflops

Active CPUs

.

Total CPUs

Windows

190,892

1,986,517

Mac OS X/PowerPC

8,478

114,326

Mac OS X/Intel

7,428

45,480

Linux

27,796

286,172

PlayStation 3

40,880

492,491

A PS3 óriási számítási teljesítményét a Cell Broadband Engine, közismert nevén Cell processzor vagy csak Cell biztosítja. Az STI Alliance (Sony, Toshiba és IBM) által kifejlesztett Cell az IBM PowerPC architektúrájának általános célú képességeit ötvözi a legigényesebb játékosok és grafikai fejlesztők igényeit is kielégítő számfejtéssel.

Mit jelent ez az Ön számára? Azt jelenti, hogy mindkét világból a legjobbat élvezheti: a számítási rugalmasságot és a teljesítményt. Egyrészt telepíthet egy elterjedt operációs rendszert, például Linuxot a Cellre, és olyan kényelmesen futtathatja az alkalmazásokat, mintha azok egy PC-n futnának. Másrészt számításigényes algoritmusokat valósíthat meg olyan sebességgel, amely messze meghaladja a hagyományos CPU-kat, és még a szuperszámítógépekkel is felveheti a versenyt.1 Ami még hihetetlenebb, hogy mindkettőt egyszerre is megteheti.

A Cell mindezt a chipen belüli munkamegosztás teszi lehetővé: Az operációs rendszer egyetlen PowerPC processzorelemen (PPE) fut, a nagy sebességű számításokat pedig egy sor szinergikus processzorelem (SPE) végzi. Ezt a kétféle magot kifejezetten az adott feladatra tervezték, és mindegyik más-más utasításkészletet támogat.

Ezek a processzorelemek külön-külön is könnyen érthetők és egyszerűen programozhatók. A nehéz rész a működésük összehangolása, hogy erősségeiket a lehető legjobban kihasználhassák. Ehhez a programozónak ismernie kell a Cell-specifikus programozási parancsokat, és alapos ismeretekkel kell rendelkeznie az eszköz architektúrájáról: a feldolgozó elemekről, az összeköttetésekről és a memóriaszerkezetről.

Ez a könyv célja, hogy ezeket a témákat kellő mélységben tárgyalja ahhoz, hogy olyan alkalmazásokat készíthessen, amelyek maximálisan kihasználják a Cell képességeit. A feldolgozás nagy része elmélyül a processzor architektúrájában, de csak azokat az aspektusokat, amelyeket kódban használhat és konfigurálhat. Néhány téma nyomasztónak tűnhet azok számára, akik nem szoktak számítógépes építészként gondolkodni, de ne aggódjon: Mindent megmagyarázunk, amint szükségessé válik. A könyv célja pedig mindig a szoftver.

Ez a fejezet célja, hogy alapszinten elmagyarázza, mi a Cell processzor, és hogyan működik. A tárgyalás a Cell hátterének leírásával kezdődik, beleértve a Cell történetét és képességeit, majd a processzor alapvető architektúrájának bemutatásával folytatódik.

1.1 A Cell processzor háttere

A Cell annyira különbözik elődeitől, hogy hasznos tudni arról, hogy miért jött létre, és milyen vállalati erők alakították a tervezését. Ha látod, hogy az STI Alliance miért fordított annyi időt és energiát a Cellre, akkor jobban fogod érteni, miért érdemes megismerned.

A Cell története

A Sony 1999-ben fejezte be a PlayStation 2 fejlesztését, és a következő évben már ki is adta. A hatalmas siker ellenére Nobuyuki Idei akkori vezérigazgató ideges volt: hogyan tudná a Sony következő generációs konzolja felülmúlni a PS2-t? Mit tudnának még elérni? Úgy döntött, hogy a válasz kettős: A következő terméknek szélessávú multimédiás képességeket kellett integrálnia, és drámai fejlesztéseket kellett nyújtania a grafikus feldolgozás terén. Ezek a magasztos célok teljesen új hardvert igényeltek, és ennek megvalósítása érdekében egyeztetett az IBM akkori vezérigazgatójával, Louis Gerstnerrel. Együtt alakították ki azt a koncepciót, amely végül a Cell Processzorhoz vezetett.

A Sony Computer Entertainment vezetője, Ken Kutaragi konkretizálta a hardverkövetelményeket, és olyan igényeket támasztott, amelyek messze túlmutattak a technika jelenlegi szintjén. Mivel minden egyes processzort egy nagyobb, hálózatba kapcsolt egység építőelemeként képzelte el, Ken Kutaragi az eszközt Cellnek nevezte el. Nobuyuki-san eredeti szándékának megfelelően a projekt neve Cell Broadband Engine (CBE) lett. Ez maradt a Cell processzor hivatalos neve.

A Toshiba érdeklődést mutatott a Cell fogyasztói elektronikában való felhasználása iránt, és 2001-ben a Sony, a Toshiba és az IBM bejelentette az STI Alliance megalakulását. Kijelentett szándékuk egy úttörő processzorarchitektúra kutatása, fejlesztése és gyártása volt. Megalakították az STI Design Center-t a texasi Austinban, hogy a CBE követelményeit megvalósítsák.

A Cell vezető építészeként Jim Kahle látta, hogy a CBE követelményei nem teljesíthetők egy hagyományos egymagos processzorral – a teljesítményigény túl nagy lenne. Ehelyett egy energiatakarékosabb kialakítást választott, amely több feldolgozóegységet épített egyetlen chipbe. A végső architektúra kilenc magból állt: egy központi feldolgozó elem és nyolc dedikált elem a nagysebességű számításokhoz.

Az STI Design Center e cikk írásakor több mint 400 mérnökre nőtt. Dr. H. Peter Hofstee, a Cell egyik alapító tervezője az SPE vezető tudósi és főépítészi pozícióját tölti be. Egy nemrégiben tartott előadásában felsorolta a Cell tervezését vezérlő fő célokat:

  1. Kiemelkedő teljesítmény a játék- és multimédiás alkalmazásokban
  2. Real-time responsiveness to the user and the network
  3. Alkalmazhatóság a platformok széles skáláján

2004-ben az IBM East Fishkill-i félvezetőgyártó üzemében elkészült az első Cell prototípus. Az STI mérnökei Linuxot telepítettek, és a processzort az általánosan megadott 3-4 GHz-es tartományon túli sebességgel tesztelték. A prototípus megfelelt. A következő évben a Sony és az IBM lázasan dolgozott az eszköznek a Sony következő generációs konzoljába való integrálásán, és a várakozó játékosok a 2005-ös Electronic Entertainment Expo (E3) kiállításon pillanthatták meg először a PlayStation 3-at.

2006 novemberében jelent meg a PS3 teljes kereskedelmi forgalomba kerülése, és a hosszú sorok és az alig beszámítható fogyasztók történetei még évekig szórakoztatják majd a kiskereskedelmi személyzetet. Az új konzol a nagy teljesítményű Cell processzoros agy mellett akár 1080p felbontást és Blu-ray meghajtót is kínált a nagyfelbontású videókhoz.

Az IBM még ugyanebben az évben kiadta az első CBE szoftverfejlesztő készletet (SDK), hogy a fejlesztők alkalmazásokat készíthessenek a Cellhez. Az SDK mindkét típusú feldolgozóelemhez tartalmaz fordítóprogramokat, egy kombinált szimulátort/debuggert, számos kódkönyvtárat és egy Eclipse-alapú fejlesztőkörnyezetet. E könyv nagy része az SDK-val foglalkozik, és azzal, hogyan használhatja azt alkalmazások készítéséhez.

2008 közepén a Los Alamos-i Nemzeti Laboratóriumban tesztelték az első Cell-alapú szuperszámítógépet, az IBM Roadrunner nevű gépet. A 12 960 Cell processzort és 12 960 Opteront tartalmazó Roadrunner 1,026 petaflops feldolgozási sebességet ért el, és a TOP500-as listán szereplő szuperszámítógépek közül a leggyorsabb lett. Sebessége több mint kétszerese a második helyen álló szuperszámítógép, a BlueGene/L 0,478 petaflops sebességének.

Potential of the Cell Processor for Scientific Computing

2005-ben a Lawrence Berkeley National Laboratory tanulmányozta a Cell számítási teljesítményét, és megállapításait a The Potential of the Cell Processor for Scientific Computing című jelentésben rögzítette. Számos különböző algoritmust szimuláltak, és összehasonlították a Cell feldolgozási sebességét a hasonló processzorokéval: az AMD Opteronéval, az Intel Itanium2-ével és a Cray X1E-ével. Az 1.2. táblázat táblázatba foglalták eredményeiket.

1.2. táblázat. A Lawrence Berkeley National Laboratory tanulmányának eredményei (minden érték Gflops/s-ban)

Algoritmus

Cella Processzor

Cray X1E

AMD Opteron

Intel Itanium2

Sűrű mátrixszorzás (egyszeres pontosság)

Sűrű. Mátrix multiply (double precision)

Symmetric sparse matrix vektor szorzás (egyszeres pontosság)1

Szimmetrikus mátrix. ritka mátrix vektor szorzás (dupla pontosság)1

nem szimmetrikus. Ritkamátrix vektor szorzása (egyszeres pontosság)1

Nonsymmetric sparse matrix vector multiply (double precision)1

2-D gyors Fourier-transzformáció (egyszeres pontosság)2

2-D gyors Fourier-transzformáció (kettős pontosság)2

Két dolgot kell szem előtt tartani. Először is, az eredmények a számítási sebességre vonatkoznak milliárd flopban (lebegőpontos műveletek másodpercenként), nem pedig az algoritmus végrehajtásához szükséges időre. Másodszor, mivel az első generációs Cell szorzói egyszeres pontosságúak, az első generációs Cell sokkal jobban teljesít egyszeres pontosságú értékekkel, mint kettős pontosságú értékekkel. A második generációs Cell azonban biztosítja a dupla pontosságú értékek hardveres szorzását.

A jelfeldolgozás és a számítási matematika iránt érdeklődő mérnök számára (mint amilyen én vagyok) az eredmények meghökkentőek. A tanulmány igazolja a felháborító marketing állításokat: A Cell valóban szuperszámítógép-szerű képességeket biztosít egy hagyományos CPU közel azonos költséggel és energiával (kb. 50-60 W).

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.