keskiviikko 9. huhtikuuta 2014

Signaaliprosessorit ja GPU

Tämänpäiväisellä luennolla käsiteltiin kappale signaaliprosessoreista. Tärkeimmät syyt niiden käyttöön ovat yksinkertaisuus, halvempi hinta sekä pienempi virrankulutus. Kuitenkin niistä saa riittävästi tehoa signaalinkäsittelyn tarpeisiin, koska alan tarvitsemat operaatiot ovat nopeita (kertolasku, yhteenlasku). Esimerkiksi FIR-suodatuksen tai kompressiossa käytettävän kaksiulotteisen DCT:n tarvitsemat kertolaskut ja yhteenlaskut voidaan pistetuloina laskea rinnakkain ns. MAC-operaation avulla. Vastaavia operaatioita on nykyisin myös tavallisissa prosessoreissa, ja ensimmäinen tällainen laajennus oli Intelin MMX-käskykanta vuodelta 1997.

Ensi viikon viikkoharjoituksissa koodataan FIR-suodin luokan TC303 signaaliprosessoreille. Olennaisimmat vaiheet olivat:
  1. Suodin suunniteltiin Matlabin fir1-rutiinilla.
  2. Kertoimet kopioitiin C-koodiin.
  3. C-kieliseen pohjaan kirjoitettiin for-silmukka, jossa kertoimet käydään läpi.
  4. Ulostulonäyte kirjoitetaan D/A-muuntimelle.
Vaiheessa 3 on kiinnitettävä huomiota circular buffering-tekniikkaan, jotta viitataan oikeisiin aiemmin sisään tulleisiin alkioihin.
Toisen tunnin loppupuolella luotiin katsaus GPU-laskentaan ja sen sovelluksiin koneoppimisessa. Esimerkkinä oli 1.2 miljoonan kuvan luokittelu tuhanteen luokkaan ns. konvoluutioverkolla. Tämä voidaan toteuttaa omalla koneellakin käyttäen pylearn2-pakettia.

Ei kommentteja:

Lähetä kommentti