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

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

Akcelerátor pro KSOM

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

PROCESOR. Typy procesorů

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

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

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

Čísla, reprezentace, zjednodušené výpočty

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

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

Čísla, reprezentace, zjednodušené výpočty

Představení a vývoj architektur vektorových procesorů

Paralelní systémy. SIMD jeden tok instrukcí + více toků dat jedním programem je zpracováváno více různých souborů dat

Paralelní výpočty ve finančnictví

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

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

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Paralelní programování

35POS 2010 Počítačové systémy 1 Úvod, jazyk C Doc. Ing. Bayer Jiří, Csc. Ing. Pavel Píša

Architektura počítače

ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz

Paralelní a distribuované výpočty (B4B36PDV)

FPGA + mikroprocesorové jádro:

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

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

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

Architektury počítačů

Intel Itanium. Referát. Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky

ARCHITEKTURA SYSTÉMU PRO DYNAMICKY REKONFIGUROVATELNÝ KOMUNIKAČNÍ TERMINÁL

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

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

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

UMÍ POČÍTAČE POČÍTAT?

Hlavní využití počítačů

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

Architektura počítačů Logické obvody

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

LOGICKÉ OBVODY X36LOB

Procesor. Procesor FPU ALU. Řadič mikrokód

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

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

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

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

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

Základní metody číslicového zpracování signálu část I.

Mikroprocesorová technika (BMPT)

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Pohled do nitra mikroprocesoru Josef Horálek

Workshop. Vývoj embedded aplikací v systému MATLAB a Simulink. Jiří Sehnal sehnal@humusoft.cz. info@humusoft.cz.

Struktura a architektura počítačů

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

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

Úvod do problematiky návrhu počítačových systémů. INP 2008 FIT VUT v Brně

Architektura počítačů Logické obvody

PROCESORY. Typy procesorů

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

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

Ústav teorie informace a automatizace AV ČR, v.v.i. Pod Vodárenskou věží 4, Praha 8 kohoutl@utia.cas.cz

PROCESOR. Rozdělení procesorů

Algoritmy a struktury neuropočítačů ASN P3

Výzkumné centrum spalovacích motorů a automobilů Josefa Božka - 5. kolokvium Josefa Božka 2009, Praha,

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

Operační systémy. Přednáška 1: Úvod

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

NG C Implementace plně rekurentní

Neuropočítače. podnět. vnímání (senzory)

Struktura a architektura počítačů

PB002 Základy informačních technologií

MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE

Architektura počítačů

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Pokročilé architektury počítačů

Charakteristika dalších verzí procesorů v PC

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

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

Úvod do GPGPU J. Sloup, I. Šimeček

REALIZACE SUPERPOČÍTAČE POMOCÍ GRAFICKÉ KARTY

Miroslav Tichý, tic136

Rozpoznávání písmen. Jiří Šejnoha Rudolf Kadlec (c) 2005

Binární data. Číslicový systém. Binární data. Klávesnice Snímače polohy, dotykové displeje, myš Digitalizovaná data odvozená z analogového signálu

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Vestavný modul pro počítačové vidění využívající hradlové pole

Algoritmy a datové struktury

ARCHITEKTURA PROCESORŮ

Výkonnostní srovnání DSP Jak optimalizovat výběr procesoru. Analog Devices, Texas Instruments Freescale

Linux a 64 bitů. SUSE Labs. Michal Ludvig Vojtěch Pavlík

Fakulta elektrotechnická Katedra aplikované elektroniky a telekomunikací. Bakalářská práce. Zaokrouhlovací chyby v číslicových systémech


Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Metody připojování periferií

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

Umělé neuronové sítě

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

Direct Digital Synthesis (DDS)

Číselné soustavy. Binární číselná soustava

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

Transkript:

Implementace KSOM Marek Bártů marek.bartu@gmail.com LANNA Katedra teorie obvodů FEL ČVUT

SSC Implementace KSOM 2 algoritmus KSOM úprava pro snadnější implementaci kvantizace reprezentace čísel podobnost map implementace v FPGA Outline

SSC Implementace KSOM 3 KSOM - algoritmus uvažujeme sekvenční trénování (nikoliv batch) trénování probíhá v cyklu: 1. nalezení vítěze 2. výpočet vzdáleností od vítěze 3. určení okolí 4. úprava vah neuronů v okolí implementace: opakovat tyto základní kroky pro všechny trénovací vektory, pro každý neuron

SSC Implementace KSOM 4 Operace které je třeba implementovat 1. nalezení vítěze 2. výpočet vzdáleností od vítěze 3. určení okolí m=min x m i d i = m m i m i neig t iff d i r t 4. úprava všech neuronů v okolí m i t 1 =m i t t h ci t d i

