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.