Akcelerátor pro KSOM

Podobné dokumenty
Algoritmy a struktury neuropočítačů ASN - P14. Neuropočítače

Implementace KSOM. Marek Bártů. LANNA Katedra teorie obvodů FEL ČVUT.

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Algoritmy a struktury neuropočítačů ASN - P11

Paměťový podsystém počítače

Pohled do nitra mikroprocesoru Josef Horálek

REKONFIGURACE FPGA. Božetěchova 1/2, Brno.

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Disková pole (RAID) 1

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Návrh. číslicových obvodů

Disková pole (RAID) 1

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Struktura a architektura počítačů (BI-SAP) 11

FPGA + mikroprocesorové jádro:

Direct Digital Synthesis (DDS)

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Profilová část maturitní zkoušky 2014/2015

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY. MRBT Robotika

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Algoritmy a struktury neuropočítačů ASN - P10. Aplikace UNS v biomedicíně

Principy komunikace s adaptéry periferních zařízení (PZ)

Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA

OPS Paralelní systémy, seznam pojmů, klasifikace

5. Umělé neuronové sítě. Neuronové sítě

Příklady popisu základních obvodů ve VHDL

Přerušovací systém s prioritním řetězem

Operace ALU. INP 2008 FIT VUT v Brně

Algoritmy a struktury neuropočítačů ASN P3

Využití neuronové sítě pro identifikaci realného systému

Architektury počítačů

Samoučící se neuronová síť - SOM, Kohonenovy mapy

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Architektury CISC a RISC, uplatnění v personálních počítačích

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu

Počítač jako prostředek řízení. Struktura a organizace počítače

Architektura počítačů

OSA. maximalizace minimalizace 1/22

Náplň. v Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Studium závislosti výpočetního času algoritmu GPC prediktivního řízení na volbě typu popisu matematického modelu v regulátoru

Počítač jako elektronické, Číslicové zařízení

Řízení IO přenosů DMA řadičem

MSP 430F1611. Jiří Kašpar. Charakteristika

xrays optimalizační nástroj

FVZ K13138-TACR-V004-G-TRIGGER_BOX

Princip funkce počítače

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )

Profilová část maturitní zkoušky 2015/2016

Mezipaměti počítače. L2 cache. L3 cache

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Historie počítačů. 0.generace. (prototypy)

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

NG C Implementace plně rekurentní

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

SYSTÉMY NAČIPU MI-SOC

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

Architektura počítače

4. Úvod do paralelismu, metody paralelizace

Systémy pro měření, diagnostiku a testování prototypů II. Odůvodnění vymezení technických podmínek podle 156 odst. 1 písm. c) ZVZ

Z čeho se sběrnice skládá?

Principy počítačů I Netradiční stroje

Hardwarové zpracování obrazu

ANALÝZA A ZPRACOVÁNÍ ŘEČOVÝCH A BIOLOGICKÝCH SIGNÁLŮ SBORNÍK PRACÍ 2006

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Pokročilé architektury počítačů

Cíle. Teoretický úvod

Vstupně výstupní moduly. 13.přednáška

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Architektura počítačů

Rozvrhování výroby. František Koblasa Technická univerzita v Liberci. TU v Liberci

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Trénování sítě pomocí učení s učitelem

C2115 Praktický úvod do superpočítání

DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH

Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc

Metody připojování periferií

LOKALIZACE ZDROJŮ AE NEURONOVÝMI SÍTĚMI NEZÁVISLE NA ZMĚNÁCH MATERIÁLU A MĚŘÍTKA

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D.

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Architektura Intel Atom

Zprovoznění kitu Xilinx Spartan-6 FPGA Industrial Video Processing Kit

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

VYHLEDÁNÍ NEJDELŠÍHO SHODNÉHO PREFIXU V FPGA

Programování v jazyce C a C++

Umělé neuronové sítě

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Sekvenční logické obvody

Struktura a architektura počítačů (BI-SAP) 10

Řízení pohybu stanice v simulačním prostředí OPNET Modeler podle mapového podkladu

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

5. A/Č převodník s postupnou aproximací

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Transkript:

