Hei
Paljon on puhuttu siitä, että näytönohjainten lasketatehot hakkaavat tietyissä tilanteissa prosessorilla suoritetut komennot nopeudessaan. Ohessa uutisointi muropaketista
Näytönohjainkiihdytystä Photoshoppiin
Kuinka tämän kaltaiset ohjelmansäikeistämiset näytönohjaimelle tehdään?
Edit: ongelmia linkkitagin kanssa.
Ainakin brute-forcereide keskuudessa on yleistynyt NVIDIA:n CUDA, jolla käännetyt sovellukset tarvitsevat toimiakseen NVIDIAn näyttiksen ja erillisen CUDA-ajurin. CUDA:n avulla pitäisi päästä vaivatta nauttimaan GPU:n laskentatehosta, jos vain C taittunee.
itselläni valitettavasti koneessä kehrää radeon hd 4870.
Onko GPUn käskykannat poikkeavia nividalla ja atilla? Eivät ilmeisesti kumpikaan käytä x86-standardia? Lienee parasta unohtaa tämä vielä joksikin ajaksi.
ATIn versio löytyy osoiteesta:
http://ati.amd.com/technology/streamcomputing/
Photoshop käyttää OpenGLlää. (ainakin kuvan piirtämiseen)
tkok kirjoitti:
Eivät ilmeisesti kumpikaan käytä x86-standardia?
Jos ne käyttäisivät x86 käskykantaa, niin ne tuskin olisivat missään asiassa merkittävästi koneen prosessoria nopeampia. Pointtihan on juuri se, että kun rauta rakennetaan johonkin erityistehtävään, niin siitä saadaan helposti nopeampi kuin normaali prosessori joka on "joka paikan höylä".
Sivulta http://gpgpu.org/ löytää monenlaista asiaa GP-yksiköiden käytöstä yleiseen ohjelmointiin.
DirectX 11 spekseissä on mukana GPGPU (General Purpose GPU) eli se tarjoaa yhteisen yleiskäyttöisen ohjelmointirajapinnan noihin eri valmistajien kortteihin. Taitaa tosin kestää useampi vuosi, ennen kuin tuon käyttö yleistyy, kun edes DirectX 10 ei ole vielä saanut kunnolla tuulta purjeisiin Vistan kehnon menestyksen takia. Peliohjelmoinnin kannalta tuo on kuitenkin lupaava ja mielenkiintoinen uudistus.
FooBat kirjoitti:
Peliohjelmoinnin kannalta tuo on kuitenkin lupaava ja mielenkiintoinen uudistus.
Jolla saadaankin asioista taas askeleen hankalampia Winen kannalta, jos vastaavaa kirjastoa ei löydy Linuxin puolelta. Pitäisi varmaan olla vieläpä OpenGL:n osa, että vältyttäisiin asioiden kopioimiselta yhdestä näytönohjaimen muistipaikasta keskusmuistin kautta toiseen, jos nyt ollenkaan arvaan oikein, mitä tuo DirectX-versio aikanaan mahdollistaa. Kehityksellä on aina varjopuolensa. ;)
tkok kirjoitti:
Eivät ilmeisesti kumpikaan käytä x86-standardia?
Eihän ne, kuten Grez jo vastasikin. AFAIK näytönohjainta käskytetään dokumentoimattomalla valmistajakohtaisella mikrokoodilla. Suuri hyöty tästä on myös virustenkirjoittajille, kun välineet binäärin tutkimiseen rajoittuu heksaeditoriin, joka on aika avuton polymorfisten yksilöiden kanssa.
/me odotteleekin jo ensimmäistä GPU:ta hyödyntävää virusta :)
Tässäpä hieman Tim Sweeneyn ennusteita.
http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars
lainaus:
TS: I expect that in the next generation we'll write 100 percent of our rendering code in a real programming language—not DirectX, not OpenGL, but a language like C++ or CUDA.
lainaus:
To take the long-term view of it, in the early 90s, we had the software rendering era—Quake, Doom, Unreal—all the genre-defining games based on software rendering. The next big step was the fixed-function, 8-bit rendering era; it started with 3Dfx Voodoo, and then NVIDIA, through DirectX 8. And then you got into the DirectX 9 era—where the shading pipeline was programmable, but everything else was fixed-function. The next step is just programmable everything, and back to C++.
lainaus:
So we need easy, simple programming models that scale to multiple threads and cores.
Ks. myös http://www.science.uva.nl/~mes/jargon/w/
Aihe on jo aika vanha, joten et voi enää vastata siihen.