Introduktion av cellprocessorn

Matthew Scarpino förklarar på en grundläggande nivå vad cellprocessorn är och hur den fungerar.

I september 2007 tillkännagav Guinness Book of World Records den nya rekordhållaren för världens mest kraftfulla distribuerade datorsystem. Det var inte ett traditionellt kluster av högpresterande datorer, utan ett världsomspännande nätverk bestående av vanliga datorer och PlayStation 3-konsoler (PS3). Detta distribuerade datorsystem, som kallas Folding@Home, simulerar proteinveckning för att analysera hur sjukdomar uppstår.

Innan PS3-datorerna anslöt sig till nätverket klarade nätverket endast 0,25 petaflops (250 000 000 000 000 000 000 000 flyttalsoperationer per sekund). Men när Folding@Home-klienten började köras på PS3:erna fyrdubblades beräkningshastigheten på sex månader, vilket gjorde Folding@Home till det första distribuerade beräkningssystemet som passerade 1 petaflop.

Tabell 1.1 klargör betydelsen av PS3:erna i Folding@Home-nätverket. Det finns inte alls lika många konsoler som datorer, men de ger mer beräkningskraft än Windows/Mac/Linux-datorerna tillsammans.

Tabell 1.1. Statistik över Folding@Home-prestanda (inspelad den 16 april, 2008)

OS Type

Current Pflops

Active CPUs

Total CPU:er

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

PS3:s enorma beräkningskraft tillhandahålls av Cell Broadband Engine, vanligen kallad Cell-processorn eller bara Cell. Cell har utvecklats av STI Alliance (Sony, Toshiba och IBM) och kombinerar den allmänna förmågan hos IBM:s PowerPC-arkitektur med tillräckligt mycket sifferkapacitet för att tillfredsställa även de mest krävande spelarna och grafikutvecklarna.

Vad betyder det här för dig? Det betyder att du kan få det bästa av två världar: flexibilitet och kraft i beräkningen. Å ena sidan kan du installera ett vanligt operativsystem, t.ex. Linux, på Cell och köra program lika smidigt som om de kördes på en dator. Å andra sidan kan du genomföra beräkningsintensiva algoritmer med hastigheter som vida överstiger vanliga CPU:er och till och med konkurrerar med superdatorer.1 Ännu mer otroligt är att du kan göra båda sakerna samtidigt.

Cellen gör detta möjligt genom en arbetsfördelning på chipet: Operativsystemet körs på ett enda PowerPC Processor Element (PPE) och höghastighetsberäkningen utförs av en serie Synergistic Processor Elements (SPE). Dessa två typer av kärnor är särskilt utformade för sina uppgifter, och var och en har stöd för en annan uppsättning instruktioner.

Avdelat sett är dessa bearbetningselement lätta att förstå och okomplicerade att programmera. Det svåra är att samordna deras funktion för att dra full nytta av deras styrkor. För att åstadkomma detta måste en kodare känna till de Cell-specifika programmeringskommandona och ha en gedigen kunskap om enhetens arkitektur: dess bearbetningselement, sammankopplingar och minnesstruktur.

Syftet med den här boken är att täcka dessa ämnen på ett tillräckligt djupt sätt för att du ska kunna skapa program som maximerar Cellens möjligheter. En stor del av den här behandlingen fördjupar sig i processorns arkitektur, men bara de aspekter som du kan använda och konfigurera i kod. Vissa ämnen kan verka överväldigande för dem som inte är vana att tänka som datorarkitekter, men var inte orolig: Allt kommer att förklaras när behovet uppstår. Och målet med den här boken är alltid mjukvara.

Målet med det här kapitlet är att på en grundläggande nivå förklara vad Cell-processorn är och hur den fungerar. Diskussionen inleds med en beskrivning av Cells bakgrund, inklusive dess historia och möjligheter, och fortsätter med att presentera processorns grundläggande arkitektur.

1.1 Cell-processorns bakgrund

Cellen skiljer sig så mycket från sina föregångare att det är bra att känna till varför den skapades och vilka företagskrafter som formade dess design. När du förstår varför STI Alliance lade ner så mycket tid och kraft på Cell får du en bättre uppfattning om varför det är värt att lära dig mer om den.

Cellens historia

Sony avslutade utvecklingen av PlayStation 2 år 1999 och släppte den året därpå. Trots den enorma framgången var den dåvarande vd:n Nobuyuki Idei nervös: Hur skulle Sonys nästa generations konsol kunna överträffa PS2? Vad mer kunde de åstadkomma? Han bestämde sig för att svaret var tvåfaldigt: Nästa produkt måste integrera bredbandsmultimediafunktioner och ge dramatiska förbättringar av den grafiska bearbetningen. Dessa höga mål krävde helt ny hårdvara, och för att göra detta möjligt rådgjorde han med IBM:s dåvarande verkställande direktör Louis Gerstner. Tillsammans utformade de det koncept som slutligen skulle leda till Cell Processor.

Den chef för Sony Computer Entertainment, Ken Kutaragi, konkretiserade hårdvarukraven och ställde krav som gick långt utöver den senaste tekniken. Ken Kutaragi såg varje processor som en byggsten i en större, nätverksbaserad enhet och kallade enheten för Cell. I enlighet med Nobuyuki-sans ursprungliga avsikt kallades projektet för Cell Broadband Engine (CBE). Detta är fortfarande det officiella namnet på Cell-processorn.

