Optymalizacja wydajności obliczeniowej metody elementów

Transkrypt

Optymalizacja wydajności obliczeniowej metody elementów
Optymalizacja wydajności obliczeniowej
metody elementów skończonych w architekturze CUDA
mgr inż. Adam Dziekoński
Celem niniejszej rozprawy było opracowanie numerycznie efektywnego rozwiązania
algorytmicznego i sprzętowego, które umożliwia przyspieszenie analizy problemów
elektromagnetycznych metodą elementów skończonych (MES) z funkcjami bazowymi
wysokiego rzędu. Metoda elementów skończonych w dziedzinie częstotliwości stanowi
wydajne i uniwersalne narzędzie analizy układów mikrofalowych. MES należy do grupy
metod siatkowych, w których rozważa się różniczkową postać problemu brzegowego,
zdefiniowanego w pewnym skończonym obszarze nazywanym dziedzina obliczeniową, który
dzieli się na małe fragmenty (elementy skończone). Jakość i gęstość siatki mocno wpływa na
dokładność symulacji z wykorzystaniem MES. Wysoką dokładność zwykle osiąga się
poprzez zastosowanie siatki elementów skończonych o dużej gęstości co skutkuje
zwiększeniem rozmiaru macierzy opisujących dane zagadnienie. Drugi sposób to
podwyższenie rzędu aproksymacji wewnątrz oczka siatki, które także zwiększa rozmiar
problemu i dodatkowo podnosi liczbę elementów niezerowych w każdym wierszu macierzy.
Oba podejścia prowadzą w konsekwencji do znaczącego wzrostu kosztów numerycznych w
etapie generacji i rozwiązania układów równań.
W celu przyspieszenia analizy problemów elektromagnetycznych metodą elementów
skończonych do obliczeń zastosowano akceleratory graficzne (ang. Graphics Processing
Unit,GPU) kompatybilne z architekturą CUDA (ang. Compute Unified Device Architecture)
dzięki czemu możliwe było stworzenie nowych, masywnie zrównoleglonych algorytmów.
Opracowane algorytmy i ich implementacje zostały uruchomione i przetestowane na
akceleratorze graficznym Tesla K40c (2880 rdzeni, 12 GB) oraz porównane z referencyjnymi
zoptymalizowanymi implementacjami na CPU (Intel Xeon Sandy Bridge E5-2687W, 8
wątków). Ponadto w rozprawie umieszczono wyniki badań uzyskane w trakcie Stażu
Doktorskiego NCN Etiuda 1 pod kierunkiem Profesora Okoniewskiego (Uniwersytet w
Calgary, Kanada).
W rozprawie opracowano i zaimplementowano algorytmy dedykowane wykonaniu obliczeń
na GPU w celu skrócenia czasu dwóch najbardziej kosztownych obliczeniowo etapów analizy
MES: generacji dużych macierzy sztywności i bezwładności oraz rozwiązania układów
równań liniowych.
W kontekście generacji macierzy MES opracowano algorytmy pozwalające na generację
macierzy na pojedynczym i wielu GPU. Przezwyciężono ograniczenie wynikające z rozmiaru
pamięci GPU i w zaproponowanym iteracyjnym algorytmie rozmiar generowanych macierzy
jest ograniczony wyłącznie pamięcią RAM stacji roboczej. Dziesięciokrotne skrócenie czasu
obliczeń zostało osiągnięte dzięki wielopoziomowemu zrównolegleniu obliczeń, w
szczególności w etapie całkowania numerycznego (zastosowano równoległe przetwarzanie
elementów skończonych (czworościanów), zrównoleglono obliczeniach kwadratury Gaussa,
zrównoleglono obliczenia na macierzach gęstych) i w etapie składania macierzy
zrównoleglono proces budowy macierzy rzadkiej i zaproponowano nowy zrównoleglony
algorytm konwersji między formatami reprezentacji macierzy rzadkiej.
W rozprawie opracowano hybrydową implementację iteracyjnej metody gradientów
sprzężonych z wielopoziomowym operatorem ściskającym pozwalającą efektywnie rozwiązać
układ równań liniowych z wykorzystaniem pojedynczego i kilku akceleratorów graficznych.
W trakcie rozwiązywania układu równań większość obliczeń wykonywanych jest na GPU
(np. operacja mnożenia macierzy rzadkiej przez wektor, operacje na wektorach), a
rozwiązanie relatywnie małego układu równań na najniższym poziomie operatora
ściskającego realizowane jest na CPU. Na potrzeby, kluczowej z punktu widzenia
iteracyjnego rozwiązywania układu równań, operacji mnożenia macierzy rzadkiej przez
wektor w rozprawie zaproponowano nowy format zapisu macierzy rzadkiej (Sliced ELLR-T)
zoptymalizowany do wykonania obliczeń na GPU, który jest wydajniejszy niż implementacje
firmy NVIDIA dostępne w bibliotece CUSPARSE (CUDA 7.0).
W rozprawie przeprowadzono testy numeryczne dla filtru grzebieniowego zaprojektowanego
na pasmo GSM, których rezultaty potwierdziły postawione w rozprawie tezy. Zastosowanie
GPU do wykonania obliczeń najbardziej kosztownych obliczeniowo etapów MES pozwoliło
na ok. 4,7 krotne skrócenie czasu analizy MES dla największego problemu (5 milionów
niewiadomych). Czas analizy MES skrócono z pięciu godzin (obliczenia wykonywane
wyłącznie na CPU) do ok. godziny gdy obliczenia w etapach generacji macierzy i
rozwiązania układu równań wykonywane są na GPU.