Akcelerátor pro KSOM Marek Bártů České vysoké učení v Praze, Fakulta elektrotechnická bartum1@fel.cvut.cz Abstrakt: In this work we are describing hardware implementation of Kohonen Self-Organizing Map. We examined existing neurocomputers and decided to work out our own neurocomputer with a different, more suitable architecture. Our neurocomputer is being realized on FPGA (Field-Programmable Gate Array). In this article we are describing basic neurocomputer unit structure as well as linkage of these elements into neurocomputer and units participation on computation process. 1. Úvod Při zpracování řeči lze využít metody založené na aplikacích umělých neuronových sítí. Jedním z typů umělých neuronových sítí (UNS) jsou KSOM. Jsou to UNS učící se bez učitele (viz [5]). KSOM jsou vhodnou alternativou ke klasickým metodám, a to zvláště v případech, kdy pracujeme se zašuměnými nebo nekompletními daty. KSOM lze s výhodou požít, mimo jiné, v úlohách vizualizace dat. KSOM mají schopnost konvertovat nelineární statistické vztahy mezi vícedimenzionálními daty do jednoduchých geometrických vztahů jejich obrazů v obvykle tří či dvourozměrném prostoru. Na našem pracovišti používáme KSOM ke klasifikaci a vizualizaci dat. Podstatnou nevýhodou KSOM je, tak jako u ostatních typů neuronových sítí, náročnost na výpočetní výkon. Pro reálné využití je výkonnost KSOM realizovaných na osobním počítači obvykle nedostatečná, proto se snažíme zkonstruovat akcelerátor - neuropočítač, který by umožnil vlastní výpočet výrazně zrychlit. Naším cílem je vyvinout neuropočítač, který by umožnil maximálně využít výhod hradlových polí - FPGA (Field Programmable Gate Array). Tím míníme možnosti integrace do autonomního systému a rekonfigurovatelnost (využíti prostředků FPGA i pro další úlohy spojené s příslušnou úlohou). Dalším požadavkem je možnost přizpůsobit neuropočítač konkrétnímu typu dat a dosáhnout zrychlení výpočtů. Posledním požadavkem na navrhovaný systém je možnost realizovat neuropočítač na komerčně dostupné vývojové desce s FPGA. 2. Problémy spojené s implementací KSOM Při hardwarové implementaci KSOM je důležitým faktorem konečná délka slova v realizovaném systému. Dostatečný počet bitů datového slova - délka slova - má zásadní vliv na rychlost konvergence sítě realizované neuropočítačem. Pokud je délka slova nižší než jistá kritická mez, dochází k divergenci sítě. Zároveň se zvyšujícím se počtem bitů stoupá složitost a nároky na hardware. To ovlivňuje vlastní výkonnost neuropočítače. Výsledná délka slova je tedy kompromisem mezi požadavky na rychlost konvergence sítě a hardwarovými nároky. Minimální délka slova pro konvergenci sítě záleží na distribuční funkci vstupních vektorů. Není možné vytvořit analytický popis pro obecný případ, a proto jsme při zjišťování optimální délky slova pro konkrétní úlohu odkázáni na simulace prováděné na reprezentativním vzorku vstupních dat. Při bližším rozboru v [1] se ukázalo že na vhodnou volbu délky slova jsou nejnáročnější synaptické váhy a funkce okolí neuronu.

Pro snazší implementaci byl algoritmus KSOM zjednodušen. Realizovaná zjednodušení nemají vliv na konvergenci algoritmu, to bylo již prokázáno v existujících akcelerátorech [2], [3]. Uvažujeme hlavně zjednodušení výpočtu vzdálenosti vstupního vektoru, funkce okolí neuronu a realizace učícího faktoru. Pro výpočet vzdálenosti je použita bloková vzdálenost (2) místo eukleidovské. Použití blokové vzdálenosti částečně zpomalí konvergenci, ale přináší výrazné úspory v implementaci nemusíme realizovat násobičku a odmocninu. 3. Akcelerátor V d= x i m i (1) i =1 Akcelerátor je tvořen zřetězením jednotek realizujících funkce neuronu (na obrázcích značených N) doplněných jednotkami realizujícími komparátory (označeno K). Akcelerátor lze tedy jednoduše přizpůsobit konkrétní aplikaci, potřebné velikosti sítě, požadované rychlosti a použitému hardware. Každé jednotce je přiřazena logická adresa, takže "sousedství" neuronů je respektováno bez ohledu na fyzické uspořádání jednotek. Na následujících obrázcích je znázorněn návrh několika možných realizací. Obrázek 1: Realizace akcelerátoru zřetězením jednotek Na Obrázku 1 je neuronová síť tvořená zřetězením jednotek - neuronů. Toto uspořádání neuronů nevyžaduje použití podpůrných jednotek komparátorů. Příklad je pouze ilustrativní, takto realizovaný akcelerátor by měl velmi pomalou odezvu (úměrnou počtu neuronů) a toto uspořádání není vhodné pro praktickou realizaci. Mnohem výhodnější je realizace zobrazená na Obrázku 2. Na obrázku 2 je znázorněna realizace akcelerátoru řazením neuronů do paralelních větví zakončených stromem komparátorů. Popis komparátoru je uveden dále v textu. Výhodou tohoto uspořádání je mnohem rychlejší odezva než v předchozím případě. Odezva bude rovna pouze počtu neuronů ve v nejdelší větvi a hloubce stromu komparátorů.

