Accelerating High-Order Finite Element Simulations at Extreme Scale with FP64 Tensor Cores

Deze paper demonstreert dat het gebruik van FP64-tensorcores op NVIDIA-GPU's, gecombineerd met kernelfusie-optimalisaties, de prestaties en energie-efficiëntie van high-order eindige-elementensimulaties aanzienlijk verbetert, met een schaalbaarheid tot bijna 10.000 GPU's op het exascale-systeem Alps.

Jiqun Tu, Ian Karlin, John Camier, Veselin Dobrev, Tzanio Kolev, Stefan Henneking, Omar Ghattas

Gepubliceerd Wed, 11 Ma
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

Stel je voor dat je een gigantische, complexe puzzel moet oplossen. Deze puzzel is eigenlijk een computermodel van een tsunami die over de oceaan raast. Om te voorspellen waar het water naartoe gaat en hoe hoog de golven worden, moeten wetenschappers miljarden kleine rekensommen doen. Dit heet een "finite element simulatie".

Vroeger was dit als het proberen om die puzzel op te lossen met een potlood en papier: het kan, maar het duurt eeuwen.

Het probleem: De "Bureaublad" is te klein
In de wereld van supercomputers (zoals de enorme machines in Zwitserland waar dit onderzoek plaatsvond), werken de processors als een team van duizenden werknemers. Elke werknemer heeft een klein bureau (geheugen) om tijdelijke notities op te zetten.

De oude manier van werken was inefficiënt: elke werknemer moest zijn eigen kopie van de gegevens van een grote stapel papier halen, ze op zijn bureau leggen, een som maken, en de resultaten weer wegleggen. Omdat iedereen zijn eigen kopieën maakte, was hun bureau snel vol, en ze spendeerden 90% van hun tijd aan het heen en weer lopen van de stapel naar het bureau, in plaats van aan het rekenen zelf.

De oplossing: De "Super-Bureaus" (Tensor Cores)
NVIDIA heeft een nieuw type computerchip gemaakt met speciale "Tensor Cores". Je kunt deze zien als een team van 32 werknemers die een gemeenschappelijk, supersnel bureau delen.

In plaats dat elke werknemer zijn eigen kopie van de gegevens haalt, halen ze samen één keer de gegevens, en dan werken ze allemaal tegelijkertijd aan die ene set. Dit is wat de auteurs in dit paper hebben gedaan: ze hebben de software herschreven zodat de rekenkracht van deze "Super-Bureaus" (de Tensor Cores) wordt gebruikt, zelfs voor de zware, dubbel-precisie rekeningen die nodig zijn voor wetenschappelijke nauwkeurigheid.

De analogie van de "Geknipte Puzzelstukken"
De auteurs ontdekten dat de rekenopdrachten niet perfect pasten bij de standaard formaat van deze Super-Bureaus. Het was alsof je een puzzelstukje van 25x5 probeerde te passen in een vakje dat gemaakt is voor 8x8. Er bleef veel ruimte over die niet werd gebruikt.

Om dit op te lossen, hebben ze twee slimme trucs toegepast:

  1. De "Geknipte" aanpak: Ze hebben de grote puzzelstukjes op een slimme manier opgedeeld en herschikt, zodat ze perfect in de vakjes van de Super-Bureaus passen. Hierdoor verdwijnen de "dode hoeken" en wordt de ruimte optimaal benut.
  2. De "Samengevoegde" aanpak (Kernel Fusion): Vroeger moesten de werknemers na elke kleine som even pauzeren, hun resultaten opschrijven, en dan pas de volgende stap doen. De auteurs hebben de software zo aangepast dat ze meerdere stappen in één keer doen zonder te stoppen. Het is alsof je niet meer tussendoor je notitieboekje dichtdoet, maar gewoon doorgaat met schrijven tot de hele zin af is. Dit bespaart enorm veel tijd.

Het resultaat: Een tsunami in een seconde
Door deze verbeteringen is het resultaat verbluffend:

  • Snelheid: De simulaties zijn tot 2 keer sneller geworden. Wat vroeger uren duurde, gaat nu in een flits.
  • Energie: Omdat de computers minder tijd nodig hebben om te "lopen" en meer tijd besteden aan het "rekenen", verbruiken ze tot 83% minder energie. Het is alsof je dezelfde afstand rijdt, maar met een auto die veel zuiniger is.
  • Schaalbaarheid: Ze hebben dit getest op een van de grootste computers ter wereld (de "Alps" in Zwitserland) met bijna 10.000 van deze krachtige chips. Het systeem werkte perfect samen, alsof het één enorme, super-efficiënte machine was.

Waarom is dit belangrijk?
Dit is niet alleen een theoretisch experiment. Dit wordt gebruikt voor een digitale tweeling van een tsunami. Als er een aardbeving is, kan dit systeem binnen één seconde voorspellen hoe hoog de tsunami zal worden en welke kustlijnen in gevaar zijn. Dit geeft mensen kostbare tijd om te evacueren.

Kortom: De auteurs hebben de "motor" van de computercode getuned, zodat hij niet meer vastloopt in de "verkeersdrukte" van het geheugen, maar soepel en razendsnel over de weg rijdt. Hierdoor kunnen we levens redden door snellere en zuinigere voorspellingen.