KATEDRA SYSTEMÓW AUTOMATYKI Dyplomant – Karol Czułkowski

1 Implementacja algorytmów filtracji adaptacyjnej o struk...
Author: Martyn Paździora
0 downloads 2 Views

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