Soluprosessorin esittely

Matthew Scarpino selittää perustasolla, mikä soluprosessori on ja miten se toimii.

Syyskuussa 2007 Guinnessin ennätysten kirja julkisti maailman tehokkaimman hajautetun laskentajärjestelmän uuden ennätysmiehen. Kyseessä ei ollut perinteinen huipputehokkaiden tietokoneiden klusteri, vaan tavallisista tietokoneista ja PlayStation 3 -konsoleista (PS3) koostuva maailmanlaajuinen verkko. Folding@Home-niminen hajautettu laskentajärjestelmä simuloi proteiinien taittumista analysoidakseen, miten taudit syntyvät.

Ennen kuin PS3-tietokoneet liittyivät mukaan, verkko pystyi vain 0,25 petaflopsin (250 000 000 000 000 000 liukulukuoperaatiota sekunnissa) tehoon. Mutta kun Folding@Home-asiakasohjelmaa alettiin käyttää PS3-tietokoneilla, laskentanopeus nelinkertaistui kuudessa kuukaudessa, mikä teki Folding@Homesta ensimmäisen hajautetun laskentajärjestelmän, joka rikkoi yhden petaflopin rajan.

Taulukossa 1.1 selvitetään PS3-tietokoneiden merkitystä Folding@Home-verkossa. Konsoleita ei ole läheskään yhtä paljon kuin tietokoneita, mutta ne tarjoavat enemmän laskentatehoa kuin Windows/Mac/Linux-tietokoneet yhteensä.

Taulukko 1.1. Folding@Home-suorituskykytilastot (Tallennettu 16. huhtikuuta, 2008)

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

PS3:n valtavasta laskentatehosta vastaa Cell Broadband Engine, jota kutsutaan yleisesti Cell-prosessoriksi tai vain Celliksi. STI Alliancen (Sony, Toshiba ja IBM) kehittämässä Cellissä yhdistyvät IBM:n PowerPC-arkkitehtuurin yleiskäyttöominaisuudet ja riittävästi numeroiden murskausta vaativimpienkin pelaajien ja graafisten kehittäjien tarpeisiin.

Mitä tämä tarkoittaa sinulle? Se tarkoittaa, että voit nauttia molempien maailmojen parhaista puolista: laskennallisesta joustavuudesta ja tehosta. Toisaalta voit asentaa Cell-tietokoneeseen yleisen käyttöjärjestelmän, kuten Linuxin, ja suorittaa sovelluksia yhtä kätevästi kuin PC:ssä. Toisaalta voit toteuttaa laskentaintensiivisiä algoritmeja nopeuksilla, jotka ylittävät huomattavasti tavalliset suorittimet ja jopa kilpailevat supertietokoneiden kanssa.1 Vielä uskomattomampaa on, että voit tehdä molempia samanaikaisesti.

Cell mahdollistaa tämän piirin sisäisen työnjaon avulla: Käyttöjärjestelmä toimii yhdellä PowerPC-prosessorielementillä (PPE), ja nopean laskennan suorittaa sarja synergistisiä prosessorielementtejä (SPE). Nämä kahdentyyppiset prosessoriytimet on suunniteltu erityisesti omiin tehtäviinsä, ja kumpikin tukee erilaista käskykokonaisuutta.

Yksittäin tarkasteltuna nämä prosessorielementit ovat helposti ymmärrettäviä ja suoraviivaisia ohjelmoida. Vaikeinta on koordinoida niiden toiminta niin, että niiden vahvuuksia hyödynnetään parhaalla mahdollisella tavalla. Tämän saavuttamiseksi koodaajan on tunnettava Cell-kohtaiset ohjelmointikomennot ja tunnettava laitteen arkkitehtuuri: sen prosessointielementit, liitännät ja muistirakenne.

Tämän kirjan tarkoituksena on käsitellä näitä aiheita riittävän perusteellisesti, jotta voit luoda sovelluksia, jotka maksimoivat Cellin ominaisuudet. Suuri osa tästä käsittelystä syventyy prosessorin arkkitehtuuriin, mutta vain niihin osa-alueisiin, joita voit käyttää ja konfiguroida koodissa. Jotkin aiheet saattavat tuntua ylivoimaisilta niille, jotka eivät ole tottuneet ajattelemaan tietokonearkkitehtien tavoin, mutta älä ole huolissasi: Kaikki selitetään tarpeen mukaan. Ja tämän kirjan tavoitteena on aina ohjelmisto.