SSC Implementace KSOM 5 Zjednodušení algoritmu výpočet vzdálenosti Eukleidovská d= a b Bloková d= a b = i a i b i 2 d= a b = a b

SSC Implementace KSOM 6 Funkce okolí Zjednodušení algoritmu mexický klobouk pravoúhlé 1 1 případně lze využít trojuhelníkové funkce

SSC Implementace KSOM 7 Zjednodušení algoritmu adaptační zisk původně obecná funkce η(t) lze sloučit do funkce okolí (její měřítko) nahrazeno posuvným registrem MSB LSB všechna zjednodušení umožňují jednodušší implementaci, event. rychlejší výpočet výpočty pomocí SIMD jednotek (SSE,..) úprava algoritmu pro GPU

SSC Implementace KSOM 8 Zastavení u CPU MCU = Micro Controller Unit jednodušší algoritmy řízení procesu ARM, MIPS MPU = Micro Processor Unit general computing x86, PowerPC DSP = Digital Signal Processor výpočty (pevná a plovoucí čárka) nekonečná smyčka Master Slave

SSC Implementace KSOM 9 Zastavení u paralelních architektur SIMD = Single Instruction Multiple Data několik uzlů řízených jedinou instrukcí vektorový procesor multimediální instrukce MIMD = Multiple Instruction Multiple Data from [9] nezávislé výpočetní uzly každý zpracovává svou část normální procesor ~ SISD from [9]

SSC Implementace KSOM 10 1. nalezení vítěze Shrnutí - úpravy m=min x m i =min j=1 x j m ij 2. výpočet vzdáleností od vítěze 3. určení okolí d i = m m i = j =1 m i neig t iff d i r t N N m j m ij 4. úprava všech neuronů v okolí m i t 1 =m i t shift d i

SSC Implementace KSOM 11 Úloha A - zadání Porovnejte výsledky originálního algoritmu a algoritmu upraveného. projít a vyzkoušet upravený algoritmus KSOM skript v Matlabu implementující trénování je k dispozici jako originál lze použít SOMtoolbox nebo Matlab NN Toolbox drsňáci si mohou upravit upravený algoritmus (pomohou jim komentářích) jak využít SOMtoolbox je naznačeno v komentáři (musí ještě vhodně nastavit parametr alpha)

SSC Implementace KSOM 12 Problémy při implementaci problémy se stabilitou sítě se znásobí nepřímo úměrné počtu bitů problém je hlavně v kvantizaci vah a funkce okolí minimální počet bitů závisí na distribuční fukci vstupních vektorů nelze získat obecný vzorec testovat na reprezentativní množině

SSC Implementace KSOM 13 Úloha A možný výsledek

SSC Implementace KSOM 14 Kvantizace omezený počet bitů pro celý dynamický rozsah dat limitní cykly (kvantování v IIR filtrech) rozlišujeme Fixed Point = pevná řádová čárka 128 64 32 16 8 4 2 1 Floating point = plovoucí řádová čárka IEEE 754 31 30 23 22 0 S EXPONENT FRACTION value=mantisa 2 exponent

SSC Implementace KSOM 15 Zastavení u záporných čísel sign-magnitude známenková extra znaménkový bit špatně sčítání/odčítání 7 0 S AMPLITUDE 2 n 1 1 x 2 n 1 1 1's complement jedničkový doplněk dvě nuly IP checksum 2 n 1 1 x 2 n 1 1 c 0 c 0 d=c d= c 2's complement dvojkový doplněk jednoduché sčítání 2 n 1 x 2 n 1 1 c 0 d =c c 0 d= c 1

SSC Implementace KSOM 16 Integer a Fractional dva základní druhy reprezentace s pevnou čárkou Integer celočíselná Fractional zlomková -2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0-2^0 2^-1 2^-2 2^-3 2^-4 2^-5 2^-6 2^-7 násobení -2^3 2^2 2^1 2^0-2^3 2^2 2^1 2^0-2^0 2^-1 2^-2 2^-3-2^0 2^-1 2^-2 2^-3-2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0-2^1 2^0 2^-1 2^-2 2^-3 2^-4 2^-5 2^-6 7 7=49 7 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0.875 0.875=0.765625 7b 0.75 4b

