Proužkové mapování matic na procesory. Týden 11. Maticové výpočty a aplikace. Úlohy ze zpracování signálů a obrazů.

Podobné dokumenty
Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

[1] LU rozklad A = L U

Aplikovaná numerická matematika - ANM

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

4. Trojúhelníkový rozklad p. 1/20

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Numerické metody a programování

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

1 0 0 u 22 u 23 l 31. l u11

Matematika B101MA1, B101MA2

Všechno, co jste kdy chtěli vědět o maticích, ale báli jste se zeptat

IB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D.

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Globální matice konstrukce

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

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

0.1 Úvod do lineární algebry

Numerické metody a programování. Lekce 4

POSLOUPNOSTI. 1. Najděte prvních pět členů posloupnosti (a n ) n=1, je-li a) a n = 1 2 (1 + ( 1)n ), b) a n = n + ( 1) n, c) a n = ( 1) n cos πn2

Operace s maticemi. 19. února 2018

FOURIEROVA ANAL YZA 2D TER ENN ICH DAT Karel Segeth

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Analýza a zpracování digitálního obrazu

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

Základy matematiky pro FEK

Operace s obrazem I. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.

DRN: Soustavy linárních rovnic numericky, norma

Dynamické programování

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

II. Úlohy na vložené cykly a podprogramy

KTE / PPEL Počítačová podpora v elektrotechnice

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

" Furierova transformace"

Paralelní algoritmy v lineární algebře. Násobení matic

0.1 Úvod do lineární algebry

DEFINICE Z LINEÁRNÍ ALGEBRY

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

Co je obsahem numerických metod?

Strojový kód. Instrukce počítače

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Operace s maticemi

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Soustavy linea rnı ch rovnic

Lineární algebra Operace s vektory a maticemi

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

Požadavky k písemné přijímací zkoušce z matematiky do navazujícího magisterského studia pro neučitelské obory

Filtrace snímků ve frekvenční oblasti. Rychlá fourierova transformace

MATrixLABoratory letný semester 2004/2005

ALG2: Lineární Algebra (Skripta Horák, jako doplněk i skripta Kovár v IS)

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Static Load Balancing Applied to Time Dependent Mechanical Problems

Základní komunikační operace

Princip funkce počítače

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

1 Determinanty a inverzní matice

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Architektura počítačů Logické obvody

SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Základy maticového počtu Matice, determinant, definitnost

PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové

Úvod do lineární algebry

ROZ1 - Cv. 2 - Fourierova transformace ÚTIA - ZOI

Jasové transformace. Karel Horák. Rozvrh přednášky:

VĚTY Z LINEÁRNÍ ALGEBRY

Lineární algebra : Násobení matic a inverzní matice

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Laplaceova transformace

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

Univerzitní licence MATLABu. Pište mail na: se žádostí o nejnovější licenci MATLABu.

Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy

Systém adresace paměti

Projektč.3dopředmětuIZP. Maticové operace

IB112 Základy matematiky

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

X37SGS Signály a systémy

Lineární algebra : Násobení matic a inverzní matice

Architektura počítačů Logické obvody

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

PPEL_4_cviceni_MATLAB.txt. % 4. cvičení z předmětu PPEL - MATLAB. % Lenka Šroubová, ZČU, FEL, KTE %

Lineární algebra. Matice, operace s maticemi

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

Množinu všech matic typu m n nad tělesem T budeme označovat M m n (T ), množinu všech čtvercových matic stupně n nad T pak M n (T ).

Připomenutí co je to soustava lineárních rovnic

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

Základy algoritmizace a programování

AVDAT Vektory a matice

Pohled do nitra mikroprocesoru Josef Horálek

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Transkript:

