Neuroverkot sulautetuissa järjestelmissä
Eerola, Teemu (2022)
Eerola, Teemu
2022
Tekniikan ja luonnontieteiden kandidaattiohjelma - Bachelor's Programme in Engineering and Natural 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ä
2022-02-04
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202201141321
https://urn.fi/URN:NBN:fi:tuni-202201141321
Tiivistelmä
Keinotekoisten neuroverkkojen hyödyntäminen koneoppimisongelmien ratkaisussa on yleistynyt tutkimuksessa ja teollisuudessa nopeasti. Niiden avulla saavutettu parannus suorituskyvyssä verrattuna aikaisempiin metodeihin muun muassa konenäön, kielentunnistuksen ja realistisen datan generoinnissa halutaan saada käyttöön myös sovelluksissa, joissa laskentakapasiteetti on rajoittunut. Erityyppiset laitteiston, laskennan ja ohjelmistojen optimointimenetelmät ovat mahdollistaneet neuroverkkojen käytön sulautetuissa järjestelmissä.
Tämän työn tarkoituksena on tutkia erilaisiin tehtäviin tarkoitettuja neuroverkkorakenteita, neuroverkon opetus- ja päättelyvaiheisiin liittyvää laskentaa sekä neuroverkkojen käyttöä sulautetuissa järjestelmissä. Erityisesti keskitytään sulautettujen järjestelmien kannalta keskeiseen neuroverkon päättelyn optimointiin, mutta työssä käsitellään myös suunnittelu- ja opetusvaiheen ratkaisuiden vaikutusta laskentaan. Käytännön kokeiden avulla työssä mitataan neuroverkon arkkitehtuurin valinnan, päättelyn eräkoon ja ohjelmallisten optimointimenetelmien vaikutusta neuroverkon suorituskykyyn päättelyssä. Mittauksia varten toteutettiin kuvanluokittelutehtävään tarkoitetuille neuroverkkomalleille testipenkki, jonka avulla mitattiin mallien päättelyn tarkkuutta, nopeutta sekä käyttömuistin kulutusta. Mittaukset suoritettiin Nvidian Jetson Nano -järjestelmällä, jolla lisäksi tutkittiin laitteiston optimointia neuroverkkolaskentaan.
Työn tulokset osoittavat, että neuroverkkoja on mahdollista käyttää päättelyyn sulautetussa järjestelmässä tehokkaasti ja reaaliaikaisesti. Merkittävää suoritusnopeuden parannusta saavutetaan käyttämällä laitteistona laskennan rinnakkaisuuden mahdollistavia suorittimia, kuten grafiikkaprosessoria. Sopivan neuroverkkoarkkitehtuurin valinnalla saadaan suunnitteluvaiheessa haettua kompromissi vaaditun tarkkuuden ja päättelynopeuden välille. Laitteistosta saatava hyöty voidaan maksimoida käyttämällä laitteistolle sopivaa eräkokoa mahdollisimman suuren rinnakkaisuuden saavuttamiseksi. Lisäksi kvantifiointia eli laskennassa käytettävän tarkkuuden vähentämistä ja käytettävälle laitteistolle laskentaa optimoivan ohjelmallisen optimointityökalun TensorRT:n avulla päättely todettiin noin 5-kertaa nopeammaksi ilman tarkkuuden menettämistä.
Tämän työn tarkoituksena on tutkia erilaisiin tehtäviin tarkoitettuja neuroverkkorakenteita, neuroverkon opetus- ja päättelyvaiheisiin liittyvää laskentaa sekä neuroverkkojen käyttöä sulautetuissa järjestelmissä. Erityisesti keskitytään sulautettujen järjestelmien kannalta keskeiseen neuroverkon päättelyn optimointiin, mutta työssä käsitellään myös suunnittelu- ja opetusvaiheen ratkaisuiden vaikutusta laskentaan. Käytännön kokeiden avulla työssä mitataan neuroverkon arkkitehtuurin valinnan, päättelyn eräkoon ja ohjelmallisten optimointimenetelmien vaikutusta neuroverkon suorituskykyyn päättelyssä. Mittauksia varten toteutettiin kuvanluokittelutehtävään tarkoitetuille neuroverkkomalleille testipenkki, jonka avulla mitattiin mallien päättelyn tarkkuutta, nopeutta sekä käyttömuistin kulutusta. Mittaukset suoritettiin Nvidian Jetson Nano -järjestelmällä, jolla lisäksi tutkittiin laitteiston optimointia neuroverkkolaskentaan.
Työn tulokset osoittavat, että neuroverkkoja on mahdollista käyttää päättelyyn sulautetussa järjestelmässä tehokkaasti ja reaaliaikaisesti. Merkittävää suoritusnopeuden parannusta saavutetaan käyttämällä laitteistona laskennan rinnakkaisuuden mahdollistavia suorittimia, kuten grafiikkaprosessoria. Sopivan neuroverkkoarkkitehtuurin valinnalla saadaan suunnitteluvaiheessa haettua kompromissi vaaditun tarkkuuden ja päättelynopeuden välille. Laitteistosta saatava hyöty voidaan maksimoida käyttämällä laitteistolle sopivaa eräkokoa mahdollisimman suuren rinnakkaisuuden saavuttamiseksi. Lisäksi kvantifiointia eli laskennassa käytettävän tarkkuuden vähentämistä ja käytettävälle laitteistolle laskentaa optimoivan ohjelmallisen optimointityökalun TensorRT:n avulla päättely todettiin noin 5-kertaa nopeammaksi ilman tarkkuuden menettämistä.
Kokoelmat
- Kandidaatintutkielmat [8918]