Plaza

Muropaketti.com

GPGPU-tekniikka: Laskentaa näytönohjaimella

24.8.2011

Sisältö

  1. GPGPU-tekniikka: Laskentaa näytönohjaimella
  2. Näytönohjainten historia & markkinatilanne
  3. Näytönohjaimen rakenne & grafiikkapiirien arkkitehtuuri
  4. GPGPU ja sen käyttökohteet & näytönohjaimen edut prosessoriin verrattuna
  5. Ohjelmointikirjastot
  6. Testit
  7. Loppuyhteenveto

Kommentit (20)

1.

Sivu 1: ”4000 tuhannen dollarin hinta” :D

2.

Rauta oli joskus vähän kallimpaa.. :P

Mainittakoon F@H murotiimi
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=365

Ilmeisesti kyseinen ohjelma käyttää gputa ihan kivasti kun sellasta vingutusta kuului niinkauan että virtalähde sano pox..

3.

Ei kun foldaamaan…

4.

Mielenkiintoista luettavaa. Nähtäväksi jää koska aletaan näytönohjaimiin lisäämään ytimiä…

5.

stebenwulf: mitähän ihmettä oikein tarkoitat? Luitko artikkelia ollenkaan?

6.

Sen verran pitää kommentoida tuosta Unreal Tournament 3 PhysXistä, että siinähän oli PhysX kiihdytettyinä erilliset ”demokentät” vain, ja normipelissä PhysX rullasi aina CPU:lla, jollen ihan väärin muista.

Myös GTA IV viite on hieman virheellinen, sillä ko. pelin fysiikat hoiti Bullet-engine eikä PhysX, ja Natural Motionin Euphoria sen ohella - PhysX:llä ei siis ollut sen kanssa mitään tekemistä.

7.

Ja editin uupuessa, AMD / ATI STREAM on nykyään nimeltään AMD APP HD6-sarjan myötä

8.

Ja vielä lisättäköön sekin että Bulletin olisi voinut mainita myös, se kun on myös näytönohjainkiihdytetty nykyään vaikkei siitä taidakaan olla vielä yhtään kiihdytystä hyödyntävää peliä ulkona

9.

Miksei ole käsitelty Bitcoinien kaivamista?

10.

Hieno artikkeli, toki asiaa voisi käsitellä vaikka kirjan verran mutta kiva pinta raapaisu jossa pääpiirteittäin käytiin asiat läpi.

11.

Käytännön sovelluksista olisi kiva olla juttua. Nyt on sellaisista softista joilla ei ole mitään väliä ja tuntui, että ei oikein vielä kokemusta kellään.

Esim. millälailla 3ds max tukee GPGPU:ta? Raytracingissä? I-rayllä? Jos tukee niin onko se jo tuotantokelpoista vai vaatiiko vielä kehitystä? Riittääkö pelikortit 1,5 gigan muistilla minkään kokoisille sceneille? Onko kortteja ajureiltaan disabloitu, pitääkö olla Quadroa?

Powerdvd? Se ei mitään GPGPU-tukea oikeasti tarvitse. Enkoodaukseen GPU:ta voidaan käyttää hyvin mutta onko näissä testeissä aina esiintyvä Mediashow oikeasti siinä hyvä? Tippuuko laatu? Ohjelma itsessään on muuten täyttä kuraa.

Adobe Premiere on ehkä ainoa softa tällähetkellä jossa CUDA:sta on selvähköä hyötyä.

12.

@11 Adobe ja 3dsmax ovat käyttäneet vuosikymmeniä monisäie tekniikkaa ja tehonlisäys on saatu prosessori ytimiä lisäämällä.
Lisätehon hakeminen näytönohjaimilla tuntuu noissa ohjelmissa lähinnä huonolta vitsiltä.
Täällä murossahan oli testi jossa näytönohjaimien suuret muistimäärätkin osoittautuivat täysin hyödyttömiksi useimmissa peleissä ja sovelluksissa.
Ainoastaan Nvidialla on tällähetkellä jotakin todellista näytettävää CUDA laskenta tekniikassa.
Nyt vain odotellaan milloin tekniikka nähdään kuluttajille suunnatuissa mallinnusohjelmissa.

Intel ei myöskään paranna tilannetta omilla toimillaan eikä kovista puheista huolimatta ole vieläkään näytettävää GPU tai piirisarja yhdistelmissä.
Firma tuntuu edelleenkin juuttuneen raakaatehoa käyttävään monisäie hyper-threating laskentamalliin jota nyt sentään hiukan paranneltiin i7 prosessoreissa:

http://217.149.58.162/tietokone/lehti/tietokone_13_2008/intel_core_i7_597

Veikkaan että esim 3dsmaxin tekijät suosivat edelleenkin Intelin ideoita, Nvidian ja AMD sovelluksia saadaan odotella vielä pitkäänkin esim mallinnuksessa.

Esimerkki linkki Hyper-thread hyödyistä mallinuksessa:
http://ixbtlabs.com/articles3/cpu/ci7-turbo-ht-p1.html

Vaikka muron artikkeli olikin vain pelkkä pintaraapaisu photorealistisesta peligrafiikasta haaveilevat voisivat lukea kakkos-sivun hyvinkin tarkkaan.
Uskomatonta kuinka Open-GL oli ollut olemassa lähes kymmenen vuotta aikaisemmin ennenkuin Mikkisofta havahtui luomaan omaa DirectX järjestelmäänsä.