Obrázek 2: Realizace akcelerátoru řazením neuronů do paralelních větví Vhodným uspořádáním neuronů a komparátorů je možné realizovat strukturu na Obrázku 3. Tato struktura vychází přímo z původního algoritmu KSOM. V místě spojení větví je zařazen komparátor a v místě spojování cest v prostředním neuronu je dvojstupňový "strom" komparátorů. Data do struktury vcházejí z vnějšího okraje struktury a výsledek (vítěz) je nalezen po průchodu strukturou komparátorů uprostřed. Obrázek 3: Přirozená struktura KSOM Akcelerátor lze realizovat samostatně, je třeba pouze doplnit další podpůrné jednotky. Schéma takto realizovaného akcelerátoru je znázorněno na Obrázku 4. Vhodně uspořádané neurony jsou doplněny lokální pamětí, řadičem pro řízení výpočtu, řadičem pro řízení RAM paměti a blokem komunikace s osobním počítačem. Paměť RAM je externí paměť na prototypové desce FPGA. Řadič paměti se stará o její řízení a přesun dat do vyrovnávacích lokálních blokových pamětí (BRAM).

Obrázek 4: Schéma akcelerátoru Komunikační kanál má zajistit dodání potřebných dat neuročipu. Je třeba zadat inicializační hodnoty neuronů (přímý zápis do datových struktur jednotlivých neuronů) a sadu vstupních vektorů (uloženou v paměti RAM). Při trénování se vlastní kanál používá pouze k zadání dat a předávání výsledků, výpočet probíhá samostatně v čipu. Pro účely ladění předpokládám vybavení neuročipu diagnostickým režimem, který umožní pozastavit výpočet a přistupovat ke všem datovým strukturám v neuročipu. V režimu klasifikace bude nejvýhodnější, kvůli rychlosti komunikace, aby byla data zadána v dávkách. Data se uloží do RAM paměti, klasifikují a výsledky se potom odešlou všechny najednou. Prozatím máme k dispozici řadič pro UART [4]. Pokud by ale bylo třeba rychlejší komunikace, bylo by vhodné realizovat rychlejší komunikační kanál, např. USB. Základní funkcí řadiče je řídit vlastní neurony. V řadiči může být implementováno promíchání vstupních vektorů tedy postup, kdy se v jedné epoše vybírají vstupní vektory x náhodně, a to tak, že každý vektor je vstupem právě jednou. Klasická implementace předpokládá vstup vektorů v každé epoše v pořadí jak byly zadány. Další funkcí řadiče je určení poloměru okolí vzhledem k probíhající epoše trénování. Předpokládám využití tabulky, která bude předepisovat změny v určitých epochách. Obsah této tabulky bude součástí inicializačních dat, posílaných z PC. Jak bylo popsáno v předchozím odstavci, na konvergenci sítě má vliv konečná délka slova. Proto je v akcelerátoru možnost změnit počet bitů slova použitého k uložení synaptických vah neuronu, počet bitů akumulátoru i dimenzi vektoru vstupních dat. Je tedy možné generovat akcelerátor přímo přizpůsobený aplikaci, a to tak se, že se jednoduše změní tento parametr a znovu se provede syntéza. Simulaci vlivu konečné délky lze uskutečnit přímo ve VHDL simulátoru nebo v jiném vhodném prostředí s dostatečnou podporou pro matematické operace (Matlab). Akcelerátor lze také realizovat jako součást systému na čipu (SoC), akcelerátor pak bude v roli periferie.

4. Popis neuronu Schéma neuronu je na Obrázku 5. Silná čára reprezentuje tok dat, slabší čáry potom řídící signály. Neuron se do struktury akcelerátoru zapojuje pomocí vstupní a výstupní brány. Dále neuron obsahuje datovou paměť. Tato paměť slouží k uložení synaptických vah neuronu. Veškeré výpočty probíhají v SAD (Substitute-ADd) jednotce. Výpočty řídí řadič, který je implementován jako jednoduchý stavový automat. Bližší popis bloků včetně propojení s ostatními bloky, je uvedeno dále v textu. Obrázek 5: Schéma neuronu V akcelerátoru jsou neurony vzájemně propojeny pomocí vstupních a výstupních bran. Brány obsahují datové vodiče a indikaci přítomnosti dat. Dále pak obsahují signál "break", který indikuje, že příchozí datové slovo bude kódem příkazu. Bezprostřední průchod dat mezi vstupní a výstupní branou umožňuje neuronu fungovat v průchozím režimu bez zpracovávání dat. Tento mód je nutný v režimu ladění (debug) a inicializace. Pro realizaci paměti vah je možné využít blokové paměti na čipu FPGA nebo paměti distribuované složené z hradel FPGA obvodu. Distribuovaná paměť odčerpává část prostředků čipu FPGA, která by mohla být jinak použita k realizaci dalších neuronů. Nicméně, využití distribuované paměti je nutné, protože množství blokové paměti je omezené. Napojení na datovou sběrnici umožňuje nejen do paměti nahrát inicializační váhy, ale i číst obsah v ladícím módu. Obrázek 6: SAD jednotka

