» Blog » Wykorzystanie GPU w symulacjach CFD na potrzeby projektowania zaworów wielkogabarytowych w TBHydro

Wykorzystanie GPU w symulacjach CFD na potrzeby projektowania zaworów wielkogabarytowych w TBHydro

TBHydro sp. z o.o. jest firmą specjalizującą się w projektowaniu, produkcji oraz remontach armatury i innych urządzeń na potrzeby energetyki wodnej oraz ciepłownictwa. Początki firmy sięgają 1989 roku. Główna siedziba znajduje się w Poznaniu, a zakład produkcyjny w Wągrowcu.

  1. Wstęp – analizy numeryczne w TBHydro
  2. CPU + GPU – Różnica?
  3. Obliczenia tylko na GPU
  4. Podsumowanie

Wstęp – analizy numeryczne w TBHydro

W TBHydro analizy numeryczne są obecne praktycznie od początku istnienia firmy. Początkowo były to tylko symulacje wytrzymałościowe (MES), a obecnie wykonujemy również analizy przepływowe (CFD) i sprzężone (FSI). TBHydro produkuje zawory na zlecenie klientów  według konkretnej, często unikatowej specyfikacji, dlatego większość naszych produktów  jest analizowana wytrzymałościowo, a także zmęczeniowo. Od roku 2018 rozszerzyliśmy nasze kompetencje o analizy CFD. Początkowo było to Ansys CFX, jednak z czasem przeszliśmy na dającego dużo więcej możliwości Ansys Fluent. Głównym czynnikiem zmiany solvera było wprowadzenie technologii Fluent Mosaic Meshing, która znacznie skraca czas przygotowania modelu numerycznego, dając siatkę o bardzo dobrych parametrach jakościowych przy stosunkowo małym nakładzie pracy i czasu. Kolejnym ważnym powodem był dla nas sam czas obliczeń, który wraz z pojawieniem się solvera GPU uległ drastycznej zmianie.

Rys. 1. Przepustnica typu BTV-B DN3250 PN4 – montaż w warsztacie TBHydro

Przez lata jedyną możliwością przyspieszenia obliczeń CFD było wykorzystanie dużej ilości procesorów (CPU) lub wykorzystanie GPU do przyspieszenia niektórych typów symulacji. Natomiast obecnie możemy korzystać z zupełnie nowego solvera, który wykorzystuje wyłączenie karty GPU. Początkowo w przemysłowych realiach wykorzystywanie tej technologii nie było popularne i może wynikało to z dostępności odpowiednich kart GPU. Dziś, posiadając Ansys w najnowszej wersji 2023R1,  można z całą pewnością powiedzieć, że wsparcie GPU działa i realnie skraca czas symulacji!

W TBHydro do symulacji CFD wykorzystujemy stację roboczą HP Z4 G4 (Intel Xeon W-2133, 64GB DDR4 ECC RAM, Nvidia Quadro P4000 8GB) lub elastyczną chmurę obliczeniową Google Cloud (w zależności od potrzeb do 128 CPU, 512GB RAM).

CPU + GPU – Różnica?

Rys. 2. Przepustnica typu BTV – analiza strat ciśnienia i momentu hydraulicznego

W TBHydro wykonaliśmy serię porównawczych symulacji celem poznania, jaki wpływ na czas symulacji ma wsparcie CPU za pomocą GPU. W tym celu wykorzystano typowy dla nas przypadek symulacji przepustnicy typu BTV, który jest naszym popularnym produktem. Analizy CFD dla tego typu zaworów z reguły wykorzystywane są do wyznaczenia współczynnika strat, a także do analiz momentów hydraulicznych działających na dysk. Model badawczy składał się z około 1,75mln elementów wykonanych metodą poly-hexcore (Fluent Mosaic Meshing). Wykonano szereg symulacji dla kilku wersji zasobów: 4CPU i 3CPU+1GPU (na co pozwala standardowa licencja 1-stanowiskowa) oraz dodatkowo 5CPU+1GPU (co wymaga już licencji HPC). Symulacje wykonano także na 2 wersjach oprogramowania Ansys: 2022R1 oraz 2023R1.

