DIPLOMSKI RAD Ubrzanje CooleyTukey algoritma pomou Maxeler maine
DIPLOMSKI RAD Ubrzanje Cooley-Tukey algoritma pomoću Maxeler mašine Kandidat: Nemanja Trifunović 346/2010 Mentor: Profesor dr. Veljko Milutinović
Uvod ● Cooley-Tukey algoritam ● Maxeler platforma ○ Algoritam za izračunavanje brze Furijeove transformacije. ○ Divide and conquer ○ Primene: digitalna obrada signala, ○ Data flow (vs Control flow) ○ FPGA telekomunikacije, analiza zvučnih signala, . . . Primer Furijeove transformacije. (Izvor: https: //en. wikipedia. org/wiki/File: Rectangular_function. svg; https: //en. wikipedia. org/wiki/File: Sinc_function_(normalized). svg, Ilustracija je izdata pod Creative Commons licencom) 1/22
Postavka problema Ciljevi rada su projektovanje i implementacija: ● Najbržeg mogućeg sistema za izračunavanje brze Furijeove transformacije koristeći Maxeler mašinu. ● Sistema koji će svojim performansama nadmašiti performanse trenutno postojećih rešenja ovog problema. 2/22
Postavka problema Pogodnosti izračunavanja brze Furijeove transformacije pomoću Maxeler mašine Pogodnosti Uslov ● Ogromne količine ● Veća brzina podataka. izračunvanja. ● Manja potrošnja struje. ● Manje zauzeće prostora. 3/22
Uslovi i pretpostavke ● Korišćena Maxeler mašina ○ Dve Maxeler kartice sa oznakom MAX 3424 A. ● U eksperimentima sa multiprocesorskim sistema je korišćeno samo jedno procesorsko jezgro. 4/22
Pregled postojećih rešenja ● FFT algoritmi: Prime-factor, Bruun-ov, Rader-ov, Winograd, Bluestein-ov, … ● Vremenska složenost: O(N log N). ● Poređenje performansi javno dostupnih implementacija. ○ Matteo Frigo i Steven G. Johnson (sa univerziteta MIT) 5/22
Grafička ilustracija eksperimenata koje su radili Matteo Frigo i Steven G. Johnson. (Izvor: http: //www. fftw. org/speed/Pentium 4 -3. 60 GHz-icc) 6/22
Predloženo rešenje ● Paralelizovani radix 2 algoritam. ● Pipeline dubine O(log N) gde je N dužina ulazne sekvence. ● Inicijalno kašnjenje izračunavanja je srazmerno sa dužinom pipeline-a. ● Posle inicijalnog kašnjenja po jedan rezultat u svakom taktu. 7/22
Formalna analiza Radix 2 Cooley-Tukey algoritam radi na sledeći način: 1. Ulaznu sekvencu deli na dve jednake podsekvence tako što parni elementi čine jednu, a neparni elementi drugu sekvencu. 2. Zatim na osnovu izračunatih DFT-ova podsekvenci računa DFT cele sekvence. 8/22
Formalna analiza U radu je dato detaljno izvođenje sledeće formule. ● DFT parnih odabiraka ulazne sekvence označen je sa Ek, ● DFT neparnih odabiraka ulazne sekvence označen je sa Ok i ● e-2πk/N je označeno sa Wkn. 9/22
Grafička ilustracija protočne obrade radix 2 algoritma. 10/22
Merenje performansi predložene implementacije i analiza dobijenih podataka Vrste urađenih testova: ● Računanje brze Furijeove transformacije za 100, 1. 000, 10. 000, 1. 000 i 10. 000 uzastopnih ulaznih sekvenci dužina 8, 16, 32 i 64 odabiraka. ● Maxeler implementacija vs CPU implementacije ● Maxeler implementacija vs najbolje javno dostupne implementacije 11/22
Generisani su grafici: ● Koji porede performanse Maxeler implementacije sa drugim javno dostupnim implementacijama FFT algoritma. ● Vremena izvšavanja u zavisnosti od broja uzastopno izračunatih FFT-ova (za slučajeve kad je ulazna sekvenca veličine 8, 16, 32 i 64 odabiraka). ● Ubrzanja dobijenog korišćenjem Maxeler mašine u odnosu na izvršavanje na procesoru u zavisnosti od broja uzastopno izračunatih FFT-ova (za slučajeve kad je ulazna sekvenca veličine 8, 16, 32 i 64 odabiraka). 12/22
Prosečna vremena izvršavanja u sekundama javno dostupnih algoritama za izračunavanje brze Furijeove transformacije na različitim arhitekturama za ulaznu sekvencu dužine osam odabiraka. 13/22
Grafik dobijenog ubrzanja Maxeler implementacije u odnosu na referentnu mikroprocesorsku realizaciji pri računanja brze Furijeove transformacije u zavisnosti od broja odabiraka u ulaznoj sekvenci. 14/22
Vreme računanja uzastopnih brzih Furijeovih transformacija izraženo u sekundama u zavisnosti od broja izračunatih uzastopnih brzih Furijeovih transformacija za ulazne sekvence dužine šesnaest odabiraka za Maxeler implementaciju i referentnu implementaciju. 15/22
Grafik dobijenog ubrzanja Maxeler implementacije Cooley-Tukey algoritma u odnosu na referentnu mikroprocesorsku implementaciju Cooley-Tukey algoritma pri računanja uzastopnih brzih Furijeovih transformacija u zavisnosti od broja izračunatih uzastopnih brzih Furijeovih transformacija za ulazne sekvence šesnaest odabiraka. 16/22
Analiza skalabilnosti i uskih grla predloženog rešenja ● Transfer podataka na Maxeler karticu i sa Maxeler kartice ● Na jednoj Maxeler kartici ne postoji dovoljno hardverskih resursa ● Na Maxeler mašini nema dovoljno kartica 17/22
Analiza implementacije Maxeler implementacija Cooley-Tukey algoritma se sastoji od: 1. Preuređivanja ulazne sekvence u bit obrnuti poredak i 2. Radix 2 algoritma. 18/22
Grafička ilustracija kernela 19/22
Implementacioni detalji ● Postoje dva ulazna i dva izlazna toka podataka ● Tokovi su tipa array. Type DFEType float. Type = dfe. Float(8, 24); DFEArray. Type<DFEVar> array. Type = new DFEArray. Type<DFEVar>(float. Type, n); ● Koeficijenti Wnk se ne računaju u Maxeler mašini ● Parametri: N ○ first_level ○ last_level ○ 20/22
Zaključak ➔ Pokazano je da predloženo rešenje ima očekivane performanse i da ispravno funkcioniše. ➔ Performanse predloženog rešenja su prevazišle performanse svih javno dostupnih implementacija brze Furijeove transformacije. ➔ Da bi se ostvarila pomenuta ubrzanja neophodno je raditi više uzastopnih izračunavanja brze Furijeove transformacije. 21/22
Pitanja i odgovori Hvala na pažnji
- Slides: 23