Tieteellisen laskennan tehostaminen grafiikkaprosessorin avulla
Elonen, Emil (2021)
Elonen, Emil
2021
Teknisten tieteiden kandidaattiohjelma - Bachelor's Programme in Engineering Sciences
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-04-26
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202104122907
https://urn.fi/URN:NBN:fi:tuni-202104122907
Tiivistelmä
Tietokoneiden laskentatehon jatkuva kasvaminen viime vuosikymmenien aikana on mahdollistanut tieteellisen laskennan kehittymisen aikaisempaa monimutkaisemmaksi, laajemmaksi sekä laskennallisesti vaativammaksi. Suurten datamäärien prosessoinnissa kyetään nopeampien ja tehokkaampien prosessorien lisäksi hyödyntämään yhä enemmän rinnakkaislaskentaa, sillä monissa tapauksissa tiedon eri osia pystytään prosessoimaan samanaikaisesti erillään toisistaan. Tämän myötä grafiikkaprosessoreiden hyödyntäminen on yleistynyt vahvasti useilla tietokonelaskennan eri osa-alueilla, mikä on edistänyt rinnakkaiseen prosessointiin liittyvien teknologioiden kehittämistä sekä fyysisten komponenttien että ohjelmistojen suhteen.
Tämän työn tarkoituksena on tutkia mitä käyttökohteita grafiikkaprosessoreiden hyödyntämiselle on, minkälaisia teknologioita ja ratkaisuja aiheeseen liittyen on saatavilla sekä miten rinnakkaisprosessointia on järkevää hyödyntää, jotta laskentaa saataisiin tehostettua. Työn ensimmäisessä osiossa selvitetään aiheen taustaa, grafiikkaprosessoreiden historiaa ja toimintaperiaatteita sekä esitellään moderneja mikroarkkitehtuureja ja ohjelmistorajapintoja kirjallisuuden perusteella. Lisäksi käydään läpi suurimmat haasteet ja ongelmat grafiikkaprosessoreiden käyttöön ja kehitykseen liittyen. Tämän jälkeen verrataan käytännön testien avulla keskusprosessin sarjamaisen ja grafiikkaprosessorin rinnakkaisen laskennan suoritusaikoja erilaisille algoritmeille, jotta saataisiin käsitys mahdollisista suorituskykyparannuksista, joita todellisuudessa voidaan saavuttaa.
Työn tuloksista voidaan nähdä, että hyvin rinnakkaiseen suorittamiseen soveltuvissa prosesseissa voidaan grafiikkaprosessoria hyödyntämällä saada aikaan merkittäviä parannuksia suoritusajoissa. Vaikka testit suoritettiin suhteellisen pienikokoisella, energiatehokkaalla sekä edullisella tietokonejärjestelmällä, onnistuttiin suoritusaikoja pienentämään parhaimmillaan yli 90 %. Vaikka kyseiset tulokset eivät sellaisenaan ole yleistettävissä muihin tietokonejärjestelmiin, antavat ne hyvän vertailuarvon yleisten suorituskykyparannuksien mahdollisesta suuruusluokasta. Lisäksi testituloksissa on huomionarvoista se, että grafiikkaprosessorin implementointi sisältää ylimääräisiä operaatioita käytettävän ohjelmointirajapinnan sekä ylimääräisen tietoliikenteen suhteen, eli niin sanotun overheadin. Tämä on syytä tiedostaa laskentakonfiguraatiota suunnitellessa, sillä etenkin laskentavolyymin ollessa pieni saattaa prosessoinnin suorittaminen suoraan keskusprosessorilla olla tehokkaampaa kuin erillisen grafiikkaprosessorin käyttö.
Tämän työn tarkoituksena on tutkia mitä käyttökohteita grafiikkaprosessoreiden hyödyntämiselle on, minkälaisia teknologioita ja ratkaisuja aiheeseen liittyen on saatavilla sekä miten rinnakkaisprosessointia on järkevää hyödyntää, jotta laskentaa saataisiin tehostettua. Työn ensimmäisessä osiossa selvitetään aiheen taustaa, grafiikkaprosessoreiden historiaa ja toimintaperiaatteita sekä esitellään moderneja mikroarkkitehtuureja ja ohjelmistorajapintoja kirjallisuuden perusteella. Lisäksi käydään läpi suurimmat haasteet ja ongelmat grafiikkaprosessoreiden käyttöön ja kehitykseen liittyen. Tämän jälkeen verrataan käytännön testien avulla keskusprosessin sarjamaisen ja grafiikkaprosessorin rinnakkaisen laskennan suoritusaikoja erilaisille algoritmeille, jotta saataisiin käsitys mahdollisista suorituskykyparannuksista, joita todellisuudessa voidaan saavuttaa.
Työn tuloksista voidaan nähdä, että hyvin rinnakkaiseen suorittamiseen soveltuvissa prosesseissa voidaan grafiikkaprosessoria hyödyntämällä saada aikaan merkittäviä parannuksia suoritusajoissa. Vaikka testit suoritettiin suhteellisen pienikokoisella, energiatehokkaalla sekä edullisella tietokonejärjestelmällä, onnistuttiin suoritusaikoja pienentämään parhaimmillaan yli 90 %. Vaikka kyseiset tulokset eivät sellaisenaan ole yleistettävissä muihin tietokonejärjestelmiin, antavat ne hyvän vertailuarvon yleisten suorituskykyparannuksien mahdollisesta suuruusluokasta. Lisäksi testituloksissa on huomionarvoista se, että grafiikkaprosessorin implementointi sisältää ylimääräisiä operaatioita käytettävän ohjelmointirajapinnan sekä ylimääräisen tietoliikenteen suhteen, eli niin sanotun overheadin. Tämä on syytä tiedostaa laskentakonfiguraatiota suunnitellessa, sillä etenkin laskentavolyymin ollessa pieni saattaa prosessoinnin suorittaminen suoraan keskusprosessorilla olla tehokkaampaa kuin erillisen grafiikkaprosessorin käyttö.
Kokoelmat
- Kandidaatintutkielmat [9204]