230 likes | 531 Views
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 Algoritam za izračunavanje brze Furijeove transformacije. Divide and conquer
E N D
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 • Algoritam za izračunavanje brze Furijeove transformacije. • Divide and conquer • Primene: digitalna obrada signala, telekomunikacije, analiza zvučnih signala, ... • Maxeler platforma • Data flow(vs Control flow) • FPGA 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 Furijeovetransformacije koristeći Maxeler mašinu. • Sistema koji će svojim performansama nadmašiti performanse trenutno postojećih rešenja ovog problema. 2/22
Pogodnosti izračunavanja brze Furijeove transformacijepomoću Maxeler mašine Postavka problema Pogodnosti • Veća brzina izračunvanja. • Manja potrošnja struje. • Manje zauzeće prostora. Uslov • Ogromne količine podataka. 3/22
Uslovi i pretpostavke • Korišćena Maxeler mašina • Dve Maxeler kartice sa oznakom MAX3424A. • 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/Pentium4-3.60GHz-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: • Ulaznu sekvencu deli na dve jednake podsekvencetako što parni elementi čine jednu,a neparni elementi drugu sekvencu. • Zatim na osnovu izračunatih DFT-ova podsekvenciračuna DFT cele sekvence. 8/22
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. Formalna analiza U radu je dato detaljno izvođenje sledeće formule. 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.000 i 10.000.000 uzastopnih ulaznih sekvenci dužina 8, 16, 32 i 64 odabiraka. • Maxeler implementacija vs CPU implementacije • Maxeler implementacija vs najboljejavno dostupne implementacije 11/22
Generisani su grafici: • Koji porede performanse Maxeler implementacijesa drugim javno dostupnim implementacijamaFFT algoritma. • Vremena izvšavanjau zavisnosti od broja uzastopno izračunatih FFT-ova(za slučajeve kad je ulazna sekvenca veličine 8, 16, 32 i 64odabiraka). • Ubrzanja dobijenog korišćenjem Maxeler mašineu odnosu na izvršavanje naprocesoru u zavisnosti od broja uzastopno izračunatih FFT-ova(za slučajeve kad je ulazna sekvenca veličine 8, 16, 32 i 64odabiraka). 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: • Preuređivanja ulazne sekvence u bit obrnuti poredak i • Radix 2 algoritma. 18/22
Implementacioni detalji • Postoje dva ulazna i dva izlazna toka podataka • Tokovi su tipa arrayType DFEType floatType = dfeFloat(8,24); DFEArrayType<DFEVar> arrayType = new DFEArrayType<DFEVar>(floatType, 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šenjeima očekivane performansei 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