Toshiba uttryckte ett intresse för att använda Cell i sin konsumentelektronik, och 2001 tillkännagav Sony, Toshiba och IBM att de bildade STI Alliance. Deras uttalade avsikt var att forska, utveckla och tillverka en banbrytande processorarkitektur. De bildade STI Design Center i Austin, Texas, för att förverkliga CBE:s krav.

Som cellens chefsarkitekt såg Jim Kahle att CBE:s krav inte kunde uppfyllas med en traditionell processor med en enda kärna – kravet på effekt skulle bli för stort. Istället valde han en mer strömsnål konstruktion som införlivade flera processorenheter i ett enda chip. Den slutliga arkitekturen bestod av nio kärnor: en central bearbetningsenhet och åtta dedikerade enheter för höghastighetsberäkningar.

När detta skrivs har STI Design Center vuxit till mer än 400 ingenjörer. Dr. H. Peter Hofstee, en av cellens grundande konstruktörer, är chefsforskare och chefsarkitekt för SPE. I en presentation nyligen räknade han upp de huvudmål som låg till grund för cellens utformning:

  1. Utmärkt prestanda för spel- och multimedietillämpningar
  2. Realtidssvar för användaren och nätverket
  3. Användbarhet för ett brett spektrum av plattformar

In 2004 tillverkade IBM:s fabrik för tillverkning av halvledare i East Fishkill den första prototypen av Cell. STI:s ingenjörer installerade Linux och testade processorn vid hastigheter över det allmänt angivna intervallet på 3 till 4 GHz. Prototypen klarade kraven. Under det följande året arbetade Sony och IBM febrilt för att integrera enheten i Sonys nästa generations konsol, och förväntansfulla spelare fick en första glimt av PlayStation 3 på 2005 års Electronic Entertainment Expo (E3).

November 2006 markerade den fullständiga kommersiella lanseringen av PS3, och berättelserna om långa köer och knappt friska konsumenter kommer att roa butikspersonalen under många år framöver. Förutom den kraftfulla Cell-processorhjärnan hade den nya konsolen en upplösning på upp till 1080p och en Blu-ray-enhet för högupplöst video.

Samma år släppte IBM sitt första CBE Software Development Kit (SDK) för att göra det möjligt för utvecklare att bygga program för Cell. SDK tillhandahåller kompilatorer för båda typerna av bearbetningselement, en kombinerad simulator/debugger, många kodbibliotek och en Eclipse-baserad utvecklingsmiljö. En stor del av den här boken handlar om SDK och hur du kan använda det för att bygga program.

I mitten av 2008 testades den första Cell-baserade superdatorn, kallad IBM Roadrunner, i Los Alamos National Laboratory. Med 12 960 Cell-processorer och 12 960 Opterons nådde Roadrunner en bearbetningshastighet på 1,026 petaflops och har blivit den snabbaste av superdatorerna på TOP500-listan. Hastigheten är mer än dubbelt så hög som för den näst bästa superdatorn, BlueGene/L, med 0,478 petaflops.

Potential of the Cell Processor for Scientific Computing

Under 2005 studerade Lawrence Berkeley National Laboratory Cells beräkningsprestanda och redovisade sina resultat i rapporten The Potential of the Cell Processor for Scientific Computing. De simulerade ett antal olika algoritmer och jämförde cellens bearbetningshastighet med liknande processorer: AMD Opteron, Intels Itanium2 och Crays X1E. I tabell 1.2 finns en tabell över deras resultat.

Tabell 1.2. Resultat av studien från Lawrence Berkeley National Laboratory (alla värden i Gflops/s)

Algoritm

Cell Processor

Cray X1E

AMD Opteron

Intel Itanium2

Täta matrismultiplikationer (enkel precision)

Dense matrismultiplikation (dubbel precision)

Symmetrisk sparsam matris Vektormultiplikation (enkel precision)1

Symmetrisk Sparsam matrisvektormultiplikator (dubbel precision)1

Nonsymmetrisk Sparse Matrix Vector Multiply (Single Precision)1

Nonsymmetrisk sparse matrixvektormultiplikator (dubbel precision)1

2-D snabb Fouriertransform (enkel precision)2

2-D snabb Fouriertransform (dubbel precision)2

Det finns två saker att tänka på. För det första avser resultaten beräkningshastigheten i miljarder flops (flyttalsoperationer per sekund), inte den tid som krävs för att utföra algoritmen. För det andra, eftersom multiplikatorerna i första generationens Cell är enkelprecisionsvärden presterar första generationens Cell mycket bättre med enkelprecisionsvärden än med dubbelprecisionsvärden. Men den andra generationen tillhandahåller hårdvarumultiplikation av värden med dubbel precision.

För en ingenjör som är intresserad av signalbehandling och beräkningsmatematik (som jag själv) är resultaten inget annat än häpnadsväckande. Studien rättfärdigar de skandalösa marknadsföringspåståendena: Cell ger verkligen superdatorliknande kapacitet till nästan samma kostnad och effekt (cirka 50-60 W) som en vanlig CPU.

Lämna ett svar

Din e-postadress kommer inte publiceras.