ScholarGate
Assistent

GPU- und Akzelerator-Computing

GPU- und Akzelerator-Computing nutzt massiv parallele Mehrkernprozessoren, um datenparallele Arbeitslasten weit über die Leistungsfähigkeit von Allzweck-CPUs hinaus zu beschleunigen.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

GPU- und Akzelerator-Computing ist die Verwendung spezialisierter Mehrkernprozessoren, die für einen hohen Durchsatz bei datenparalleler Ausführung optimiert sind, um die parallelisierbaren Teile einer Berechnung unter einem Host-Device-Programmiermodell auszuladen und zu beschleunigen.

Scope

Dieses Thema behandelt die Architektur von Grafikprozessoren und anderen Akzeleratoren als durchsatzorientierte Mehrkern-SIMD/SIMT-Maschinen; die Programmiermodelle, die auf sie abzielen (CUDA, OpenCL und direktivenbasiertes Offloading); die Thread-Hierarchie- und Speicherhierarchie-Abstraktionen (Threads, Warps, Blöcke, Grids; globaler, geteilter und Register-Speicher); und die Leistungsüberlegungen – Belegung (Occupancy), Speicherkonsolidierung (Memory Coalescing) und Divergenz (Divergence) –, die den erreichbaren Durchsatz bestimmen.

Core questions

  • Wie unterscheidet sich das durchsatzorientierte Mehrkern-Akzelerator-Modell von einer Allzweck-CPU?
  • Wie werden Berechnungen als massiv parallele Kernels über eine Thread-Hierarchie ausgedrückt?
  • Welche Speicher- und Ausführungsverhalten – Konsolidierung (Coalescing), Divergenz (Divergence), Belegung (Occupancy) – begrenzen die erreichbare Leistung?

Key theories

SIMT-Ausführungsmodell
GPUs führen Tausende von leichtgewichtigen Threads aus, die in Warps gruppiert sind und im Gleichschritt (Single-Instruction, Multiple-Thread) ausgeführt werden; die Leistung hängt davon ab, Warps ausgelastet zu halten und Kontrollfluss-Divergenz innerhalb eines Warps zu vermeiden.
Hierarchisches Thread- und Speichermodell
CUDA organisiert Threads in Blöcken und Grids und stellt eine Speicherhierarchie aus Registern, schnellem Shared Memory und großem globalem Speicher bereit; die Abbildung von Daten und Berechnungen auf diese Hierarchie ist die zentrale Aufgabe zur Leistungsoptimierung.
Allgemeines GPU-Computing
Die Entwicklung von festverdrahteten Grafik-Pipelines zu programmierbaren, universellen Akzeleratoren machte GPUs zu einer Mainstream-Plattform für wissenschaftliches und datenintensives Computing.

Clinical relevance

Akzeleratoren sind die Arbeitspferde moderner rechenintensiver Anwendungen: Deep-Learning-Training und -Inferenz, wissenschaftliche Simulationen, Bild- und Signalverarbeitung sowie Kryptographie verlassen sich alle auf GPUs für Größenordnungen an Beschleunigung gegenüber CPUs.

History

GPUs entwickelten sich von festverdrahteter Grafikhardware zu programmierbaren Parallelprozessoren; die Veröffentlichung von CUDA im Jahr 2007, beschrieben von Nickolls und Kollegen im Jahr 2008, machte das allgemeine GPU-Computing zugänglich, und Akzeleratoren wurden anschließend zentral für Hochleistungs- und maschinelles Lernen.

Key figures

  • John Nickolls
  • Wen-mei Hwu
  • David Kirk
  • John Owens

Related topics

Seminal works

  • nickolls2008
  • kirk2016
  • owens2008

Frequently asked questions

Warum sind GPUs für bestimmte Arbeitslasten so viel schneller als CPUs?
GPUs widmen einen wesentlich größeren Teil ihrer Transistoren den arithmetischen Einheiten und führen Tausende von Threads aus, um Speicherlatenz zu verbergen, wobei sie Einzel-Thread-Geschwindigkeit gegen aggregierten Durchsatz tauschen. Dies macht sie hervorragend für regelmäßige, hochgradig datenparallele Arbeiten geeignet, jedoch schlecht für verzweigte, latenzempfindliche Codes.

Methods for this concept

Related concepts