Proužkové mapování matic na procesory Týden. Maticové výpočty a aplikace. Úlohy ze zpracování signálů a obrazů. P procesorů s indey,,..., P- (virtuální lineární pole) matice m řádků, n sloupců; k řádků (sloupců) v bloku. řádkové. sloupcové cykl po blocích ma. velikosti k = m/p nebo k = n/p, k cyklicky po blocích (k mezi a ma) cyklicky po řádcích nebo sloupcích, tj.po blocích min. velikosti (k = ) normální reverzované Šachovnicové mapování matic na procesory P procesorů s indey,,..., P-, virtuální mřížka matice: m řádků, n sloupců P a. cykl po blocích ma. velikosti (m/ P) (n/ P) b. cyklicky po blocích [k řádků, k sloupců na blok] c. cyklicky po blocích min. velikosti (po prvcích) P CPU: Transpozice matice n n (MP, proužky) nic se nepočítá, čistě komunikační záležitost každá CPU má n/p řádků výchozí matice transponuje P submatic velikosti n/p n/p, z nich P- pošle jiným CPU (komunikace AAS) a submatici na diagonále si ponechá doma CPU: P = P = Transpozice matice na svazku (COW, proužky) Transpozice na SF hyperkostce, P/ kroků Každá CPU má blok n/p po sobě jdoucích řádků (lze na ně pohlížet jako na P submatic [ i ] velikosti n/p n/p. AAS: P- kroků, v každém kroku permutační směrování, aby nedošlo k tlačenici v multiportovém přepínači SW řetězení: překryj transpozici následující submatice s odesíláním právě transponované submatice:. Transponuj submatici (myid)mod P. Cykl (P-)- krát, h =,,,P transponuj submatici (myidh)mod P paralelně s odesíláním předchozí submatice (myidh-)mod P (transponovaná submatice (myid) se nikam neodesílá) krok krok krok krok RA T AAS = ( P / )( ts mtw) Plán přesunů: co -kdy-kam RA dimenze krok Relativní adresa zprávy RA = src dst do směru dim se ve fázi krok posílá submatice s indeem myid XOR RA[krok][dim]

Transpozice matice n n (proužky) ve SM nic se nepočítá, čistě přemisťovací záležitost každá CPU transponuje svoje řádkové submatice (v cache), pak je zapíše jako sloupcové submatice do paměti; po bariéře si načte nové řádkové submatice ; minimalizovat počet výpadků! celkem se po sběrnici přesune sekvenčně P (P-) submatic; CPU: P = CPU: P = Násobení matic C = A B na D-T (šachovnice) akumulací součinů zkřivených a rotovaných matic A, B. Cannonův algoritmus používá rozčlenění A a B do P P čtvercových submatic a pak jejich zkřivení (skewing). zkřivení podél.osy: -. osy: a b c A = d e f A() = d b i, A( ) g h i g e c Atmp = A (-) ; Btmp = B () ; C = ; inicializace for (i=;i<= P;i) { C=CAtmp*Btmp; maticový součin stejnolehlých submatic!! Atmp = rotace(atmp ve. ose); submatice Btmp = rotace(btmp v. ose); submatice a h f a = e f i b g c d h Faktorizace A = L U - - - - - - - - - - - - - - - A L U Použití: Řešení systému lin. rovnic pro mnoho pravých stran b (Jiná možnost by byla vypočítat inverzní matici A - ). - Cíl: řešit A = LU = b pro. - To lze provést ve dvou snadných krocích: řešit Ly = b pro y (dopředná substituce) řešit U = y pro (zpětná substituce). lze uložit do A (místo A) Postup faktorizace A = L U - Gaussova eliminace (= transformace A na matici U) - Matice L má na hlavní diagonále jedničky, nad ní nuly a prvky pod hlavní diagonálou jsou koeficienty, kterými byl násoben pivot. řádek L[i,k]=A[i,k]/A[k,k] i=k,k,...,n - je-li pivotní prvek nula, došlo by k přetečení; je-li blízký nule, mohlo by dojít k numerické nestabilitě. Proto se vyměňují řádky matice A tak, aby se na diagonálu dostal prvek s největší abs. hodnotou ve sloupci a stal se pivotním (tzv. partial pivoting). V kroku k bude pivot prvek A[i[k],k]. Možnosti paralelního postupu: každý proces vybere maimum ve svém proužku a aktualizuje svou kopii pivotních indeů i. Bez bariéry. jeden proces vybere globální maimum a přehodí řádky; bariéra nutná. každý proces vybere maimum ze své části, pak společně globální maimum; bariéra nutná, privátní kopie i. Sekvenční výměna řádků (partial pivoting) double A[:n,:n],LU [:n,:n],pivot, pivotrow,mult; int i[:n],t; # inicializuj i[i]=i, LU[i,j]=A[i,j]; # proveď přehození řádků před Gaussovou eliminací: for [k= to n-] { # iteruj dolů podél hlavní diagonály pivot = abs(lu[i[k],k]; #vyber prvek na diagonále ve sloupci k for [i=k to n] { if (abs(lu[i[i],k])>pivot) { # je-li pod ním větší prvek pivot=abs(lu[i[i],k]); pivotrow = i; #vezmi ten if (pivotrow!=k) {#došlo-li k výměně, vyměň i indey ve vektoru i t = i[k]; i[k]=i[pivotrow]; i[pivotrow]=t; pivot=lu[i[k],k]; #skutečná hodnota pivotního prvku v kroku k Schema programu SV pro dekompozici LU double A[:n,:n],LU [:n,:n]; #A je již inicializována int i[:n]; # vektor indeů pivotních řádků process worker (w= to P) { double pivot, mult; deklarace dalších lokálních proměnných jako např. privátní kopie i; for [i=w to n by P] #řádky cyklicky procesorům kvůli stejné zátěži inicializuj i a svoje proužky LU; barrier(w); # proveď Gaussovu eliminaci (řádky již přeházeny) for [k= to n-] { #pro všechny řádky submatice mult= LU[i[i],k]/pivot; # vypočítej násobící koeficient LU[i[i],k]=mult; # a ulož jej jako prvek matice L for [j=k to n] # odečítej násobkek pivotního řádku: LU[i[i],j]=LU[i[i],j]-mult*LU[i[k],j]; barrier(w);

Úlohy ze zpracování signálů a obrazů Paralelizace umělých neuronových sítí (ANN) jednorozměrná rychlá Fourierova transformace D-FFT D -FFT Vyhlazování, zostření, potlačení šumu; Detekce hran (Sobelův a Laplaceův operátor, CNN) Výpočetní požadavky u zpracování obrazů: pimapa pielů, bitů na piel; paměťová kapacita byte = Mbyte; operací/snímek, tj. ms při trvání jedné operace ns; provoz v RT vyžaduje - snímků/s, tj. - ms/snímek; za dobu snímku musí být zpracovány všechny piely; často složité operace pro každý piel. Paralelní implementace ANN - případová studie Zadání: Paralelní implementace umělých neuronových sítí pro vestavěné aplikace a práci v RT Řešení by mělo zodpovědět otázky: Jako alternativa k neuronovým čipům, je paralelní implementace levnější? snadněji aplikovatelná? výkonnější? Když paralelní implementace, tak která architektura, DM-MP nebo SM se sběrnicí? DSP SHARC CPU je vhodný pro obě řešení. Paralelní implementace ANN Rozčlenění třívrstvé ANN ADSP- SHARC by AMD SM w [ nhn, nin ] w [ non, nhn ] - t - t in [] - t out[] - t out [] in [] out[] out [] MB/s MB/s in [ nin - ] Implementace MP - jen fáze vybavování WHILE TRUE SEQ. Rozhlášení (OAB) vstupního vektoru z uzlu id =. Vypočti výstupní hodnoty přidělených skrytých neuronů (násobení matice vah vektorem aktivací, = a w aw... an wn aw potom funkce ep a dělení) f ( ) = ep( ). AAB, všichni dostanou všechny hodnoty výstupů skrytých neuronů. Vypočti přidělené výstupy. Posbírej výstupní vektor (AOG) v uzlu id =. SW řetězení čas k- k k OAB HID OAB AAB HID OAB OUT AAB HID OAB OAG OUT AAB HID OAB OAG OUT AAB HID OAB OAG OUT AAB HID OAB OAG OUT AAB HID OAG OUT AAB OAG OUT OAG

Paralelní implementace se SM WHILE TRUE SEQ. Pouze řídicí CPU: získej nový vstupní vektor ze vstupního buferu do SM; bariéra;. Všichni: načti vstupní hodnoty ze SM; vypočti hodnoty na výstupech přidělených skrytých neuronů; bariéra;. Všichni: čti hodnoty výstupů skrytých neuronů ze SM; vypočti přidělené výstupy; bariéra;. Pouze řídicí CPU: dej výstupní vektor ze SM do výstupního buferu; bariéra; Paralelní implementace se SM - pokrač. Předpoklady: velikost bloku cache byte, data: stačí přesnost REAL výpadek čtení každých načtených čísel u prvků - vstupního vektoru (všechny CPU), - skrytého vektoru (všechny CPUs) nebo - výstupního vektoru (pouze řídicí CPU) pokud není podporován předvýběr dat v HW (IA-) nebo SW operace write back není potřeba, zapisuje se stále do stejných bloků cache (mění se pouze stav z ekluzivního na sdílený). Vstupní a skrytý vektor (kromě přidělené sekce) se jen čtou, takže se nemusí odsunovat do SM, pouze se přepisují. předpokládáme, že matice vah jsou rezidentní ve všech uzlech (např. v privátních ROM), přístup k vahám v taktu. Výsledky a závěry Výsledky a závěry - pokrač. DM small DM medium E [%] DM large SM small SM medium SM large number of processors Speedup DM small DM medium DM large SM small SM medium SM large number of processors Závěry simulované ANN: malé - - střední - - velké - - MP se SW řetězením předčí implementaci SM Nejlepší topologie pro implementaci DM-MP - úplné propojení do P = procesorů - hyperkostka pro P =,,, - jinak kruhová topologie, P =,,,,,, Nepravidelná topologie AMP (A Minimum Path) s tabulkovým směrováním vykazuje horší výkonnost. Příklad: výkonnost paralelní FFT n-bodová Diskrétní Fourierova Transformace je def. jako součin komplení matice W n [n, n] = w n (j,k) a kompleního vektoru [n,]: n n πijk y = W n, y j = wn ( j, k) k = k ep k = k = n kde w n (j,k) jsou tzv. otáčecí činitelé (twiddle factors), jinak též komplení kořeny rovnice n = w n (j,k) = ep (- ijkπ/n ) = (cos π/n - i sin π/n) jk, i = -, j, k =,,, n-. Složitost přímého výpočtu je n aritmetických operací (součin a akumulace dvou kompleních čísel).

n-bodová Diskrétní Fourierova Transformace Příklady transformačních matic : jk (mod ) W = W - Algoritmus FFT využívá symetrii matice a opakující se hodnoty W e (-iπ/) - -e (-iπ/) - - -e (-iπ/) - e (-iπ/) Rychlá Fourierova transformace FFT (n = ) = algoritmus výpočtu DFT - - - - - e -iπ/ - y =( )( ) y =( - )i ( - ) y =( ) ( ) y = ( - ) i ( - ) Stačí operací ± a operace * (obecně komplení) Přímý výpočet: operací ± a operací * FFT symbolicky (n = ) Rychlá Fourierova transformace FFT (n = ) reverzace adres vstupů e -ijkπ/n - j*k y y y y = Počet motýlků: n log n = operace motýlek j*k j*k y y y y y y y y n log n -krát reverzace adres vstupů FFT (n = ), uspořádání motýlků Zisk při použití n-bodové FFT Složitost FFT: log n stupňů výpočtu, n operací ± n operací * v každém stupni (obecně kompleních) O(n log n). přeskládání vstupní nebo výstupní posloupnosti: n log n kroků jako řazení. n n log n n Násobení matice vektorem podle definice DFT: O(n )

Motýlkové operace n-bodová paralelní FFT, n= q, P dělí n c id DIT e if w n (j,k) = u iv - C id E if C = c ue - vf D = d uf ve E = c - C F = d - D c id C id C = c e DIF D = d f e if w n (j,k) = - u iv E if * * ± * ± E = (c - e) u - (d - f) v F = (c -e) v -(d -f) u y = W n = T (W P I n/p ) S (I P W n/p ) Π permutace s rozestupem n/p n/p p-bodových FFT P n/p-bodových FFT přeskládání vektoru (permutace) reverzací indeů násobení diagonální maticí rotačních koeficientů T = diag (I n/p, Ω, Ω,, Ω P- ), Ω = diag (, ω, ω,, ω n/p- ), ω=ep(-πi/n) Implementace n-bodové paralelní FFT Paralelizace FFT (n =, P = ) Sekvence n bodů je uložena ve sdílené paměti jako matice P řádků a n/p sloupců (jazyk C).. Procesory provedou paralelně přeskládání posloupnosti reverzací bitů.. Každý procesor provede n/p-bodovou sekvenční FFT na řádcích matice, nejlépe v rámci cache, bez komunikace s ostatními (prvních log (n/p) stupňů výpočtu).. Následuje globální transpozice matice (komunikace všichni všem). Násobení maticí otáčecích činitelů. Každý procesor provede závěrečných log P stupňů výpočtu (P-bodové sekvenční FFT na sloupcích matice, každý procesor n/p sloupců). Globální transpozice matice reverzní adresace Body počítá první procesor Paralelní FFT (n =, P = ) Paralelní FFT (n =, P = ) reverzní adresace FFT komunikace mezi procesory FFT permutace (každý čtvrtý) reverzní adresace komunikace mezi procesory

,,,,,, -, Příklad: FFT pravoúhlého impulsu, n= vstup amplituda /n,,,, -,,,, -, - -, - -, fáze [rad.] DFT ve zpracování obrazů [ ( )] N -D DFT: M jl km X lm = jk ep πi N M j= k = kde j a k jsou indey řádků a sloupců, j N-, k M-. Pro čtvercový obraz N = M a N N km jl X lm = [ jk ep[ πi( ) [ ( )] M ] ep πi N j= k = Vnitřní součet je -D DFT na N bodech řádku, výsledkem je transformovaný řádek. Vnější součet je -D DFT na N bodech sloupce. Můžeme psát: Tudíž -D DFT se dá rozdělit N jl do dvou sekvenčních fází, jedna X lm = X jm ep[ πi( )] N zpracovává řádky, druhá vzniklé j= sloupce. DFT ve zpracování obrazů Vyhlazování obrazů j k transformuj řádky transformuj sloupce jk X jm X lm Aplikace DFT: Kmitočtová filtrace, DFT obrazu se bod po bodu násobí DFT filtru. Inverzní DFT získáme vyfiltrovaný obraz. např. nahrazením hodnoty pielu průměrem v -okolí ' = Počet kroků lze redukovat na vektorové operace:. Přičtení sloupce pielů zleva. Přičtení sloupce pielů zprava. Přičtení řádku pielů shora. Přičtení řádku pielů zdola Obecně lze použít u každého k použít váhu w k (masky s vahami) w w w w w w w w w Vzájemná diskrétní korelace f w k = k = / / / ' - - - - - - - - zprůměrování redukce šumu zostření Snadná paralelizace jako u metody konečných diferencí. Masky pro detekci hran - Prewittův operátor Používá se aproimace gradientu f ( = vektor, jehož složky jsou derivace skalárního pole f podle souřadnic). Prewitt: f ( ) ( ) ( ) f ( ) ( ) ( ) y f - - - - - -

) ( ) ( ) ( ) ( y f f Masky pro detekci hran - Sobelův operátor - - - - - - Sobel :