SSC Implementace KSOM 17 zaokrouhlení a ořezání Kvantizace zaokrouhlení může vnést st. složku ( bias ) konvergentní zaokrouhlení kvantizační chyba saturace mezivýsledek může dočasně přetéct =2 b a3 a2 a1 a0 b3 b2 b1 b0 ga7 ga6 ga5 ga4 a3 a2 a1 a0 gb7 gb6 gb5 gb4 b3 b2 b1 b0 gc7 gc6 gc5 gc4 c3 c2 c1 c0 d3 d2 d1 d0

SSC Implementace KSOM 18 Úloha B - úprava algoritmu Upravte proceduru trénování tak, aby respektovala kvantizaci dat a mezivýsledků výpočtu. Výsledky porovnejte s původním algoritmem a s upraveným algoritmem bez kvantizace. ošetřit vstupní data a operace je nutné ošetřit všechny? nejprve si vytvořit funkce pro převod a zaokrouhlení

SSC Implementace KSOM 19 Užitečné funkce v Matlabu zaokrouhlení Y = round(x) oříznutí B = fix(a) převod dec bin bin = dec2bin(dec) bin = dec2bin(dec,n) převod bin dec dec = bin2dec(bin) zaokrouhlení nahoru B = ceil(a) zaokrouhlení dolu B = floor(a) bitový posun C = bitshift(a, k) C = bitshift(a, k, n)

SSC Implementace KSOM 20 Jak porovnat dvě mapy nutné předpoklady: stejná vstupní data (a inicializace) stejné (alelspoň velmi podobné) podmínky střední chyba kvantizace vzhledem k množině dat střední chyba obrazu O vzhledem ke vzoru V není vzájemně jednoznačné přiřazení (surjektivní) my_som_mqe.m střední chyba bijekce my_som_pe.m N mqe= o=1 N pe= o=1 [min v obraz o vzor v ] 2 obraz o vzor o 2

SSC Implementace KSOM 21 Porovnání map

SSC Implementace KSOM 22 Porovnání dvou map - QE

SSC Implementace KSOM 23 Implementace akcelerátoru v FPGA FPGA = Field Programmable Gate Array kvantizace problémy se stabilitou sítě kvantizace vah (hlavně) implementace funkce okolí (vedlejší) minimální počet bitů závisí na distribuční fukci vstupních vektorů testovat na reprezentativní množině generické proměnné ve VHDL vuužívá zjednodušení algoritmu

SSC Implementace KSOM 24 Prostředí akcelerátoru data parametry simulace parametry implementace Matlab simulátor VHDL výsledky porovnání Hardwarová implementace

SSC Implementace KSOM 25 Hlavní bloky akcelerátoru externí paměť PCI

SSC Implementace KSOM 26 Matice neuronů Scatter Matrix of Neurons Gather buffer comparator neuron

SSC Implementace KSOM 27 Vnitřní struktura neuronu accumulator ; status register weights memory SAC unit memory addressing unit pointer comparator input 1 input 2 output 1 output 2

SSC Implementace KSOM 28 Pracovní sekvence initialization (INI) initialization (INI) distance (DC) weights update (TRN) distance (DC) winner search (CMP) distance from winner(dst) winner search (CMP) Training Clasification

SSC Implementace KSOM 29 Parametry implementace Implementace v Xilinx Virtex-IIPro (XCV2P-50) plně distribuovaný výpočet žádně vnitřní sběrnice paměť bloková + distribuovaná možnost až 144 neuronů maximální taktovací frekvence 133 MHz akcelerátor napsán ve VHDL simulační prostředí umožňující propojení s Matlabem

SSC Implementace KSOM 30 Literatura [1] Kohonen, T.: Self-Organizing Maps, Springer-Verlag, 3rd ed., 2001, ISBN 3-540-67921-9 [2] Thiran P., Peiris V., Heim P., Hochet B.: Quantization Effects in Digitally Behaving Circuit Implementations of Kohonen Networks, IEEE Transactionson Neural Networks No. 3, Vol. 5., 1994 [3] Ienne, P.: Architectures for Neuro-Computers: Review and Performance Evaluation, Technical Report of the EPFL-DI no. 93/21, Lausanne, Swiss (1993) [4] 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 Networkbased Processing, Grand Canaria Island, Spain, 2002, pp. 243 250 [5] Alhoniemi E., Himberg J., Parhankangas J., Vesanto J.:SOM Toolbox for Matlab, available at www.cis.hut.fi/projects/somtoolbox/ [6] Matlab R13 help, MathWorks Inc., http://www.mathworks.com/products/matlab/ [7] Liu D.: Design of Embedded DSP Processors, Linkoping University 2003 [8] Sweetman D.: See MIPS Run Linux, Morgan Kaufmann, 2nd ed., 2007, ISBN 978-0-12-088421-6 [9] wikipedia http://wikipedia.org