GPU- und Beschleuniger-Computing in der Physik
Grafikprozessoren und andere Beschleuniger verfügen über Tausende von leichtgewichtigen Kernen, die sich hervorragend für die datenparallele Arithmetik von Physiksimulationen eignen und große Beschleunigungen für Molekulardynamik, Gitter- und Rasterberechnungen liefern.
Definition
GPU- und Beschleuniger-Computing in der Physik ist die Verwendung hochparalleler Koprozessoren mit vielen einfachen Kernen zur Ausführung der datenparallelen Kernels einer Simulation, wodurch ein hoher Durchsatz bei geeigneten physikalischen Arbeitslasten erzielt wird.
Scope
Dieses Thema behandelt das Beschleuniger-Computing für die Physik: das massiv datenparallele GPU-Modell, die Speicherhierarchie und die Bedeutung von Speicherzugriffsmustern, die Abbildung von Physik-Kernels wie Kraftberechnungen und Stencil-Updates auf Beschleuniger sowie die Kompromisse der heterogenen CPU-GPU-Programmierung. Es befasst sich sowohl mit der Leistung als auch mit der Programmierbarkeit.
Core questions
- Warum eignen sich GPUs für die datenparallele Arithmetik vieler Physiksimulationen?
- Wie beeinflusst die GPU-Speicherhierarchie die erreichbare Leistung?
- Welche Physik-Kernels lassen sich gut auf Beschleuniger abbilden und welche nicht?
- Wie werden heterogene CPU-GPU-Simulationen organisiert?
Key theories
- Massiv datenparallele Ausführung
- GPUs führen dieselbe Operation über Tausende von Threads auf verschiedenen Daten aus, was Simulationen entspricht, bei denen identische Updates auf viele Partikel oder Gitterpunkte angewendet werden, was zu großen Durchsatzsteigerungen führt.
- Speicherhierarchie und Zugriffsmuster
- Die GPU-Leistung hängt von einem zusammengefassten Speicherzugriff und der effektiven Nutzung des schnellen On-Chip-Speichers ab, daher müssen Algorithmen umstrukturiert werden, um die vielen Kerne mit Daten zu versorgen, anstatt auf den Speicher zu warten.
- Beschleunigte Physik-Kernels
- Kraftberechnungen in der Molekulardynamik, Stencil-Updates in Gitterlösern und Gitter-Updates in der Feldtheorie wurden auf GPUs portiert, um Größenordnungen an Beschleunigung zu erzielen, wie frühe vollständig GPU-basierte Molekulardynamik-Simulationen gezeigt haben.
Clinical relevance
Die GPU-Beschleunigung treibt einen Großteil der modernen Molekulardynamik, der Gitter-Quantenchromodynamik und der astrophysikalischen Simulation an, und dieselbe Hardware liegt den Machine-Learning-Workflows zugrunde, die zunehmend zur Analyse und Beschleunigung physikalischer Berechnungen eingesetzt werden.
History
Das General-Purpose-GPU-Computing setzte Ende der 2000er Jahre mit programmierbaren Shadern und der CUDA-Plattform ein; die Physik war ein früher Anwender, mit vollständig GPU-basierten Molekulardynamik-Simulationen im Jahr 2008 und darauf folgenden GPU-beschleunigten Gitter-Quantenchromodynamik-Simulationen, wodurch Beschleuniger in Supercomputern zum Standard wurden.
Key figures
- Wen-mei Hwu
- David Kirk
- Joshua Anderson
Related topics
Seminal works
- kirkhwu2016
- anderson2008
Frequently asked questions
- Warum sind GPUs für einige Physik-Codes so viel schneller, für andere aber nicht?
- GPUs sind hervorragend geeignet, wenn dieselbe einfache Operation auf große Datenmengen mit regelmäßigem Speicherzugriff angewendet wird, wie bei Kraft- oder Stencil-Updates. Codes mit starker Verzweigung, unregelmäßigem Speicherzugriff oder großen seriellen Abschnitten profitieren wenig und können sogar langsamer laufen.
- Ersetzen GPUs CPUs im Physik-Computing?
- Nein. Die meisten großen Simulationen sind heterogen und nutzen GPUs für die rechenintensiven datenparallelen Kernels, während CPUs den Kontrollfluss, die Koordination und unregelmäßige Aufgaben übernehmen. Daher werden die beiden eher zusammen als einer den anderen ersetzend eingesetzt.