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 CNNUM Turing értelemben és nemlineáris hálózati operátorként is univerzális. A CNNUM 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 – 1012 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ű RungeKutta 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: architektúrán
Emlős
retina
modell
implementációja
FPGA
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, ML506. 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-7ms) mellett 148 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 CNNUM 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 16biten 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. 589603 (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 – 9th IEEE International Workshop on Cellular Neural Networks and their Applications, Hsinchu, Taiwan, 2005. május 2830., pp. 278-281. [5] Nagy Z., Vörösházi Zs., Szolgay P. “Mammalian Retina Model Implementation on Emulated Digital FPGA” HACIPPR 2005 – 5th 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 - 10th 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 - 10th 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 – 11th 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 – 11th 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 – 11th IEEE International Workshop on Cellular Neural Networks and their Applications, Santiago de Compostela, Spain, 2008 július 14-16. (demo) pp. 6.