Tämän luvun tavoitteena on selittää perustasolla, mikä Cell-prosessori on ja miten se toimii. Käsittely aloitetaan kuvaamalla Cellin taustaa, mukaan lukien sen historiaa ja ominaisuuksia, ja siirrytään esittelemään prosessorin perusarkkitehtuuria.

1.1 Cell-prosessorin tausta

Cell on niin erilainen kuin edeltäjänsä, että on hyödyllistä tietää, miksi se on luotu ja mitkä yritysvoimat muokkasivat sen suunnittelua. Kun näet, miksi STI Alliance käytti niin paljon aikaa ja vaivaa Cellin kehittämiseen, saat paremman käsityksen siitä, miksi sen opetteleminen kannattaa.

Cellin historia

Sony sai PlayStation 2:n kehitystyön päätökseen vuonna 1999 ja julkaisi sen seuraavana vuonna. Huolimatta sen valtavasta menestyksestä silloinen toimitusjohtaja Nobuyuki Idei oli hermostunut: Miten Sonyn seuraavan sukupolven konsoli voisi ylittää PS2:n? Mitä muuta he voisivat saada aikaan? Hän päätti, että vastaus oli kaksitahoinen: Seuraavaan konsoliin oli integroitava laajakaistamultimediaominaisuudet ja sen oli parannettava merkittävästi grafiikan käsittelyä. Nämä korkeat tavoitteet edellyttivät täysin uutta laitteistoa, ja jotta tämä olisi mahdollista, hän neuvotteli IBM:n silloisen toimitusjohtajan Louis Gerstnerin kanssa. Yhdessä he muotoilivat konseptin, joka lopulta johti Cell-prosessoriin.

Sony Computer Entertainmentin päällikkö Ken Kutaragi täsmensi laitteistovaatimuksia ja esitti vaatimuksia, jotka menivät paljon pidemmälle kuin tekniikan nykytaso. Ken Kutaragi kuvitteli jokaisen prosessorin olevan suuremman, verkottuneen kokonaisuuden rakennuspalikka ja kutsui laitetta Celliksi. Nobuyuki-sanin alkuperäisen aikomuksen mukaisesti projektin nimeksi tuli Cell Broadband Engine (CBE). Tämä on edelleen Cell-prosessorin virallinen nimi.

Toshiba ilmaisi kiinnostuksensa Cellin käyttämiseen kulutuselektroniikassaan, ja vuonna 2001 Sony, Toshiba ja IBM ilmoittivat STI Alliancen perustamisesta. Heidän tarkoituksenaan oli tutkia, kehittää ja valmistaa uraauurtavaa prosessoriarkkitehtuuria. He perustivat STI Design Centerin Austiniin, Teksasiin, toteuttamaan CBE:n vaatimuksia.

Cellin pääarkkitehtina Jim Kahle näki, että CBE:n vaatimuksia ei voitu täyttää perinteisellä yksiytimisellä prosessorilla – tehon tarve olisi liian suuri. Sen sijaan hän valitsi energiatehokkaamman rakenteen, jossa useita prosessoriyksiköitä yhdistettiin yhdelle sirulle. Lopullisessa arkkitehtuurissa oli yhdeksän ydintä: yksi keskusyksikkö ja kahdeksan nopeaan laskentaan tarkoitettua yksikköä.

Tätä kirjoitettaessa STI Design Center on kasvanut yli 400 insinöörin voimin. Tohtori H. Peter Hofstee, yksi solun perussuunnittelijoista, toimii SPE:n johtavana tutkijana ja pääarkkitehtina. Äskettäin pitämässään esityksessä hän luetteli Cellin suunnittelua ohjanneet päätavoitteet:

  1. Erinomainen suorituskyky peli- ja multimediasovelluksissa
  2. Reaaliaikainen reagointikyky käyttäjää ja verkkoa kohtaan
  3. Soveltuvuus laajalle alustavalikoimalle

Vuonna 2004 IBM:n puolijohdetehtaalla East Fishkillissä valmistui ensimmäinen Cellin prototyyppi. STI:n insinöörit asensivat Linuxin ja testasivat prosessoria nopeuksilla, jotka ylittivät yleisesti ilmoitetun 3-4 GHz:n alueen. Prototyyppi läpäisi testin. Seuraavan vuoden aikana Sony ja IBM työskentelivät kuumeisesti laitteen integroimiseksi Sonyn seuraavan sukupolven konsoliin, ja odottavat pelaajat näkivät PlayStation 3:n ensimmäisen kerran vuoden 2005 Electronic Entertainment Expossa (E3).