Kyllä on edelleenkin peligrafiikan ”kehitys” hyvissä käsissä.

13.

Artikkelissa ei kerrota mitään double-precision / 64-bit laskennan ja 32-bit laskennan eroista, eikä tämän vaikutuksesta suorituskykyyn eri arkkitehtuureilla.

Tuo on minusta aika anteeksiantamatonta, kun vaikutus on arkkitehtuurista riippuen 1/2 - 4/5 suorituskykypudotus ja monissa asioissa 64-bittisyys on oikeasti aivan pakollista.

Itseasiassa yliopistomaailmassa joitakin fysiikkasimulaatioita ajetana jopa quad-precisionilla 128-bittisellä tarkkuudella, koska 64-bittinen tarkkuus ei riitä pitkien simulaatioiden osalta. Moisten softien muuttaminen GPU:lla pyöriväksi on sitten hieman hankalampaa.

14.

10: tietokonesimulaatioiden puolella (esim. monen kappaleen mallit) on viime vuosina siirrytty yhä enemmän käyttämään näytönohjaimia. Esimerkiksi gravitaatiovoimien lasku on periaatteessa hyvin yksinkertaista, mutta kappalemäärän kasvaessa ongelma räjähtää ns. käsiin ja perinteisesti on jouduttu turvautumaan monenlaisiin ”vippaskonsteihin”. Samaten joillekin tieteellisessä laskennassa ja datan analysoinnissa käytetyille ohjelmistoille on tullut saataville ”lisäpalikoita”, jotka siirtävät tietyt laskutoimitukset näytönohjaimen laskettaviksi.

15.

3dsMAX:n osalta MentalRAy on käsittääkseni jo pitkään yrittänyt kehittää CUDA-pohjaista laskentaa renderöintimoottoriinsa, mutta siinä on näköjään suuriakin teknisiä ongelmia kun mitään ei ole kuulunut pitkään aikaan. Ongelman muodostaa ilmeisesti miten säilyttää renderöinnin laatu nykyistä vastaavana näytönohjainten hyvin rajallisella muistilla/ydin, johon ei kai mahdu riittävästi tavaraa kaikista huomioitavista asioista. 3DsMAX käyttää fysiikkamallinnukseen ainakin pluginien avulla CUDA-laskentaa, ja varsinaisen mallinnuksen nopeus on taas puhtaasti näytönohjain riippuvaista. Eli toisinsanoen, jos renderöinti saadaan vielä näytönohjainten vastuulle niin 3dsMAX:ssa CPU-tehoja ei tarvitse enää oikein mihinkään.

16.

Itse olisin odottanut hieman enemmän mainintaa hajautetusta laskennasta kuin vain pelkästään F@H.
nVidia/AMD näytönohjaimia tukevia BOINC projektejakin on todella monia:
GPUGrid, SETI@Home, Milkyway@Home, Lattice, Collatz Conjecture ja niin edelleen. Ja lisää projektejakin tulee.

Ne projektit jotka tukee näytönohjaimella suoritettavaa laskentaa saavat paljon enemmän hyötyä/raakaa dataa/tuloksia kuin jos tukisivat pelkästään prosessoreita. Toki on myös sellaisia projekteja joiden muuntaminen CUDA/AMD APP tukeviksi on hankalaa ja aikaa vievää.

17.

Nvidia alkaa saada CUDA systeemistään toimivan paketin.
Mutta pelejä joissa CUDA laskennalla nopetutetaan PhysX simulointia joudutaan odottamaan vielä ensivuoden puolelle.
Ainoa peli jossa tekijät ilmoittavat käyttävänsä CUDA ja PhysX 3.0 yhdistelmää taitaa olla ensikesänä julkaistava Arma3.
Vastaavia hienouksia ei tulla näkemään Battlefield kolmosessa, tuo pelihän olisi räjäyttänyt GPGPU, CUDA, ja AMD APP systeemit suursuosioon.
Mitään varsinaista estettä ei enään pitäisiolla koska DirectX 11 version jälkeen päästiin eroon moni GPU rajoituksista.
Ainoa mikä enään hidastaa kehitystä taitaa olla PCI Express 3.0 sähellys.

18.

” Grafiikkapiirin arkkitehtuuri on verrattavissa ihmisen tapauksessa luurankoon. Arkkitehtuuri on grafiikkapiirin pohjalla, mutta lopullisen suorituskyvyn määrittelee se, kuinka pitkälle näytönohjainvalmistaja hyödyntää sitä. Ihmisellä luuranko määrittelee perusmuodot, mutta lihakset jne. antavat lopullisen muodon kokonaisuudesta. Näytönohjaimien tapauksessa lihakset vastaavat kellotaajuuksia ja muun muassa muistikapasiteettia. ”

Ei kovin hyvä vertaus. LOL

19.

Mistähän tuo yhdessä testissä näkynyt suorituskykyero OpenCL:n ja DirectComputen välillä johtuu? Onko testiohjelma optimoitu paremmin OpenCL:lle vai onko DirectCompute vain toteutukseltaan huonompi?

20.

Koskahan nähdään ensimmäiset tietokoneet joissa cpu:n sijasta käytetään pelkkää gputa?

Kirjaudu sisään

Kommentointi tässä osiossa on sallittu vain rekisteröityneille käyttäjille. Jos sinulla ei vielä ole tunnusta, rekisteröidy käyttäjäksi.

Takaisin ylös