Pannon Egyetem Informatikai Tudományok Doktori Iskola Emulált-digitális CNN-UM architektúrák vizsgálata: Retina Modell és Celluláris Hullámszámítógép implementációja FPGA-n Doktori (Ph.D.) értekezés tézisei Vörösházi Zsolt Témavezető: Dr. Szolgay Péter MTA doktora Veszprém 2009
Előzmények, célkitűzések 1 I. Előzmények, célkitűzések Napjainkban az analóg és digitális áramköri technika, és gyártási technológia egymás mellett, és egymást kiegészítve rohamosan fejlődik és a fokozatos méretcsökkenés (scaling-down) jellemzi Moore törvényének megfelelően. Valójában azt, hogy melyik technológiát választjuk a nagy számítási teljesítményt igénylő, valós-idejű, szenzor közeli jelfeldolgozási feladatok során, elsősorban a felhasználás módja dönti el. Másrészt a döntést a komplex, nagy integráltsági fokú VLSI áramkörök kritikus és tipikus fizikai paramétereinek figyelembevételével hozhatjuk meg: ilyen a felület (A), a sebesség (S), és a disszipált teljesítmény (P). Az utóbbi években megfigyelhető, hogy mind az analóg, mind pedig a digitális áramköri technológia területén a párhuzamos tömbprocesszálás megvalósítása került előtérbe. Ennek a tervezői szemléletmódnak a követése során azonban az jelentette a problémát, hogy a kutató-fejlesztők többsége egy globálisan összekötött processzor architektúra kidolgozásával kívánta elérni a remélt áttörést, amelynek komplexitása a processzorok számával arányosan, exponenciális mértékben növekedett. A CNN (Celluláris Neurális/Nemlineáris Hálózatok), egy 2D-s síkon elhelyezkedő, analóg működésű nemlineáris számítási egységeket (elemi cellákat - nucleus) tartalmazó, egy-, vagy akár több-rétegű, párhuzamos processzáló tömbként definiálható. Az elemi cellák térben lokálisan összekötött, időben folytonos működésű jelfeldolgozó processzorok. A hálózat programját, a számítási egységek közötti összeköttetéseket meghatározó lokális interakciós erősségek, ún. template-k beállításai jelenti. A számítás eredményét a tömb elemi processzorainak tér-időbeli dinamikája, és a template - mint számító operátor - által együttesen meghatározott analóg tranziens lefutása jelenti. Ha a CNN-hálózat minden egyes elemi celláját lokális analóg/ logikai memória elemmel, lokális vezérlő egységgel és optikai érzékelő bemenettel egészítjük ki, valamint az így kibővített processzáló hálózathoz egy globális vezérlő egységet illesztünk, kapjuk meg a CNN Univerzális Gép (CNN-UM) architektúrát. A CNN- UM Turing értelemben és nemlineáris hálózati operátorként is univerzális. A CNN- UM elemi utasítása komplex, tér-időbeli dinamikus viselkedést ad meg. Ezen újszerű számítási architektúrának manapság már többfajta fizikai megvalósítási formája is létezik. Az elsőként megjelent, CNN-elven működő hardver prototípus eszközök analóg, ill. kevert-jelű (mixed-signal) VLSI chip-eket tartalmaztak. Ezeknek a számítási teljesítménye (~1 TeraOPS 10 12 művelet/sec) ugyan messze felülmúlja minden más digitális processzor teljesítményét, azonban néhány kedvezőtlen tulajdonságuk akadályozza széleskörű ipari alkalmazásuk elterjedését. Itt kell megemlíteni a zajérzékenységüket, átprogramozhatóságra vonatkozó kismértékű flexibilitásukat, valamint a legfontosabb problémaként a limitált analóg pontosságukat (~7 8 bit), amelyek miatt alkalmazásuk számos jelfeldolgozási feladatban nem megfelelő. A legegyszerűbb, legpontosabb, legjobban konfigurálható, de egyben a leglassabb CNN-UM megvalósítást, egy hagyományos mikroszámítógépen futó CNN szoftver
Előzmények, célkitűzések 2 szimulátor alkalmazásával kapunk. Ezt általában a template-k tervezése és optimalizálása során lehet hatékonyan használni, illetve sebességükhöz mint egységnyi számítási teljesítményhez viszonyítunk a különböző CNN-UM architektúrák összehasonlítása és teljesítménybeli mérései során. Alternatív megoldások segítségével a szoftveres CNN szimuláció gyorsítható a mai sokmagos technológiák használatával. Ilyenek például a GPU (grafikus processzor) alapú CNN implementációk, NVidia CUDA, illetve IBM CELL architektúrákon. Az analóg VLSI CNN-UM megvalósítások, ill. a szoftveres szimuláció közötti legjobb kompromisszumot ha a számítási teljesítményt és pontosságot vesszük alapul az emulált-digitális implementáció biztosítja, amelynek manapság több lehetséges megvalósítási formája is létezik. Ilyenek lehetnek az ASIC berendezés orientált áramkörök (pl. CASTLE tömbprocesszor), a DSP digitális jelfeldolgozó processzorok (pl. CNN-HAC prototípus kártya), illetve az FPGA újraprogramozható logikai kaputömbök (pl. FALCON processzor architektúra). Az emulált-digitális módszer alkalmazása esetén az analóg CNN cellahálózat működését időben-, és értékben-diszkretizált modellel közelítjük, és lokálisan csatolt digitális processzáló elemeket kapcsolunk egy tömbbe. A CNN tehát, egy flexibilis és hatékony számítási struktúrát biztosít a természet motiválta rendszerek (pl. a retina) komplex tér-időbeli dinamikai számításainak végrehajtására, az aktivitás-minták akár valós-idejű generálására. A többrétegű CNN retina modell szerkezetének neuromorf jellegű megközelítése a morfológiai és elektro-fiziológiai információk alapján állt össze. A neurobiológiai kutatások jelenlegi állása szerint egy emlős nyúl retinájának kb. 10-12 ganglion csatornája ismert, de további csatornák feltérképezése várható a kutatások módszertanának folyamatos tökéletesítése következtében. Egy-egy ilyen csatorna több (10), egymással összekötött rétegből áll, amelyeken az elemi processzáló elemek (neuronok) nagy számban helyezkednek el. A kibontakozó számítási problémát éppen ezért, a CNN rétegek nagy száma, azok eltérő fizikai-időbeli tulajdonsága, összekötöttsége, valamint a megnövekedett számítási teljesítmény-szükséglet együttesen jelentik. Egy CNN-UM hálózat univerzális alkalmazhatósága a tárolt-programozhatóság elvén alapul, amely feladatot a CNN processzáló tömb mellé rendelt Globális Analogikai Vezérlő Egység (GAPU) mint az elemi CNN cellák vezérlési feladatait biztosító központi egység, illetve az analogikai CNN algoritmusok utasítássorozatainak végrehajtásához elengedhetetlenül szükséges tároló elem látja el. Kutatásaimhoz az FPGA alapú újrakonfigurálható számítási eszközöket választottam mind a neuromorf felépítésű emlős retina modell implementációja, mind pedig az önálló működést biztosító CNN-UM Globális Analogikai Vezérlő egység kidolgozására. A választás oka, hogy a mai modern FPGA-s rendszerek a nagyfokú flexibilitásukkal, nagy számítási teljesítményükkel, és gyors prototípusfejlesztési ezáltal olcsó kihozatali költségükkel igen jó alternatívát teremtenek a komplex téridőbeli, többrétegű CNN dinamikai számítások nagy pontosságú végrehajtásához. Érdemes tehát áttekinteni, hogy a CNN-UM architektúrák különféle megvalósításaiban rejlő hatalmas számítási potenciál mily módon használható fel
Előzmények, célkitűzések 3 egy-egy valós probléma megoldására, különös tekintettel az újrakonfigurálható számítási architektúrák FPGA-alapú megvalósításaira.
Kutatás módszertana 4 II. Kutatás módszertana A disszertáció gerincét a neuromorf felépítésű, több-csatornás emlős retina modell, illetve a Globális Analogikai Vezérlő Egység (GAPU) FPGA-alapú implementációi jelentik. A fejlesztésekhez és a teszt-alkalmazások összeállításához számos szimulációs, és programfejlesztői környezetet (Xilinx ISE - EDK, Celoxica/Agility DK Design Suite, Mentor ModelSim szimulátor, MATLAB), valamint hardver platformot (Celoxica RC203 és RC2000, illetve Xilinx V2PRO és ML506) vettem igénybe. A hardver-szoftver részek együttes tervezése és ellenőrzése (HW-SW co-design / verification) jelentik az újrakonfigurálható, FPGA alapú számítási architektúrák alkalmazásának a manapság oly népszerű implementálási formáját. A feladatrészek partícionálása során azt, hogy mit implementálunk a hardver részben, illetve, hogy mit valósítunk meg a szoftver részen, egyrészt tervezői szemlélet kérdése, másrészt a rendelkezésre álló erőforrások és az elérni kívánt sebesség nagysága határozza meg. Az újrakonfigurálható FPGA architektúrára tervezett aritmetikai egységeken optimalizált DSP műveleteket valósítunk meg a dedikált építőelemek felhasználásával: pl. konvolúciót szorzat-összeg (MAC) számítások segítségével. A napjaink (2009) legnagyobb teljesítményű és kiépítettségű Virtex-6-os FPGA-ján (XC6VSX475T) akár 2016 ilyen szorzó-akkumuláló DSP erőforrás is rendelkezésre áll. Kutatásaim során egyrészt azt vizsgáltam, hogy a természet motiválta, kibontakozó számítási problémát jelentő, a neurobiológusok által megalkotott emlős retina modellt miként lehet implementálni egy FPGA-alapú emulált-digitális CNN-UM környezetben. Jóllehet, léteznek 2-3 CNN réteget kezelni képes, komplex cellákkal rendelkező analóg VLSI CNN-UM eszközök (pl. CACE1K, CACE2K), azonban használatukkal csupán a retina modell csatornáinak külső rétegeit (OPL Outer Plexiform Layer) lehet valós időben modellezni. Éppen ezért esett a választásom az emulált-digitális FPGA megközelítéshez, amelyen egyszerre több különböző, eltérő időállandójú retina csatorna összekötött réteg-szerkezetét is implementálni lehet, a rétegek között akár teljes összeköttetés-hálózatot feltételezve. Célom, hogy a neuromorf, többrétegű, sokcsatornás modell FPGA-alapú implementációja segítségével a neurobiológiai mérésekhez viszonyítva kvalitatív módon elfogadható eredményeket kapjunk, valós-idejű feldolgozási sebesség mellett, azaz nagyságrendekkel gyorsabban, mint a szoftveres szimuláció esetén. (Egy többrétegű retina modell szimulációja egy személyi számítógépen akár több óráig is eltarthat, a modell méretétől és a paraméterek számától függően!) A feladat nehézségét a retina modell rétegeinek nagy száma, és az egyes rétegek időállandóinak különbözősége jelenti. A neuromorf retina modell viselkedését leíró egyenletnek nem létezik egzakt, analitikus megoldása, ezért megvizsgáltam a különféle numerikus integráló formulák (pl. a Forward-Euler módszer, a másod- és negyedrendű Runge- Kutta módszerek) által szolgáltatott eredményeket a kritikus paraméterek szempontjából: időlépés, megvalósítási felület, és sebesség.
Kutatás módszertana 5 A megvalósítás során törekedtem olyan architektúra kidolgozására, amely tetszőlegesen paraméterezhető, és a gyors átprogramozhatóságnak köszönhetően akár különböző fajok eltérő felépítésű retina-modelljeinek ganglion csatornáit, és azok szimultán viselkedését is vizsgálni lehet valós-időben. Az elkészült emulált-digitális CNN-UM architektúra FPGA-alapú implementációja hatékonyan kezeli a retina modell viselkedését leíró komplex tér-időbeli dinamikai számítások végrehajtását. A vizsgálat során fontos szempont volt az is, hogy az alkalmazott fixpontos számítási módszer a különböző retina csatornák esetén milyen pontossággal közelíti a lebegőpontos modell által szolgáltatott eredményeket, illetve hogy megadjam különböző számítási pontosság mellett a retina-modellek felületigényét, és számítási teljesítményét. Az is lényeges kérdés, hogy melyik az a legalacsonyabb digitális számítási pontosság, amelynél még a modell működőképes (mivel a mikrobiológiai mérések szerint egy emlős nyúl retina kb. 6-bites analóg pontossággal rendelkezik). A meghatározó CNN templatek és interakciók beállításai a retina-modell rétegkapcsolatait leíró paraméter táblázatból írhatók fel, a modell működése pedig neurobiológiai méréseken alapul. A template-ket és az algoritmus megoldásokat mind szoftver szimulátoron (személyi számítógépen futtatott ANSI-C programozási nyelven implementálva és optimalizálva), mind pedig FPGA-n megvalósított emulált digitális, többrétegű CNN-UM processzáló elemek (Falcon-MultiLayer) segítségével verifikáltam, összevetve az eredményeket az eredeti mikrobiológiai mérésekkel. Egy másik vizsgált terület - az emulált-digitális CNN-UM megvalósítások között - a Globális Analogikai Vezérlő (GAPU) egység FPGA-alapú implementációja, amely felépítésében és működésében a korábban kidolgozott Falcon architektúrához illeszkedik, és egészíti ki azt egy univerzális celluláris hullámszámítógéppé. Az implementáció során, először egy Xilinx MicroBlaze RISC utasítás készletű softprocesszor magot ágyaztam be a GAPU-ba, kibővítve az analóg (template) CNN művelet értékeinek eltárolásához szükséges memória elemekkel és regiszterekkel. Az aritmetikai-logikai műveletek végrehajtásához egy ún. Vektor Processzáló Elemet terveztem. Majd a globális vezérlőt illesztettem a módosított Falcon tömbprocesszor struktúrához, illetve a Vektor Processzáló Elemekhez. Ezáltal a Falcon processzor nagy számítási teljesítményét egy önálló működésre képes, teljes értékű, valós-idejű képfeldolgozó rendszert alkotva lehet hatékonyan kihasználni. A beágyazott GAPU implementáció segítségével így egyrészt, a komplex analogikai-algoritmusok template sorozatainak futtatására, másrészt az algoritmusok végrehajtásához elengedhetetlenül szükséges programszervező utasítások végrehajtására is lehetőség nyílik, anélkül, hogy az FPGA-ról a személyi számítógépre lépnénk. (Korábban, a GAPU használata nélkül egy-egy utasítás/template vezérlése és betöltése a személyi számítógépről történt, amely több nagyságrendű sebességcsökkenést eredményezett a Falcon processzor teljes feldolgozási idejét tekintve.) Az emulált-digitális CNN-UM GAPU egységének FPGA-alapú megvalósítását a legfőbb kritikus paraméterei, így a sebesség, a számítási pontosság, a disszipált teljesítmény és felület szempontjából is összehasonlítottam a szoftver szimulációs eredményekkel, illetve más a kereskedelemben kapható CNN-UM hardver megvalósításokkal. A javasolt FPGA-alapú CNN-UM rendszer működését tesztek
Kutatás módszertana 6 futtatásával verifikáltam. A teljesítmény teszteket szoftver szimulációs környezetben is megvizsgáltam különböző mikroprocesszoron futtatva, a méréseket pedig többször (50-szer) megismételtem. Ezek közül az elérhető leggyorsabb mikroprocesszor által elért teljesítményt vettem alapul, és hasonlítottam össze más konkurens CNN-UM implementációk teljesítményével. A kutatási munkámat a Pannon Egyetem Képfeldolgozás és Neuroszámítógépek Tanszékének (új nevén Villamosmérnöki és Információs Rendszerek) Celluláris Neurális Hálózatok Alkalmazásai Laboratóriumában végeztem.
Téziscsoportok 7 III. Új tudományos eredmények 1. Téziscsoport: Emlős retina modell implementációja FPGA architektúrán A korábbi, neuromorf struktúrájú emlős (nyúl) retina modellel kapcsolatos kutatások eredményeit felhasználva új egy-, illetve sok-csatornás, többrétegű retina modellt implementáltam emulált-digitális FALCON architektúrán. A feladat megoldása nagy számítás igényű, komplex tér-időbeli probléma megvalósításán alapul. A modellimplementáció valós-idejű feldolgozó képességét három különböző felépítésű FPGAs tesztkörnyezeten is ellenőriztem és teszteltem, úgymint: RC2000, XUPV2P, ML- 506. Kísérletileg igazoltam, hogy mind az egy-, mind pedig a több-csatornás retina modell megvalósítás adott pontosság és időlépés mellett nagyságrendekkel gyorsabb a szoftveres szimulációk eredményeinél, ugyanakkor a programozható FPGA-k segítségével a paraméter beállítás rugalmassága megtartható a szoftver szimulátorokhoz hasonlóan. Ezzel a megvalósítással könnyebben és hatékonyabban kezelhetők akár a különböző felépítésű neuromorf retina modellek, vagy más biológiai rendszerek tanulmányozásához szükséges paraméterek átkonfigurálásból, és beállításból adódó problémák. Kapcsolódó publikációk: [1],[3],[4],[5],[6],[7],[9],[12] 1.1 Tézis: Egy olyan újrakonfigurálható emulált-digitális CNN-UM számítási architektúrát dolgoztam ki (Falcon-ML), amely a CNNalapú, neuromorf felépítésű egy-, illetve sokcsatornás, többrétegű retina modellek FPGA-n történő hatékony implementálására alkalmas. Az Aritmetikai egységet újraterveztem a diffúziós-, Gauss-templatekkel, és Inter/Intra-layer csatolásokkal történő műveletek végrehajtásához. A Template memória egység újratervezésével a többrétegű retina struktúra réteg kapcsolatait meghatározó nagyszámú paraméter egyidejű tárolását biztosítottam. 1.2 Tézis: Mérésekkel igazoltam, hogy a retina modell CNN dinamika számításait végző processzáló elemek összteljesítménye érdemben növelhető a számítási pontosság rovására. Ennek a komplex tér-időbeli számítási problémának a pontos analitikus megoldása hiányában a fixpontos számításaim eredményeit a dupla pontosságú lebegőpontos numerikus megoldáshoz viszonyítottam. Általánosan arra a következtetésre jutottam, hogy különböző retina csatornák esetén a modell implementáció minimálisan 22-bites pontosságtól kezdve ad
Téziscsoportok 8 kvalitatív módon elfogadható eredményt, ha a dupla pontosságú lebegőpontos számításokkal vetjük össze, valamint a neurobiológiai mérésekhez viszonyítunk. Az emlős retina modell (az összes vizsgált, és ismert csatornára) FPGA-n történő megvalósítása esetén 14-bites állapot pontosság alatt a modell kimenetén nem kapunk választ, és legalább 16-18-bites pontosság szükséges ahhoz, hogy a gerjesztésekre kapott válasz mérhető legyen. Ha a retina modell működését leíró CNN dinamikát nagy pontossággal akarjuk megadni, legalább 28-30 bites számítási pontosság beállítása szükséges. 1.3 Tézis: Ekvivalens transzformációkat adtam a kidolgozott egy-, illetve sokcsatornás neuromorf retina modell FPGA-alapú megvalósítására a számítási teljesítmény, a képméret, a rétegek száma, és a pontosság függvényében. Ennek alapján kiválasztható, hogy adott FPGA erőforrások mellett melyek a megvalósíthatóság korlátai. A kidolgozott architektúra sebessége a kvalitatív módon elfogadható 22-bites pontosság esetén 14-szer, vagy akár 1400-szor nagyobb az optimalizált kódot futtató szoftver szimulátor sebességéhez (Intel Core2Dou E8400) viszonyítva. A több-rétegű CNN szimulátort C-ben implementáltam, felhasználva az Intel Képfeldolgozó Könyvtárának optimalizált függvényeit. Egyetlen retina csatorna emulációja esetén minimálisan 10 rétegű összekötött CNN hálózatot kell realizálni, míg minden további retina csatorna emulációja további 7 réteggel növeli a kialakítandó CNN hálózat szerkezetét. Különböző FPGA-s tesztkörnyezeteket alakítottam ki (Virtex-II, Virtex-II Pro, illetve Virtex-5 architektúrákon), és mérésekkel állapítottam meg a maximálisan implementálható, retina-csatornát processzáló Falcon elemek számát, illetve a Virtex-6 FPGA architektúra esetén becslést adtam ezek számát illetően. A dedikált építőelemek számától függően, adott pontosság (22-bit), képméret (64 64, vagy akár 474 474), és időlépés (2-7 ms) mellett 1-48 párhuzamos retina csatorna valós-idejű emulációja biztosított. A nagyobb felbontású képek feldolgozására a külső memória modulok használatával nyílik lehetőség, de ebben az esetben a feldolgozási idő legalább fél legfeljebb 3 nagyságrenddel növekszik a memória I/O sávszélesség korlátjának következtében.
Téziscsoportok 9 2. Téziscsoport: Beágyazott CNN-UM Globális Analogikai Vezérlő Egység, mint Celluláris Hullámszámítógép implementációja FPGA architektúrán Egy Globális Analogikai Programozható Egységet (GAPU) terveztem FPGA-alapú emulált-digitális CNN-UM architektúrára, amely segítségével egy funkcionálisan teljes Celluláris Hullámszámítógép architektúrához jutunk. A korábban kidolgozott konfigurálható Falcon processzáló CNN architektúrát kibővítettem és Falcon Processzáló Elem (FPE) néven definiáltam: a lokális Vezérlő Egységét teljesen újraterveztem, és optimalizáltam a GAPU-val történő kommunikációhoz. A kidolgozott GAPU architektúra képes kezelni a komplex analogikai CNN algoritmusok vezérlésátadó utasításait, valamint aritmetikai-logikai műveletek, illetve template műveletek sorozatainak futtatását biztosítja. Az aritmetikai-logikai műveletek végrehajtásához egy Vektor Processzáló Elemet terveztem, VPE néven. Végül az így kapott VPE, és FPE egységeket tartalmazó processzáló tömböt integráltam a kidolgozott GAPU vezérlővel. A beágyazott GAPU működését és hatékonyságát példán keresztül demonstráltam, egy komplex skeletonizációs analogikai CNN algoritmus futtatásával. Az autonóm rendszer valós-idejű képfeldolgozó képességét különböző fejlesztő kártyákon is ellenőriztem és teszteltem. Kísérletileg igazoltam, hogy a legnagyobb FPGA áramkörön legalább kétnagyságrendű teljesítménynövekedés érhető el a szoftver szimulátorokhoz képest, míg néhányszoros sebesség növekedést biztosít a konkurens analóg VLSI CNN-UM megvalósításokhoz képest. Kapcsolódó publikációk: [2],[8],[10],[11] 2.1 Tézis: Kidolgoztam és megvalósítottam egy emulált-digitális CNN- UM GAPU architektúrát, mint egy Celluláris Hullámszámítógépet FPGA áramkörre, beágyazott MicroBlaze szoft-processzor mag integrálásával az analogikai CNN algoritmusok szekvenciális és programszervező utasításainak vezérléséhez. Továbbá kísérletileg igazoltam, hogy a javasolt GAPU implementáció használatával a komplex analogikai CNN algoritmusok futtatása nagyságrendekkel gyorsítható. Az újrakonfigurálható emulált-digitális CNN-UM processzor architektúrát (FALCON) felhasználva egy olyan új számítási architektúrát hoztam létre FPE néven, amely a GAPU-val való kommunikációhoz lett optimalizálva. A Falcon architektúra Lokális Vezérlő egységét teljesen újraterveztem. Az aritmetikai és logikai műveletek végrehajtására egy új Vektor Processzáló Elemet terveztem, VPE néven, amely a műveletekhez az FPGA dedikált erőforrásait használja. Az FPE, illetve VPE egységekből alkotott processzáló tömböt végül a GAPU implementációval integráltam.
Téziscsoportok 10 A korábbi megoldásoknál, a GAPU alkalmazása nélkül a teljes feldolgozási időszükségletet a személyi számítógép és az FPGA közötti kommunikációs idő döntően befolyásolja, amely a template sorozatok, és képek betöltéséhez, valamint a programszervező utasítások (elágazás, ciklus stb.) feltöltéséhez szükséges az algoritmus minden egyes végrehajtási lépésében. Ezt a feldolgozási időt csökkentettem azáltal, hogy a GAPU a CNN iterációk kiszámításához szükséges paramétereket és utasításokat is eltárolja, hasonlóan az eredeti CNN-UM architektúrához. A beágyazott GAPU használatával az FPE-k közvetlenül kommunikálnak a nagysebességű PLB buszon keresztül a MicroBlaze maggal. Ezáltal a FPE-k hatékony kihasználtsága (a teljes számítási idő 91%-ában) biztosított. 2.2 Tézis: Megmutattam, hogy az újrakonfigurálható emulált-digitális CNN-UM rendszer FPE, VPE és GAPU egységének FPGA-n történő integrálása és megvalósítása a 16-bites pontosság esetén biztosítja a legoptimálisabb erőforrás kihasználtságot, így az implementálható Falcon és Vektor Processzáló Elemek száma a legnagyobb. A 18-bites állapot pontosság a dedikált szorzó (MULT18 18), illetve a belső blokk-memória erőforrások (BRAM18k) bitszélességéhez illeszkedik a legjobban. Azonban, a Xilix MicroBlaze mag beágyazásával a támogatott nagysebességű kommunikációs busz (PLB) 128-bites bitszélességgel definiálható (16-bit többszöröse), ezért az FPE-k, ill. VPE-k tényleges számítási pontosságát 16- biten optimális beállítani. A javasolt GAPU implementáció a beágyazott Xilinx MicroBlaze IP maggal integrálva az FPGA-n rendelkezésre álló logikai és dedikált erőforrásoknak csak egy kis részét foglalja el, amely szignifikáns módon nem csökkenti az egy chipen megvalósítható Falcon és Vektor Processzáló Elemek számát, ezáltal a rendszer számítási összteljesítményét sem. 2.3 Tézis: Kísérletileg igazoltam, hogy a kidolgozott FPGA-alapú emulált-digitális CNN-UM GAPU implementáció számítási teljesítménye nagyságrendekkel nagyobb a szoftver szimulátorhoz képest, illetve megközelíti, vagy akár meg is haladja a konkurens analóg VLSI CNN-UM megvalósítások teljesítményét, a választott FPGA-tól függően. Az így megvalósuló számítási teljesítményt a választott képméret, a megoldás pontossága, valamint a rendelkezésre álló dedikált memória erőforrások száma együttesen határozzák meg. A beágyazott GAPU architektúrát különböző FPGA-s tesztkörnyezeteken alakítottam ki (Virtex-II, Virtex-II Pro, illetve Virtex-5 architektúrákon), és mérésekkel állapítottam meg a számítási teljesítményüket, illetve a Virtex-6
Téziscsoportok 11 FPGA architektúra esetén becslést adtam az elérhető maximális teljesítményt illetően. A mérésekhez a szkeletonizációs algoritmust választottam, 3 3-as templatek-kel, és 10 Forward Euler iterációt beállítva, 128 128-as, illetve 512 512-es méretű képeken futtatva, 16-bites állapot pontosságot, és 8-bites template pontosságot feltételezve. A dedikált építőelemek számától függően a kidolgozott, GAPU-val integrált Falcon tömbprocesszor architektúra sebessége elérheti az 1.33 milliárd vagy legfeljebb 135 milliárd CNN cellaiteráció/másodpercet. A választott képmérettől függően (128 128, vagy 512 512) akár 3-150-szeres sebesség növekedés érhető el egy Intel Core2Duo E8400 mikroprocesszoron futó optimalizált szoftver szimulátorhoz képest. A GAPU implementáció a választott FPGA-tól (dedikált erőforrások számától) függően megközelíti, vagy akár 1-nagyságrenddel meghaladja (Virtex-6 esetén) az analóg ASIC VLSI CNN-UM megvalósítások (ACE16K, Q-Eye) sebességét.
Eredmények lehetséges alkalmazási területei 12 IV. Eredmények lehetséges alkalmazási területei Korábban lehetőségem nyílt bekapcsolódni egy emulált-digitális CNN-UM tömbprocesszor (CASTLE) tervezésébe és az elkészült chip tesztelési folyamatába, amelyet az MTA-SZTAKI Analogikai és Neurális Számítások laboratóriumában végeztem. A CASTLE tömbprocesszor globális időzítő-vezérlő egységének fejlesztésekor, az emulált-digitális architektúra kiépítésében biztos magas-szintű hardver leírónyelv ismeretre sikerült szert tennem, amelyet az FPGA-alapú CNN-UM rendszer GAPU vezérlőjének implementációja során kamatoztatni tudtam. Szemben az ASIC VLSI technológia hosszadalmas, full-custom (teljesen egyedi) tervezési metodikájával, magas tervezési költségével, és rugalmatlanságával, a sokkal flexibilisebb, alacsonyabb költségű, újrakonfigurálható számítási architektúrák (FPGA-k) emulált-digitális CNN-UM rendszerként való alkalmazásának, fejlesztésének, és kutatásának irányába fordultam. A disszertációban, a vizsgálat tárgyát képező emulált-digitális CNN-UM architektúrák újrakonfigurálható számítási architektúrán (FPGA-n) történő megvalósításának felhasználási módjai, valamint az elért eredmények alkalmazási területei a következők lehetnek: Egyrészt a neuromorf felépítésű, többrétegű, sokcsatornás retina modellek analízise, illetve a természet motiválta biológiai rendszerek megvalósítása történhet FPGA-n, ahol a nagy számításigényű feldolgozási képesség elengedhetetlen. Ezt az egyszerű felépítésű, lokálisan kapcsolt processzáló elemek kiépítésével, és egy tömbbe való integrálásával értem el. Továbbá, a gyors újrakonfigurálhatóság képességét szem előtt tartva, ez a megvalósítás segíthet a különböző, eltérő felépítésű retina modellek viselkedésének valós-idejű vizsgálatában, a szimulációs környezeteknél nagyságrendekkel gyorsabban. Az általam javasolt implementáció segítheti annak megértését, és meghatározását, hogy milyen összefüggés van egy adott retina csatornához tartozó receptív mező környezetének stimulálása és a retina kimenetén rögzített impulzus (spike) adatok között. Az FPGA-n történő futtatások adatait összehasonlítva a retina modell neurobiológusok által mért eredményeivel, a modell jósága vizsgálható, és az eltérések ismeretében pontosítani, finomítani lehet a neuromorf retina modell paramétereit és szerkezetét. A megfelelően beállított retina-modell segítségével FPGA-n egy olyan intelligens látórendszer alakítható ki, amely újszerű, hatékonyabb objektum-felismerést, követést, illetve osztályozást tesz lehetővé, például megfigyelő vagy felderítő alkalmazásokban. A másik emulált-digitális CNN-UM megvalósítás a beágyazott processzor magot tartalmazó GAPU vezérlő, amelyet a korábban kidolgozott Falcon tömbprocesszor architektúrával kibővítve egy teljes értékű, önálló működésű képfeldolgozó rendszert kapunk. Ennek segítségével lehetőség nyílik, a komplex, analogikai CNN algoritmusok valós-idejű futtatására: template-k, illetve template-sorozatok
Eredmények lehetséges alkalmazási területei 13 használatára, aritmetikai és logikai műveletek végrehajtására, valamint ciklusszervező utasítások kezelésére, mindezt egyetlen FPGA-alapú rendszeren. A GAPU implementációhoz a korábban kidolgozott emulált-digitális Falcon processzor egyrétegű (Falcon-SL), a retina modellben is ismertetett többrétegű (Falcon-ML), vagy akár a nem-lineáris templatek-et futtató (Falcon NonLinear) változata is könnyen integrálható Ezáltal az alkalmazási területek spektruma tovább bővül, a komplex képfeldolgozó rendszerek, illetve a már meglévő rendszereknél költséghatékonyabb, intelligens képfeldolgozó rendszerek megvalósításának irányába.
Publikációs tevékenység 14 IV. Publikációs tevékenység Nemzetközi folyóiratok [1] Nagy Z., Vörösházi Zs., Szolgay P. Emulated Digital CNN-UM Solution of Partial Differential Equations International Journal of Circuit Theory and Applications, Wiley, Vol. 34: Special Issue : Special Issue on CNN Technology (Part 2), July-Aug. 2006. pp. 445-470 (IF: 0.686 2006), ISSN: 0098-9886 [2] Vörösházi Zs., Kiss A., Nagy Z., Szolgay P. Implementation of embedded emulated-digital CNN-UM Global Analogic Programming Unit on FPGA and its application International Journal of Circuit Theory and Applications, Wiley, Vol. 36: Special Issue: Cellular Wave Computing Architecture, July-Sep. 2008. pp. 589-603 (IF: 2.389 2008), ISSN: 0098-9886 [3] Vörösházi Zs., Nagy Z., Szolgay P. FPGA-based Real Time, Multichannel Emulated-Digital Retina Model Implementation EURASIP Journal on Advances in Signal Processing, Hindawi, Vol. 2009, Special Issue on CNN Technology for Spatiotemporal Signal Processing, Vol. 2009 (IF: 1.055 2008), ISSN: 1687-6172 (doi:10.1155/2009/749838) Konferencia kiadványok [4] Nagy Z., Vörösházi Zs., Szolgay P. An Emulated Digital Retina Model implementation on FPGA. CNNA 2005 9 th IEEE International Workshop on Cellular Neural Networks and their Applications, Hsinchu, Taiwan, 2005. május 28-30., pp. 278-281. [5] Nagy Z., Vörösházi Zs., Szolgay P. Mammalian Retina Model Implementation on Emulated Digital FPGA HACIPPR 2005 5 th Joint Hungarian-Austrian Conference on Image Processing and Pattern Recognition, Veszprém, Hungary, 2005. május 11-13., pp. 295-302. [6] Vörösházi Zs., Nagy Z., Szolgay P. An Advanced emulated digital Retina Model on FPGA to implement a real-time test environment ISCAS 2006 IEEE International Symposium on Circuits and Systems, Kos, Greece, 2006. május 21-24. pp. 278-281.
Publikációs tevékenység 15 [7] Szolgay P., Kocsárdi S., Nagy Z., Sonkoly P., Vörösházi Zs. Complex Computational Problems in Cellular Architectures RSEE 2006, Oradea, Romania, 2006. június 8-10, pp. 111-115. [8] Vörösházi Zs., Kiss A., Nagy Z., Szolgay P., An embedded CNN-UM Global Analogic Programming Unit implementation on FPGA CNNA 2006-10 th IEEE International Workshop on Cellular Neural Networks and their Applications, Istanbul, Turkey, 2006. augusztus 28-30., pp. 318-322. [9] Nagy Z., Vörösházi Zs., Szolgay P. A Real-time Mammalian Retina Model Implementation on FPGA CNNA 2006-10 th IEEE International Workshop on Cellular Neural Networks and their Applications, Istanbul, Turkey, 2006. augusztus 28-30. (demo) [10] Vörösházi Zs., Kiss A., Nagy Z., Szolgay P.: FPGA Based Emulated-Digital CNN-UM Implementation with GAPU CNNA 2008 11 th IEEE International Workshop on Cellular Neural Networks and their Applications, Santiago de Compostela, Spain, 2008. július 14-16., pp. 175-180 [11] Vörösházi Zs., Kiss A., Nagy Z., Szolgay P.: A Standalone FPGA Based Emulated-Digital CNN-UM System CNNA 2008 11 th IEEE International Workshop on Cellular Neural Networks and their Applications, Santiago de Compostela, Spain, 2008. július 14-16. (demo) pp. 4. [12] Vörösházi Zs., Nagy Z., Szolgay P. An Advanced Real-Time, Multi-Channel Emulated-Digital Retina Model Implementation on FPGA CNNA 2008 11 th IEEE International Workshop on Cellular Neural Networks and their Applications, Santiago de Compostela, Spain, 2008 július 14-16. (demo) pp. 6.