GPGPU

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun

GPGPU eli General-purpose computing on graphics processing units on tekniikka, jossa näytönohjaimella suoritetaan laskentaa. Se on yleisesti ollut pelkän keskussuorittimen laskettavana.

Grafiikkasuorittimet ovat perinteisiin keskussuorittimiin nähden hyvin tehokkaita rinnakkaislaskennassa. Tietyissä algoritmeissa nopeusero voi olla 10-100 kertainen GPU:n hyväksi.[1]

GPU:n suorituskyky laskennassa perustuu yksinkertaisiin suorittimiin, joita on huomattavan paljon rinnakkain.[1] GPU soveltuu käytettäväksi algoritmeissa joissa on korkea laskentaintensiteetti sekä datan riippumattomuus.[1][2] Laskentaintensiteetti määritellään operaatioina datayksikköä kohden. Tästä syystä esimerkiksi säteenseuranta on yksi mahdollinen käyttökohde.[2]

Historia[muokkaa | muokkaa wikitekstiä]

Varhaiset Grafiikkasuorittimet (GPU) olivat verrattain yksinkertaisia, kiinteätoimisia komponentteja. Ohjelma-algoritmien toteuttaminen GPU:n mikropiirillä lisäsi tehosti 3D-grafiikkaa ja vapautti keskussuorittimen muihin operaatioihin.

Renderoidun tiedon siirtäminen takaisin keskusmuistiin kuvan (frame) jälkikäsittelyä varten lisäsi tarvetta kaksisuuntaiselle väylälle ja GPU ei ollut enää sidottu vain näytölle suuntautuviin toimintoihin.

Shader-kielet lisäsivät joustavuutta ja sovittamista uusien algoritmien toteuttamiseen GPU:lla ilman tarvetta, että algoritmi olisi kiinteätoimisena piirinä mikrosirulla. Näiden kehittyminen johti lopulta nykyisen kaltaiseen tilanteeseen, jossa GPU on ohjelmoitavissa oleva komponentti ja käytettävissä laajalti muuhunkin kuin näyttötoimintoihin.

Varhaiset shader kielet (pixel shader, vertex shader) olivat vielä varsin rajoittuneita ja muistuttivat assembler-kieltä. Myöhemmin on tullut mahdollisuus ohjelmoida C-tyylisellä korkeamman tason kielellä (ks. GLSL, HLSL, Cg, C++ AMP). Shader-kielellä tehty ohjelma käännetään joko suoraan tai välillisesti (ks. SPIR-V[3]) GPU:n itsensä käyttämään muotoon. Johtuen useiden eri arkkitehtuurien määrästä viimeinen käännös GPU-kohtaisesti tapahtuu usein ajuritasolla.

Ohjelmarajapinnat ja kirjastot[muokkaa | muokkaa wikitekstiä]

GPGPU rajapintoja ovat mm. Khronos Groupin OpenCL, NVIDIAn CUDA sekä Microsoftin DirectX 11 mukana julkistama DirectCompute.

Vulkan rajapinta käyttää termiä Compute Pipeline tekniikalle.[4]

Ohjelmakoodikirjastoja on esimerkiksi OpenACC ja Torch.[5][6]

Käyttökohteet[muokkaa | muokkaa wikitekstiä]

Eräät supertietokoneet käyttävät menetelmää laskentakapasiteetin lisäämiseen. Käyttökohteita ovat mm. fysiikkamallinnus ja tekoälytutkimus.[7][6]

Esimerkkeinä Oak Ridgen Titan ja Facebookin julkaisema avoin Big Sur laitealusta.[7][6]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. a b c 8 Things You Should Know About GPGPU Technology Texas Advanced Computing Center. Viitattu 20.1.2017.
  2. a b Henri Pirinen: GPGPU-säteenseuranta Jyväskylän Yliopisto. Viitattu 21.1.2017.
  3. The first open standard intermediate language for parallel compute and graphics Khronos Group. Viitattu 21.1.2017.
  4. 9.1. Compute Pipelines Khronos Group. Viitattu 20.1.2017.
  5. OpenACC: Directives for GPUs NVidia. Viitattu 20.1.2017.
  6. a b c Facebook to open-source AI hardware design Facebook. Viitattu 20.1.2017.
  7. a b Introducing Titan Viitattu 20.1.2017.
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.