Veškeré aritmetické operace jsou realizovány v SAD (Substitute-Add Accumulate) jednotce. SAD jednotka má na starosti výpočet vzdálenosti mezi vstupním vektorem a váhami, nalezení vítěze, výpočet vzdálenosti od vítězného neuronu a úpravu vah v režimu trénování. Schéma SAD jednotky je na Obrázku 6. SAD jednotka se skládá z bloku výpočtu absolutní hodnoty rozdílu, akumulátoru, posuvného registru a bloku pro úpravu vah. Blok výpočtu absolutní hodnoty spolu se sčítačkou a akumulátorem se uplatní při výpočtu vzdálenosti neuronu od vstupního vektoru dat a při výpočtu vzdálenosti od vítězného neuronu. Podle výsledku tohoto výpočtu se nastaví posuvný registr. Posuvný registr se uplatní při výpočtu úpravy váhy podle vítězného neuronu. Při tomto výpočtu se vypočítá rozdíl váhy a příslušné složky vektoru a tento přírůstek se posune o určitý počet bitů vydělí mocninou dvou. Blok pro úpravu vah je sčítačka, která vypočítává hodnotu váhy neuronu podle vztahu (2). Konstanta představuje bitový posun dělení. 5. Postup výpočtu w n 1 i =w n i k w n i m i (2) Neuropočítač funguje následovně: v první, přípravné fázi, je pomocí PC nahrán soubor inicializačních hodnot a vstupních vektorů do paměti RAM na prototypové desce s vlastním hradlovým polem, v němž je neuropočítač realizován a jsou inicializovány jednotlivé neurony. Další fází je trénování - vstupní vektor je distribuován složku po složce. Jednotlivé neurony přímo provádí výpočet vzdálenosti. Mezivýsledek výpočtu je uložen v akumulátoru každého neuronu. Hledání vítěze provádí neuropočítač tak, že krajní neurony pošlou hodnotu svého akumulátoru (a svou adresu) následujícímu neuronu. Ten provede porovnání s vlastním akumulátorem a vítěznou hodnotu pošle dalšímu neuronu v cestě (včetně adresy). Tímto způsobem bude po posledním porovnání v prostředním neuronu znám vítěz pro daný vstupní vektor. Poslední částí trénování je adaptace. Všem neuronům je předána adresu vítězného neuronu a poloměr okolí. Každý neuron pak srovnáním obdržené a vlastní adresy individuálně zjistí svou příslušnost k okolí vítězného neuronu a provede úpravu svých vah. 6. Závěr Hlavní výhodou je plně distribuovaná architektura. Další výhodou je přímé komunikační schéma mezi neurony, bez nutnosti implementovat dlouhé a výpočet zpomalující sběrnice. Neurony přenášejí data přímo mezi sebou. Implementace v FPGA, které je založeno na SRAM, umožní škálovatelnost systému, použití v komplexním systému nebo při rekonfiguraci. Po první verzi jsem po implementaci získal následující odhady: implementace až 40 neuronů v obvodu XC2V1000, kdy každý neuron může pracovat na maximální hodinové frekvenci 150 MHz. V současné době dokončuji druhou verzi a plánuji numerické testy konvergence sítě akcelerátoru a porovnání rychlosti s osobním počítačem. 7. Poděkování Tento projekt je podporován grantem Transdisciplinární výzkum v biomedicínském inženýrství II, MSM6840770012 Českého Vysokého Učení technického v Praze.

Reference [1] Thiran P., Peiris V., Heim P., Hochet B.: Quantization Effects in Digitally Behaving Circuit Implementations of Kohonen Networks, IEEE Transactions on Neural Networks No. 3, Vol. 5., 1994 [2] Porrman, M., Witkowski, U., Kalte, H., Ruckert, U.: Implementation of Artifical Neural Networks on a Reconfigurable Hardware Accelerator, In Proceedings of the 10th Euromicro Workshop on Parallel, Distributed and Network-based Processing, Grand Canaria Island, Spain, 2002, pp. 243 250 [3] Ienne, P.: Architectures for Neuro-Computers: Review and Performance Evaluation, Technical Report of the EPFL-DI no. 93/21, Lausanne, Swiss (1993) [4] Bártů M.: Implementation of communication protocol between the FPGA kit and the PC via the serial interface. Unpublished technical report Z06-3 (in Czech), FEE CTU Prague, 2006. Available at http://amber.feld.cvut.cz/fpga/. [5] Kohonen, T.: Self-Organizing Maps. Springer-Verlag Berlin, Heidelberg, New York, 3 rd ed., 2001, ISBN 3-540-67921-9