Mielipide: AMD:n, Intelin ja Nvidian seuraavat kymmenen vuotta

Artikkelin kirjoittaja: Teemu Laitila | 0 kommenttia

Nvidian kunnianhimo


Kunnianhimo tappoi Caesarin ja se lähes tappoi myös Nvidian. Nvidian seuraavan sukupolven tuote GF100 on myöhässä ja on epäselvää kuinka paljon enemmän suorituskykyä se tarjoaa AMD:n Radeon HD 5800 –sarjaan verrattuna. Nvidian Fermi-arkkitehtuuri oli tavoitteiltaan liian kunnianhimoinen. Jos Nvidian G92-ydin ei olisi niin vahva tuote, se olisi saattanut jo mennä S3:n ja Matroxin tietä. Tämä tapahtui viimeksi NV30-piirin tapauksessa ja sitä ennen NV1-piirin kanssa. Nvidia meni melkein konkurssiin.

Siitä huolimatta voidaan sanoa, että tarkkaan laskentaan panostaminen NV30 –piirin mukana tulleiden 32-bittisten varjostinyksiköiden ja nyt Fermin CUDA-tekniikan muodossa on kuitenkin ollut kannattavaa. Kaiken tämän ytimessä on CUDA.

CUDA on markkinointitermi, joka käsittää kaiken Nvidian laitteisto- ja ohjelmistotekniikan jonka avulla GPU:ta voidaan käyttää muuhun kuin pelkän grafiikan laskentaan. Siihen kuuluu kaiken perustana oleva CUDA-laitteistoarkkitehtuuri ja koko ekosysteemillinen erilaisia tekniikoita, joiden avulla kehittäjät voivat käyttää GPU:ta C, Fortran, OpenCL ja DirectCompute –kielten avulla.

Keskiverto harrastajan mielestä C:n ja Fortranin käyttö CUDA-ohjelmointiin on vanhentunutta tekniikkaa. Miksi ohjelmistokehittäjän pitäisi rajoittaa itsensä vain yhden valmistajan tekniikan käyttöön, kun tarjolla on myös OpenCL:n ja DirectComputen kalataisia ohjelmia? Eihän kukaan enää käytä patentoituja 3D rajapintoja. Jos taas asiasta kysyy ohjelmistokehittäjältä, vastaus on hyvin erilainen.

Suurin osa GPU:ta hyödyntävistä laskentaohjelmista on nykyään rakennettu CUDA-tekniikan ympärille, johtuen Nvidian useiden vuosien etumatkasta ohjelmistokehitystyökalujen tarjonnassa. Sen lisäksi, että ne mahdollistavat ohjelmistokehityksen monilla eri ohjelmointikielillä, Nvidia on myös rakentanut toimivat IDEt (Integrated Development Environments) CUDA-ohjelmistojen debuggaukseen. Yksi Nvidian suurimpia saavutuksia on Mercury Playback Engine, jota käytetään Adobe CS5 –paketissa. Se on entistä tärkeämpi siksi, että CS5:n odotetaan olevan Adoben myydyin CS-tuote johtuen sen natiivista 64-bittisestä koodista.

Adoben ohjelmistot perustuivat aiemmin OpenGL-tekniikalle tiettyjen elementtien kiihdytyksessä, mutta Mercury Engine on rakennettu kokonaan CUDAn avulla ja se mahdollistaa monien korkearesoluutioisten videoformaattien editoinnin, kuten viiden samanaikaisen RED 4K –leikkeen ja esimerkiksi AVCHD:n ja H.264 videon editoinnin. Kun tulee aika enkoodata lopputulos, Nvidialla on CUDA-tuki sisäänrakennettuna Elemental Accelerator-ohjelmassa. Neljä Quadro FX 3800 –korttia (jotka vastaavat ensimmäisen sukupolven GeForce 260 –kortteja 192 CUDA-ytimellä, mutta sisältävät 256-bittisen muistiväylän) kykenevät enkoodaamaan 1080p-tasoista AVCHD:ta H.264 720p-resoluutiolle 40 ruutua sekunnissa. Videoeditoinnin saralla aika on usein rahaa. Ajattele vaikka hääkuvaajaa, joka haluaa saada videon valmiiksi saman päivän aikana, jotta sitä voitaisiin esittää häävastaanotolla illalla. Silloin ei riitä, että renderöinti tehdään yön aikana. Mitä nopeammin enkoodaus tapahtuu, sitä enemmän jää aikaa varsinaiseen editointityöhön.