Rys. 3. Fluent Launcher 2022R1 – aktywacja wspomagania GPU

            Poniżej przedstawiono wykres, dla którego punktem wyjścia jest symulacja wykonana na 4CPU w Ansys Fluent w wersji 2022R1 (100%) oraz procentowe porównanie szybkości symulacji dla innych wersji (zasobów i/lub wersji oprogramowania). Wszystkie symulacje wykonały 100 iteracji w steady-state osiągając podobną zbieżność.

Wzrost wydajności z wersji na wersję (2022R1 vs 2023R1) jest odczuwalny.

Rys. 4. Szybkość symulacji – CPU vs CPU wspomagane GPU

W przypadku najprostszej konfiguracji 4CPU mamy wzrost szybkości o około 7%, natomiast w przypadku 3CPU+1GPU ten przyrost to już 10%.
Co najważniejsze, wsparcie GPU jest także doskonale widoczne w obu analizowanych wersjach oprogramowania. Zamieniając 4CPU na 3CPU+1GPU, czyli mieszcząc się w limitach standardowej licencji, otrzymujemy wzrost wydajności rzędu 31% (dla wersji 2022R1) i 35% (dla wersji 2023R1).

Obliczenia tylko na GPU

Rys. 5. Fluent Launcher 2023R1 – aktywacja native GPU solver

Wersja Fluent 2023R1 wprowadza także znaczącą nowość – solver native GPU. Solver ten mocno przyspiesza czas symulacji (nawet kilkukrotnie!), a wykorzystuje do tego w całości naszą kartę GPU. Co prawda jest on jeszcze dość mocno ograniczony – ograniczona liczba modeli turbulencji (obecny jest k-w SST), dostępny tylko schemat SIMPLE (brak COUPLED) oraz kilka innych ograniczeń. Native GPU dostępny jest tylko w licencji CFD Enterprise. Jednak jeśli poziom ograniczeń jest dla nas akceptowalny, to finalnie możemy uzyskać naprawdę szybką symulację o jakości wyników nie odbiegającej od klasycznego solvera CPU. TBHydro wraz z MESco przeprowadziło symulacje porównawcze między solverem CPU (wykorzystując procesory Intel Xeon W-2133 oraz Intel Xeon Gold 6242R), a solverem native GPU (wykorzystując układy GPU Quadro P4000 oraz Quadro RTX 8000). Otrzymano bardzo obiecujące wyniki, które dają nadzieję na realne skrócenie czasu symulacji i ograniczenie kosztów związanych z symulacją CFD.

Na karcie P4000 uzyskaliśmy przyspieszenie rzędu 500%, a w przypadku karty RTX 8000 to było to prawie 700%! Oznacza to, że w tym samym czasie możemy wykonać znacznie więcej symulacji, co daje nam większą elastyczność w procesie rozwoju naszych produktów.

Rys. 6. Szybkość symulacji – CPU solver vs native GPU solver

Podsumowanie

Posiadając aktualną wersja oprogramowania Ansys 2023R1 oraz stację roboczą wyposażoną w choćby średniej klasy kartę GPU można znacząco wpłynąć na czas symulacji, który bezpośrednio można przełożyć na redukcję kosztów. Każde z rozwiązań (łącznie CPU z GPU lub native GPU solver) ma jednak pewne ograniczenie – analizowany case musi się mieścić w RAMie karty GPU. W naszym przypadku (Nvidia Quadro P4000 8GB) dla tryb “double precision” jest to limit około 2mln elementów, co dla siatkowania metodą poly-hexcore to wcale niemało. Dodatkowo liczbę elementów można 2-krotnie zwiększyć działając w trybie “single precision”. Dla solvera native GPU dochodzi dodatkowo cały szereg innych ograniczeń. Należy mieć na uwadze, że solver native GPU dopiero co debiutuje i można przypuszczać, że będzie szybko aktualizowany i wzbogacany o kolejne funkcjonalności. Można zatem pokusić się o stwierdzenie, że w niedalekiej przyszłości solver GPU na stałe zagości w świecie CFD.

Autor: Szymon Wróblewski, TBHydro sp. z o.o.