Zadane na wykonane Projektu Zespołowego Celem projektu jest uzyskane następującego szeregu umejętnośc praktycznych: umejętnośc opracowana równoległych wersj algorytmów (na przykładze algorytmów algebry lnowej cyfrowego przetwarzana sygnałów); umejętnośc projektowana wyspecjalzowanych urządzeń równoległych potokowych (akceleratorów) na pozomach strukturalnym logcznym; umejętnośc opracowana modułów składowych systemów komputerowego wspomagana projektowana (CAD) w/w algorytmów akceleratorów; umejętnośc pracy w zespole projektantów. Ze względu na dość szerok obszar podejmowanych zagadneń projekt został podzelony na dwe bezpośredno ne powązanych ze sobą częśc, które można wykonywać nezależne. Ops poszczególnych częśc jest przedstawony nżej. Zadane do częśc 1. W ramach tej częśc należy opracować projekt wyspecjalzowanego urządzena potokowego realzującego algorytm szybkego przetwarzana (transformację) Fourera (ang. FFT Fast Fourer Transformaton) na wektorze danych wejścowych X(N), w którym każdy element x X(N) jest lczbą zespoloną, tj. x = Rex + j Imx, gdze = 1, 2,..., N = 2 n, j 2 = -1, a n - dowolna lczba naturalna. Urządzene pownno zawerać maksmum dwa blok pamęc typu RAM (dla przechowana danych wejścowych wynków), jeden blok pamęc stałej ROM (dla przechowana zespolonych współczynnków obrotu W = ReW + j ImW algorytmu FFT, gdze = 1, 2,..., N / 2), potokową jednostkę przetwarzającą (ALU) o zadanej lczbe bloków mnożena sumatorów oraz blok sterowana wraz z układam dodatkowym (np. multplekseram, rejestram, td.) pozwalającym na prowadzene oblczeń w trybe potokowym. Urządzene ma funkcjonować w oparcu o algorytm FFT o podstawe 2 z podzałem w dzedzne częstotlwośc lub czasu, z odwróconą btowo kolejnoścą odczytywana danych wejścowych lub zapsywana wynków wykonywać operację bazową FFT (motylek) w określonym czase. Wszystke w/w parametry urządzena określane są (w zależnośc od numeru zadana) w oparcu o tab.1. Proponuje sę następujący plan pracy nad perwszą częścą projektu. Najperw wykonuje sę projekt potokowej jednostk przetwarzającej (ALU) realzującej operację bazową FFT sporządza sę tablca pracy ALU dla wybranej długośc N wektora danych wejścowych, np. dla N = 16. Następne formuje sę schemat całego urządzena, tj. do ALU zostają dodane blok pamęc RAM, ROM oraz dodatkowe układy pozwalające na prowadzene przez urządzene oblczeń w trybe potokowym. To pozwala na formowane specyfkacj (wymagań do) bloku sterowana urządzenem. Następne wykonuje sę projekt bloku sterowana, włączne z generatoram formującym adresy zapsu/odczytu dla wszystkch bloków pamęc RAM ROM. Następne członkowe zespołu tworzą model bloku sterowana (np. w języku VHDL) sprawdzają jego dzałana wykorzystując Actve-VHDL, MatLab lub nne narzędza programowe. Ze względu na obszerność zagadneń proponuje sę wykonywać projekt w trzyosobowych zespołach. Wadomośc teoretyczne na temat algorytmu FFT można znaleźć w ogólne dostępnej lteraturze, np. 1. R. G. Lyons. Wprowadzene do cyfrowego przetwarzana sygnałów. WKŁ, 1999 r. 2. C. Marven, G. Ewers. Zarys cyfrowego przetwarzana sygnałów. WKŁ, 1999 r. 3. T. H. Cormen, C. E. Leserson, R.L.Rvest, C. Sten. Wprowadzene do algorytmów. WNT, 2005 r. oraz w Internece. W zwązku z tym, w nnejszym plku umeszczono tylko nformacje nezbędne do realzacj projektu, m. n. przykładowe grafy algorytmów 16-punktowego (N=16) FFT o podstawe 2 z podzałem w dzedzne częstotlwośc czasu, z odwróconej btowo kolejnoścą
odczytywana lub zapsywana danych, wzory opsujące operację bazowe FFT, tablcę tab.2 lustrującą sposób formowana odwróconej btowo kolejnośc adresów dla układów pamęc, przykładowy schemat ALU, fragment bloku sterowana oraz przykładowy schemat całego urządzena. Nr zad. FFT z podzałem w dzedzne: częstotlwośc (F), czasu (T) Tab.1 Tablca warantów zadana dla częśc 1 projektu Lczba bloków mnożena sumatorów, Σ Odwrócona btowo kolejność danych: na wejścu (We), na wyjścu (Wy) Maksymalna długość cyklu oblczenowego (taktów zegara t) 1 F 1, 1 We 6 2 F 1, 2 We 4 3 F 2, 2 We 3 4 F 2, 3 We 2 5 F 2, 4 We 2 6 T 2, 4 We 2 7 F 1, 1 Wy 6 8 F 1, 2 Wy 4 9 F 2, 2 Wy 3 10 F 2, 3 Wy 2 11 F 2, 4 Wy 2 12 T 2, 4 Wy 2 13 F 2, 6 Wy 2 14 F 2, 6 We 2 15 T 1, 2 Wy 4 16 T 1, 2 We 4 I. FFT o podstawe 2 z podzałem w czase, (FFT radx-2, DIT) Operacja bazowa (motylek) B A W C A +1 A A + 1 = = B B + C C W W B oraz C wartośc wejścowe, A oraz A +1 przeobrażone wartośc, W współczynnk obrotu (waga) Wyrażena, które muszą być oblczone w ALU (operacja bazowa) Re A Im A + = = Re B Im B + ReC + Re C ReW ImW ImC + ImC ImW ReW Re A 1 = Re B Re C ReW + ImC ImW Im A 1 = Im B Re C ImW ImC ReW +
Graf operacj bazowej ReC ReW ImW ImC ReB ImB ReA ImA ReA+1 ImA +1 Schemat potokowego ALU realzującego operację bazową (zaznaczono czerwonym kolorem) Parametry podstawowe: 1 blok mnożący; 2 sumatory; czas wykonana operacj bazowej (długość cyklu oblczenowego) 4 takty zegarowe 4 3 2 1 nr taktu ImC ImC ReC ReC 4 3 2 1 ReW ImW ImW ReW MUX SM ± A 4 3 2 1 -- -- ImB ReB ALU MUX SM ± A +1 Blok sterowana...
Graf 16-punktowego FFT o podstawe 2, z podzałem w czase odwrócona btowo kolejność danych wejścowych normalne uporządkowane wynk (16-pont FFT; radx-2; DIT; bt reversed nput data order; normally ordered output data) N = 2 N = 4 N = 8 0 0 8 1 4 2 12 3 2 4 10 5 6 6 14 7 1 8 9 9 5 W5 10 13 11 3 12 11 13 7 14 15 15 log 2 N W1 W3 W7 Graf 16-punktowego FFT o podstawe 2, z podzałem w czase odwrócona btowo kolejność wynków normalne uporządkowane dane wejścowe (16-pont FFT; radx-2; DIT; bt reversed output data order; normally ordered nput data) N = 8 N = 4 N = 2 0 0 1 8 2 4 3 12 4 2 5 10 6 6 7 14 8 1 9 9 10 5 11 13 12 3 13 11 14 7 15 15 log 2 N W1 W5 W3 W7
Schemat ogólny urządzena ROM BLOK STER. RAM1 wejśce FFT RAM2 Fragment bloku sterowana GNR FDv NOR OR NOT Wynk symulacj dzałana bloku sterowana generatorów adresu
II. FFT o podstawe 2 z podzałem w dzedzne częstotlwośc FFT radx-2, DIF Operacja bazowa (motylek) B A W C A +1 A A = B + C + 1 = ( B C ) W B oraz C wartośc wejścowe, A oraz A +1 przeobrażone wartośc, W współczynnk obrotu (waga) Wyrażena, które muszą być oblczone w ALU (operacja bazowa): Re A = Re B + ReC + Im A = Im B + ImC Re A 1 = (Re B ReC ) ReW (Im B ImC ) ImW Im A 1 = (Re B ReC ) ImW + (Im B ImC ) ReW + Graf operacj bazowej ReB ReC ImB ImC ReW ImW ReA ImA ReA +1 ImA +1
Schemat potokowego ALU realzującego operację bazową Parametry podstawowe: 2 blok mnożące; 6 sumatorów; czas wykonana operacj bazowej (długość cyklu oblczenowego) 2 takty zegarowe ReB ReC ImB ImC - + - + ImW ReW MUX MUX - + ReA +1 ReA ImA +1 ImA Tab. 2. Zasada formowana odwróconej btowo kolejnośc adresów danych We/Wy Nr kroku (lczba kroków wynos log 2 N = 4) 1 2 3 4 0000 0 0000 0 0000 0 0000 0 1000 8 0100 4 0010 2 0001 1 0100 4 0010 2 0001 1 1000 8 1100 12 0110 6 0011 3 1001 9 0010 2 0001 1 1000 8 0100 4 1010 10 0101 5 1010 10 0101 5 0110 6 0011 3 1001 9 1100 12 1110 14 0111 7 1011 11 1101 13 0001 1 1000 8 0100 4 0010 2 1001 9 1100 12 0110 6 0011 3 0101 5 1010 10 0101 5 1010 10 1101 13 1110 14 0111 7 10110 11 0011 3 1011 9 1100 12 0110 6 1011 11 1101 13 1110 14 0111 7 0111 7 1011 11 1101 13 1110 14 1111 15 1111 15 1111 15 1111 15
Graf 16-punktowego FFT o podstawe 2, z podzałem w dzedzne częstotlwośc odwrócona btowo kolejność danych wejścowych normalne uporządkowane wynk (16-pont FFT; radx-2; DIF; bt reversed nput data order; normally ordered output data) N = 2 N = 4 N = 8 0 0 8 1 4 2 12 3 2 4 10 5 6 6 14 7 W1 1 8 9 9 W5 5 10 13 11 W3 3 12 11 13 W7 7 14 15 15 log 2 N Graf 16-punktowego FFT o podstawe 2, z podzałem w dzedzne częstotlwośc odwrócona btowo kolejność wynków normalne uporządkowane dane wejścowe (16-pont FFT; radx-2; DIF; bt reversed output data order; normally ordered ntput data) N = 8 N = 4 N = 2 0 0 1 8 2 4 W1 3 12 4 2 5 10 6 6 7 W3 14 8 1 9 9 W5 10 5 11 13 12 3 13 11 14 7 W7 15 15 log 2 N
Zadane do częśc 2. W ramach tej częśc projektu należy opracować dwa podstawowe moduły środowska komputerowego wspomagana projektowana równoległych wersj algorytmów regularnych oraz archtektur równoległych akceleratorów dla ch realzacj. Algorytm wejścowy należy do grupy algorytmów algebry lnowej jest zadany przy pomocy fragmentu programu zawerającego jedno lub klka gnazd pętl o różnej złożonośc (tj. zawerającego rożną lczbę włożonych nstrukcj pętl). Co należy zrobć: 1. Zgodne z otrzymanym od prowadzącego numerem warantu zadana wybrać z tab. 3 odpowedn algorytm AL. Należy zapoznać sę z jego opsem grafem (nformacje te umeszczono na końcu tego plku). 2. Zapoznać sę z metodą konstruowana grafów zależnośc nformacyjnych algorytmów zadanych za pomocą włożonych nstrukcj pętl, zwracając szczególną uwagę na sposób uzyskana współrzędnych dla poszczególnych jego werzchołków oraz na sposoby otrzymana lsty jego łuków (w/w metoda będze szczegółowo omawana na wykładze z przedmotu Projektowane systemów nformatycznych ). 3. Opracować moduł GRAF wchodzący do składu środowska CAD, którego zadanem jest generowane opsu grafu algorytmu AL (lstę werzchołków łuków) dla różnych rozmarów N macerzy danych wejścowych, np. N = 3 10. Zespół może dodatkowo opracować umeścć w programe GRAF moduł umożlwający wzualzację grafu AL. 4. Opracować moduł DESIGNER (lub ewentualne rozbudować moduł GRAF) realzujący metodę odwzorowana n - wymarowego grafu algorytmu w (n-1) - wymarowe archtektury akceleratorów równoległych (gdze n najwększy wymar gnazda pętl w algorytme). Wyżej wymenona metoda będze szczegółowo omawana na wykładze z przedmotu Projektowane systemów nformatycznych. 5. Korzystając z z zaprojektowanych modułów GRAF DESIGNER zaprojektować dwe (n - 1) - wymarowe archtektury akceleratorów równoległych, z których perwsza ma najwększy współczynnk obcążena elementów przetwarzających EP (lub najwększe przyspeszene), a druga jest lepsza od perwszej pod względem nnego (jednego lub klku) kryterum np.: lczba EP; czas wykonana algorytmu; lczba kanałów We/Wy (zewnętrznych wewnętrznych); lczba różnych typów EP. Opracować programy wykonawcze lub tablce pracy dla jednego dowolnego procesora w każdej z zaprojektowanych archtektur.
Tabela 3. AL Nazwa metody lub zagadnena Uwag 1 Rozkład LU macerzy metodą Gaussa Kolejność oblczeń : według werszy macerzy 2 Rozkład LU macerzy metodą Gaussa Kolejność oblczeń : według kolumn macerzy 3 Rozkład LL T macerzy metodą Cholesky ego Symetryczna macerz wejścowa 4 Elmnacja Gaussa M A=A* Kolejność oblczeń : według werszy macerzy 5 Elmnacja Gaussa M A=A* Kolejność oblczeń : według kolumn macerzy 6 Rozkład QR macerzy metodą Gvensa Q A=R Macerz prostokątna 7 Rozkład QR macerzy metodą Gvensa Q A=R Macerz kwadratowa Hessenberga 8 Rozkład QR macerzy metodą Gvensa Q A=R Macerz kwadratowa pasmowa Hessenberga 9 Redukcja wsteczna (rozwązywane układu równań lnowych A x=b) 10 Metoda podstawena (rozwązywane układu równań lnowych A x=b) 11 Rozwązane układu równań A X=B metodą Jordana- Gaussa 12 Rozwązane układu równań A X=B metodą Jordana- Gaussa Krótk ops algorytmów Macerz górna trójkątna pasmowa. Kolejność oblczeń: według werszy macerzy Macerz dolna trójkątna pasmowa. Kolejność oblczeń: według kolumn macerzy Klka wektorów wyrazów wolnych. Kolejność oblczeń: według werszy macerzy Klka wektorów wyrazów wolnych. Kolejność oblczeń: według kolumn macerzy 1. Rozkład LU macerzy metodą Gaussa Dane wejścowe: macerz A(N,N) Wynk: L(N,N) - dolna macerz trójkątna, U(N,N) - górna macerz trójkątna, take, że A = L U. A(N,N) = U L for :=1 to N-1 do begn for j:=+1 to N do f a <> 0 then l j := a j / a else l j := 0; for j:=+1 to N do for k:=+1 to N do a jk := a jk - l j a k ; end Wynk : l =1; u j = a j, dla <= j.
2. Metoda elmnacj Gaussa przekształcena macerzy kwadratowej do postac macerzy górnej trójkątnej. Dane wejścowe: macerz A(N,N) wektor wyrazów wolnych b(n) równana A x=b, które razem formują macerz rozszerzoną A (N, N+1) (patrz rysunek). Wynk: A*(N,N) - górna macerz trójkątna, b*(n) - wektor, take, że M A = A*, M b=b* (gdze M - dolna macerz trójkątna) A(N,N) x = b A(N,N) b A* b* 0 for :=1 to N-1 do begn for j:=+1 to N do f a <> 0 then m j := - a j / a else m j := 0; for j:=+1 to N do for k:=+1 to N+1 do a jk := a jk + m j a k ; end Wynk: a* j = a j, dla <= j; b * = a,n+1. 3. Rozkład LL T macerzy metodą Cholesky ego. Dane wejścowe: macerz A(N,N) symetryczna. Wynk: dolna trójkątna macerz L(N,N), taka że A = L L T A(N,N) = L T L for := 1 to N do begn a := SQRT(a ); for j := +1 to N do a j := a j / a ; for j := +1 to N do for k := +1 to j do a jk := a jk - a j * a k ; end; Wynk: l j := a j dla >= j.
4. Rozkład QR macerzy metodą Gvensa Dane wejścowe: macerz A(M,N) (N<=M) Wynk: macerz górna trójkątna R for :=1 to N do begn for j:=+1 to M do begn a := sqrt ((a ) 2 + (a j ) 2 ); c j := a / a ; s j := a j / a ; end; for j:=+1 to M do for k:=+1 to N do begn temp:= c j a k + s j a jk ; a jk := -s j a k + c j a jk ; a k := temp; end end A(M,N) R 0 Wynk: r j = a j dla <= j 5. Redukcja wsteczna (rozwązane układu równań A x=b z trójkątną macerzą) Dane wejścowe: macerz A(N,N) górna trójkątna, wektor b(n). Wynk: wektor newadomych x(n) 0 A x = b Wynk for := N downto 1 do begn x := b / a ; for j := -1 downto 1 do b j := b j - a j x ; end;
6. Metoda podstawena (rozwązane układu równań A x=b z macerzą trójkątną) Dane wejścowe: macerz A(N,N) dolna trójkątna, wektor b(n). Wynk: wektor newadomych x(n) A 0 x = b Wynk for := 1 to N do begn x := b / a ; for j := +1 to N do b j := b j - a j x ; end; 7. Rozwązane układu równań lub odwracana macerzy metodą Jordana-Gaussa A X=B. Dane wejścowe: macerz współczynnków A(N,N), macerz wyrazów wolnych B(N,K) które wraz z macerzam jednostkową I zerową O tworzą macerz F (patrz rysunek). Wynk: macerz X(N,K) A(N,N) X(N,K) = B(N,K) F F* A(N,N) B(N,K) A* B* 0 -I(N,N) 0 0 X for :=1 to N do begn for j:=+1 to N+ do m j := - f j / f ; for j=+1 to N+ do for k=+1 to N+K do f jk = f jk + m j f k ; end; gdze f j = a j, =1,2,...,N, j=1,2,...,n; f j = b j, =1,2,...,N, j=n+1,n+2,...,n+k; f (N+) = -1, =1,2,...,N; f (N+)j = 0, =1,2,...,N, j=+1,+2,...,n+k; Wynk: x j = f (N+)(N+j), =1,2,...N, j=1,2,...,k.
Rozkład LU macerzy A(4,4) metodą Gaussa Grafy wybranych algorytmów (opracowane przez studentów) (3,4,3) l 43 (3,4,4) Rys.1 d 1 d 3 d 2 d 4 (2,3,3) l 32 k (2,4,4) l 42 a j (1,2,4) (1,2,3) (1,2,2) (1,2,1) l 21 a 14 a 24 (1,3,4) a 13 a 23 a 12 a 22 a 43 a 11 a 21 l 31 a 33 (1,4,4) (1,3,1) 32 (1,4,2) a 44 a 31 l 41 a 43 a 42 a 41 Elmnacja Gaussa M A(4,4)=A*, M b(4)=b* Rys.2
LL T - dekompozycja macerzy A(4,4) metodą Cholesky ego l 44 Rys.3 4,4,4 l 33 3,3,3 l 43 k l 22 2,2,2 1,1,1 a 11 1,2,1 l j 32 l 11 l 21 a 21 l 31 1,3,1 1,2,2 a 22 l42 a 33 1,4,4 l 41 a 32 a 44 a 31 a 43 a 42 a 41 Mnożene macerzy przez wektor A(3,3) b(3)=c(3) Rys.4 j b b 2 b 3 0 0 0 b 1 1,1 2,1 3,1 1,2 2,2 3,2 1,3 2,3 3,3 c 1 c 2 c 3 c Przypadek mnożena macerzy kwadratowej pasmowej A(7,7) b(7)=c(7), szerokość pasma L=4 Rys.5
Rozwązane układu równań metodą teracj prostej x =D(3,3) x(3)+b(3) b Rys.6 j x k x 2 x 3 b 1 x 1 1,1 2,1 1,2 2,2 1,3 2,3 x 1 x 2 x 3 b 2 b 3 3,1 3,2 3,3 x k+1 W przypadku macerzy kwadratowej pasmowej graf będze podobny do grafu przedstawonego na Rys.5 (mnożene macerzy pasmowej przez wektor) QR dekompozycja macerzy metodą Gvensa Q A=R (Macerz prostokątna A(4,3)) (3,4,3) r 33 Rys.7 d 1 a 33 3 a 44 3 (2,3,2) d 3 d 4 d 2 c 32,s 12 (2,4,3) c 42,s 42 r 23 r 22 2 a 33 2 a 22 2 a 42 2 a 43 k 2 a 32 (1,2,2) a 13 a 23 (1,3,3) j (1,4,3) (1,2,1) c 21,s 21 a 12 a 22 a 33 c 31,s 31 a 43 r 13 a 11 a 21 a 32 (1,3,1) c 41,s 41 a 42 r 12 a 31 a 41 r 11 (W przypadku macerzy kwadratowej Hessenberga graf będze podobny do grafu przedstawonego na Rys.8)
Metoda podstawena dla rozwązywana układu równań lnowych A(6,6) x(6)=b(6) (Dla macerzy pasmowej: patrz mnożene macerzy pasmowej przez wektor) (6,6) x6 Rys.8 (3,3) x3 (1,1) (1,7) j b1 b2 b3 b4 b5 b6 x1 Redukcja wsteczna rozwązywana układu równań lnowych A x=b (Graf jest podobny do grafu przedstawonego na Rys.8) Rozwązane układu równań metodą Jordana-Gaussa A(4,4) X(4,2)=B(4,2) Rys.9
Rozwązane układu równań metodą Gaussa-Sedela A(4,4) x(4)=b(4) Rys.10 x 1 x 2 x 3 x 4 j b 1 1,1 1,2 1,3 1,4 b 2 2,1 2,2 2,3 2,4 b 3 3,1 3,2 3,3 3,4 b 4 4,1 4,2 4,3 4,4 x1 x2 x3 x4 X k+1 Splot dwóch funkcj (fltracja jednowymarowa) j Rys.11 h a 3 y 2 a N y N y (N+1) y (N+2)... y (K) y (K+1) y (K+2)... y (N+K-1) y 3............................................ y 1 a 2 a 1 1,1 2,1 K,1 x 1 x 2 x 3 x 4 x 5 x 6... x K