CS5:n kehityksen aikana AMD:n Stream-prosessoreihin perustuva tekniikka ei ollut Adoben vaatimalla tasolla. Vaikka Adobe haluaisikin periaatteessa olla riippumaton yhdestä laitteistovalmistajasta ja käyttää OpenC:lää, kehitysympäristö ei vain ole tarpeeksi kykenevä Adoben käyttöön. OpenCL:n tulosta Creative Suiteen ei ole vielä tehtyä päätöksiä ja jää nähtäväksi tapahtuuko se ennen kun Nvidia valtaa iPod-tyyppisen markkina-aseman. Vaikka AMD tarjoaakin beta-tason plug-iniä käytettäväksi H.264-enkoodaukseen Stream-prosessoreiden avulla, ohjelmisto vaatii AMD:n prosessorin eikä se toimi lainkaan Intelin prosesoreilla, jotka kuitenkin ovat enemmistössä markkinoilla.

Nvidialla on huomattava johtoasema tieteellisen laskennan alalla johtuen sen C for CUDA ja Fortran for CUDA –tekniikoista. Fortrania käytetään erittäin paljon tieteellisen laskennan ohjelmistoissa. Vaikka Nvidia teki PGI:n kanssa sopimuksen Fortranin käytöstä GPU-laskennassa melkein vuosi AMD:n jälkeen (Kesäkuu 2009 vs. Lokakuu 2008), PGI:n CUDA-tuki on itse asiassa julkaistu toisin kuin AMD:n versio. Nvidian asiakkailla on myös mahdollisuus käyttää F2C-ACC:tä, eli National Oceanic and Atmospheric Administrationin (NOAA) kehittämää Fortran-to-CUDA-kääntäjää. AMD:n käyttäjillä on HMPP for Fortran, mikä itseasiasa tukee myös CUDAa.

Muistatteko miten ATI renderöi reaaliajassa alaspäin-skaalatun version Sormusten Herrasta SIGGRAPH 2002 –tapahtumassa? Se oli mahtava teknologiademo. Nvidian CUDA pääsee kuitenkin kokonaan uudelle tasolle. Nvidia ja WETA rakensivat yhdessä erityisen PantaRay-nimisen ohjelmiston, jota käytettiin Avatar-elokuvassa. Tällä työkalulla saavutettiin 25 kertaa parempi suorituskyky kuin vastaavalla CPU-serverillä ja se oli neljä kertaa tehokkaampi kuin perinteiset renderöintiohjelmistot. Se mahdollisti miljardien polygonien käytön jokaisessa ruudussa. Se ei ollut teknologiademo, vaan rehellinen panostus visuaalisten efektien alalle. PantaRayta käytetään myös SteveSpielbergin ja Peter Jacksonin tulevassa Tintin-elokuvassa.

Tämän kaiken perusteella voidaan sanoa, että Nvidialla on huomattava etumatka Inteliin ja AMD:hen tehokkaan rinnakkaislaskennan alalla. Kaikki GPGPUn käyttöön tarkoitettuihin kaupallisiin ohjelmiin tehdyt investoinnit alkavat jo tuottaa voittoa esimerkiksi Adobe CS5:n CUDA-tuessa ja CUDAn laajemmassa käyttöönotossa tieteellisessä yhteisössä. Jos yhtiö jatkaa aggressiivista strategiaansa ja kasvattaa GF100-pohjaista tuoteperhettään, sillä on mahdollisuus saavuttaa iPod-tyyppinen johtava markkina-asema ja se on jo nyt vähintäänkin saanut tukevan jalansijan GPGPU-maailmassa. Kolmas sija menee joko AMD:lle tai Intelille.

Kommentoi artikkelia