GPGPU - PROSESSORIN KORVAAMINEN NÄYTÖNOHJAIMELLA YLEISHYÖDYLLISISSÄ OHJELMISSA
Suvanto, Ville (2011)
Suvanto, Ville
Satakunnan ammattikorkeakoulu
2011
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201104204605
https://urn.fi/URN:NBN:fi:amk-201104204605
Tiivistelmä
Opinnäytetyön tarkoituksena on tutustua GPGPU-tekniikkaan, jolla näytönohjaimia voidaan hyödyntää yleishyödyllisessä laskennassa ja näin siirtää laskentaa pois pelkästään prosessorin harteilta. Tekniikka on osoittanut potentiaalinsa viimeisen parin vuoden aikana, kun markkinoille on julkaistu näytönohjaimia, joiden grafiikkapiirit rakentuvat lukuisista pienistä suorittimista. Nämä pienet suorittimet ovat vahvoilla varsinkin rinnakkais- ja vektorilaskennassa.
Työn alussa tutkitaan näytönohjainten historiaa, nykyistä markkinatilannetta eri valmistajien ja toimitusmäärien valossa, nykynäytönohjaimen rakennetta sekä kahden johtavan erillisnäytönohjainvalmistajan grafiikkapiirien arkkitehtuuria. Seuraavaksi tutkinnan alla on GPGPU-tekniikka ja työssä tutkitaan, mitä erilaisia käyttökohteita tekniikalla on ja mitä etuja saavutetaan, kun laskentaa siirretään prosessorilta näytönohjaimelle.
Opinnäytetyössä tutkitaan myös tällä hetkellä markkinoilla olevia ohjelmointikirjastoja: CUDAa ja siihen perustuvaa PhysX:ää, OpenCL:ää, DirectComputea, ATI Streamia sekä Havok Physicsiä. Lopussa verrataan suorituskykyä ja tehonkulutusta, kun laskenta suoritetaan pelkästään prosessorilla ja kun laskentaa avustetaan näytönohjaimella.
Työn alussa tutkitaan näytönohjainten historiaa, nykyistä markkinatilannetta eri valmistajien ja toimitusmäärien valossa, nykynäytönohjaimen rakennetta sekä kahden johtavan erillisnäytönohjainvalmistajan grafiikkapiirien arkkitehtuuria. Seuraavaksi tutkinnan alla on GPGPU-tekniikka ja työssä tutkitaan, mitä erilaisia käyttökohteita tekniikalla on ja mitä etuja saavutetaan, kun laskentaa siirretään prosessorilta näytönohjaimelle.
Opinnäytetyössä tutkitaan myös tällä hetkellä markkinoilla olevia ohjelmointikirjastoja: CUDAa ja siihen perustuvaa PhysX:ää, OpenCL:ää, DirectComputea, ATI Streamia sekä Havok Physicsiä. Lopussa verrataan suorituskykyä ja tehonkulutusta, kun laskenta suoritetaan pelkästään prosessorilla ja kun laskentaa avustetaan näytönohjaimella.