Marraskuussa 2006 PS3 julkaistiin kaupallisesti, ja tarinat pitkistä jonoista ja hädin tuskin täysjärkisistä kuluttajista hauskuuttavat vähittäiskauppojen henkilökuntaa vielä vuosien ajan. Tehokkaiden Cell-prosessoriaivojensa lisäksi uusi konsoli tarjosi jopa 1080p:n resoluution ja Blu-ray-aseman teräväpiirtovideota varten.

Samana vuonna IBM julkaisi ensimmäisen CBE-ohjelmistokehityspakettinsa (SDK, Software Development Kit), jonka avulla kehittäjät voivat rakentaa sovelluksia Cellille. SDK tarjoaa kääntäjät molemmille prosessorityypeille, yhdistetyn simulaattori/debuggerin, lukuisia koodikirjastoja ja Eclipse-pohjaisen kehitysympäristön. Suuri osa tästä kirjasta käsittelee SDK:ta ja sitä, miten sen avulla voi rakentaa sovelluksia.

Vuoden 2008 puolivälissä Los Alamosin kansallisessa laboratoriossa testattiin ensimmäistä Cell-pohjaista supertietokonetta, IBM Roadrunneria. Roadrunner sisälsi 12 960 Cell-prosessoria ja 12 960 Opteronia, ja se saavutti 1,026 petaflopsin prosessointinopeuden, ja siitä on tullut TOP500-listan supertietokoneista nopein. Sen nopeus on yli kaksinkertainen verrattuna toiseksi sijoittuneeseen supertietokoneeseen BlueGene/L:ään, jonka nopeus oli 0,478 petaflopsia.

Cell-prosessorin mahdollisuudet tieteellisessä laskennassa

Lawrence Berkeley National Laboratory tutki vuonna 2005 Cell-prosessorin laskentasuorituskykyä ja kirjasi havaintonsa raporttiin The Potential of the Cell Processor for Scientific Computing. He simuloivat useita erilaisia algoritmeja ja vertasivat Cellin laskentanopeutta vastaaviin prosessoreihin: AMD Opteroniin, Intelin Itanium2:een ja Cray X1E:hen. Taulukkoon 1.2 on koottu heidän tuloksensa.

Taulukko 1.2. Lawrence Berkeleyn kansallisen laboratorion tutkimuksen tulokset (kaikki arvot Gflops/s)

Algoritmi

Cell Prosessori

Cray X1E

AMD Opteron

Intel Itanium2

Tiheä matriisikerroin (yksinkertainen tarkkuus)

Tiheä… Matrix multiply (double precision)

Symmetric sparse matrix vektorikerroin (yksinkertainen tarkkuus)1

symmetrinen Harvan matriisin vektorikerroin (kaksoistarkkuus)1

Epäsymmetriset Sparse Matrix Vector Multiply (Single Precision)1

Nonsymmetric sparse matrix vector multiply (double precision)1

2-D nopea Fourier-muunnos (yksinkertainen tarkkuus)2

2-D nopea Fourier-muunnos (kaksinkertainen tarkkuus)2

On kaksi asiaa, jotka on syytä pitää mielessä. Ensinnäkin tulokset viittaavat laskentanopeuteen miljardeina floppeina (liukulukuoperaatioita sekunnissa), eivät algoritmin suorittamiseen kuluvaan aikaan. Toiseksi, koska ensimmäisen sukupolven Cellin kertoimet ovat yksitarkkoja, ensimmäisen sukupolven Cell toimii paljon paremmin yksitarkkuusarvoilla kuin kaksitarkkuusarvoilla. Toisen sukupolven Cell tarjoaa kuitenkin laitteistokertoimen kaksoistarkkuusarvoille.

Signaalinkäsittelystä ja laskennallisesta matematiikasta kiinnostuneelle insinöörille (kuten minulle) tulokset ovat suorastaan hämmästyttäviä. Tutkimus oikeuttaa törkeät markkinointiväitteet: Cell todella tarjoaa supertietokoneen kaltaiset ominaisuudet lähes tavallisen suorittimen kustannuksilla ja teholla (noin 50-60 W).

Vastaa

Sähköpostiosoitettasi ei julkaista.