Korlátozott Boltzmann gép fejlesztése OpenCL alapokon

OData támogatás
Konzulens:
Prekopcsák Zoltán
Távközlési és Médiainformatikai Tanszék

A 2000-es évek közepe óta a mesterséges neurális hálók egyre népszerűbbek lettek. Manapság az úgynevezett deep learning az egyik legnépszerűbb algoritmus képfelismeréshez, beszédfelismeréshez vagy üzleti problémákhoz. Ehhez a trendhez leginkább a jobb algoritmusok, a többszálú programozás és a nagyszámú adat járult hozzá leginkább.

Manapság a legtöbb program CPU-t használ komplex számolási feladatok megoldásához, de a GPGPU megoldások is egyre népszerűbbek. A GPU-k egyik legnagyobb előnye hogy nagyobb számítási teljesítmény mellé alacsony fogyasztás is társul, ezért akár mobil eszközökre is kiváló megoldást jelenthetnek.

A tradicionális programozási nyelvek még nem támogatják kellőképpen ezeket az eszközöket, mint számítási egységet, ezért szükségünk van egy másik megoldásra. A GPGPU programozáshoz az egyik legnépszerűbb programozási API az OpenCL.

Az egyik legnagyobb előnye az OpenCL-nek, hogy ugyanazt a kódot többféle támogatott eszközön is futtathatjuk akár egyszerre is. A tradicionális programozási nyelvek között a Java-nak vannak hasonló tulajdonságai: „Írd meg egyszer futtasd mindenhol”.

Ebben a dolgozatban kombináltam ezt a két nyelvet: a Java-t használtam, mint host kód és az OpenCL-t a grafikus eszközök futtatásához, azaz mint kernel kód. A célom a dolgozatban egy speciális neurális háló, a Korlátozott Boltzmann gép implementálása JavaCL segítségével.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.