1 Implementacja algorytmów filtracji adaptacyjnej o strukturze drabinkowej na platformie CUDAKATEDRA SYSTEMÓW AUTOMATYKI Dyplomant – Karol Czułkowski Opiekun pracy – dr inż. Michał Meller
2 Plan prezentacji Cel i zakres pracy WymaganiaPrzegląd algorytmów drabinkowej filtracji adaptacyjnej Poszczególne etapy pracy Rezultaty Realizacja wymagań Cechy programów Sposób użycia programów - film
3 Cel i zakres pracy Zakres pracyImplementacja algorytmów filtracji adaptacyjnej o strukturze drabinkowej na komputerze klasy PC i platformie CUDA – skrypty MATLAB, programy CudaC, C++ Cel pracy: Porównanie wydajności obu platform
4 Wymagania Możliwie jak najszybsze przetwarzanie danych z wykorzystaniem platformy CUDA Filtracja sygnałów zespolonych Aplikacje nie powinny ingerować w stabilność systemu komputerowego
5 Przegląd algorytmów drabinkowej filtracji adaptacyjnejGAL – Gradient Adaptive Lattice Algorytm ściśle sekwencyjny Dodatkowa, transwersalna struktura odpowiedzialna za obliczenie sygnału wyjściowego
6 Przegląd algorytmów drabinkowej filtracji adaptacyjnejLSL – Least Squares Lattice – wersja a priori ze sprzężeniem zwrotnym od sygnałów błędów Algorytm ściśle sekwencyjny
7 Przegląd algorytmów drabinkowej filtracji adaptacyjnejEstymator Burga
8 Poszczególne etapy pracySkrypty programu MATLAB Cel Sprawdzenie poprawności implementacji algorytmów filtracji adaptacyjnej Łatwość modyfikacji algorytmów i testowania wyników
9 Poszczególne etapy pracyLSL – skrypt MATLAB
10 Poszczególne etapy pracyEstymator Burga – problem stanów przejściowych
11 Poszczególne etapy pracyEstymator Burga – nakładanie bloków
12 Poszczególne etapy pracyLSL – CudaC Przepływ sterowania programu
13 Poszczególne etapy pracyEstymator Burga Możliwość wykorzystania zaawansowanego algorytmu redukcji wektora
14 Poszczególne etapy pracyC++: LSL, Estymator Burga Wprowadzenie sekwencyjnych obliczeń do kodu programów filtracji adaptacyjnej. Testowanie czasów przetwarzania sygnałów pojedynczego bloku danych.
15 Rezultaty Schemat programów BES.exe oraz LSL.exe
16 Rezultaty - LSL LSL.exe: CUDA(CudaC) oraz x86-64(C++)
17 Rezultaty – estymator BurgaBES.exe: CUDA(CudaC) oraz x86-64(C++ )
18 Realizacja wymagań Szybkość przetwarzania danych – testy „black box”.Automatyzacja generowania i analizy wyników – nieinwazyjność aplikacji. Skrypty w języku bash, pliki *.bat, spreparowane logi w formacie CSV. Typy danych wejściowych – możliwość przetwarzania sygnałów zespolonych – film.
19 Realizacja wymagań Dokumentacja kodu - doxygen
20 Cechy programów Modułowa budowa (DataReader, LSLFilter, BESFilter, DataWriter) Wspólne API – LSLFilter::processData(), BESFilter::processData() Podobny schemat działania programów LSL.exe i BES.exe –readDataBlock(), readSignals(), processData(), appendDataBlock() Programy uruchamianie z wiersza poleceń
21 Cechy programów Niskopoziomowy kodAlgorytmy pisane „od zera”. Podczas implementacji nie korzystano z żadnych bibliotek Wykorzystanie WINAPI
22 Sposób użycia programówAplikacja BES.exe w praktyce - film
23 Źródła A. H. Sayed, Adaptive Filters, John Willey&Sons, New Jersey, 2008 M. Harris, Optimizing parallel reduction in CUDA, NVIDIA Corporation