ScholarGate
Assistent

GPU-Architektur

Eine Grafikprozessoreinheit (GPU) ist ein durchsatzorientierter, massiv paralleler Prozessor, der aus vielen einfachen Kernen besteht, die Tausende von Threads ausführen, um die Speicherlatenz zu verbergen. Ursprünglich für Grafikanwendungen entwickelt, wird sie heute weit verbreitet für allgemeine Berechnungen und maschinelles Lernen eingesetzt.

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

Definition

Eine GPU-Architektur ist ein hochparalleles Prozessordesign, das aus vielen leichtgewichtigen Kernen besteht, die zu Multiprozessoren gruppiert sind und eine große Anzahl von Threads in synchronisierten Gruppen ausführen. Sie ist auf hohen arithmetischen Durchsatz und Latenzverbergung optimiert, anstatt auf die Geschwindigkeit einzelner Threads.

Scope

Dieses Thema behandelt die Hardware-Organisation von GPUs: Streaming-Multiprozessoren, das Single-Instruction Multiple-Thread (SIMT)-Ausführungsmodell, Warps und Thread-Blöcke, die Speicherhierarchie von Registern, Shared Memory und Global Memory sowie die Art und Weise, wie GPUs Latenz durch massives Multithreading verbergen. Es behandelt GPUs als parallele Architektur. CPU-SIMD-Erweiterungen (SIMD- und Vektorprozessoren) und Software-Frameworks für die GPU-Programmierung, die über architektonische Implikationen hinausgehen, sind ausgeschlossen.

Core questions

  • Wie erreichen GPUs einen hohen Durchsatz mit vielen einfachen Kernen anstelle weniger komplexer?
  • Was ist das Single-Instruction Multiple-Thread-Ausführungsmodell und wie funktionieren Warps?
  • Wie verbirgt massives Multithreading die Speicherlatenz?
  • Wie ist die GPU-Speicherhierarchie für parallele Workloads organisiert?

Key concepts

  • Streaming-Multiprozessor
  • Single-Instruction Multiple-Thread (SIMT)
  • Warps und Thread-Blöcke
  • massives Multithreading
  • Latenzverbergung
  • Shared, Global und Register Memory
  • Memory Coalescing
  • durchsatzorientiertes Design

Key theories

Latenzverbergung durch massives Multithreading
Anstatt die Latenz für einen Thread zu minimieren, hält eine GPU Tausende von Threads in der Ausführung und wechselt zwischen bereiten Gruppen, wann immer einige auf Speicher warten, sodass die reichliche Parallelität die vielen arithmetischen Einheiten beschäftigt hält und lange Speicherverzögerungen verbirgt.

Mechanisms

Eine GPU umfasst viele Streaming-Multiprozessoren, von denen jeder Gruppen von Threads (Warps) im SIMT-Modell synchron ausführt. Threads sind in Blöcke organisiert, die schnellen On-Chip-Speicher teilen und sich lokal synchronisieren. Die Hardware plant viele Warps und wechselt mit nahezu null Overhead zwischen ihnen, sodass, wenn ein Warp auf Speicher wartet, ein anderer läuft, wodurch die arithmetischen Einheiten ausgelastet bleiben; gebündelte Speicherzugriffsmuster maximieren die Bandbreitennutzung.

Clinical relevance

GPUs sind zu einem zentralen Bestandteil des Hochleistungsrechnens und der künstlichen Intelligenz geworden: Ihr durchsatzorientiertes Design macht sie zur dominierenden Plattform für das Training und den Betrieb tiefer neuronaler Netze sowie für wissenschaftliche Simulationen und Datenanalysen. Ihre Architektur belohnt datenparallele Algorithmen und gebündelte Speicherzugriffe, was die Art und Weise prägt, wie performanzkritische Software geschrieben wird.

History

GPUs entwickelten sich in den 1990er Jahren von festverdrahteten Grafikpipelines zu programmierbaren Shadern und dann zu vollständig programmierbaren Mehrkernprozessoren. Die Einführung von General-Purpose GPU Computing Frameworks in den späten 2000er Jahren öffnete sie für wissenschaftliche und Daten-Workloads, und ihr Durchsatz machte sie ab den 2010er Jahren zum Motor der Deep-Learning-Ära.

Debates

GPU-Allgemeinheit versus spezialisierte Beschleuniger
GPUs sind flexible Durchsatz-Engines, aber zunehmend spezialisierte Beschleuniger (wie Tensor- und Matrix-Einheiten) bieten eine höhere Effizienz für spezifische Workloads; Designer wägen die Programmierbarkeit und breite Anwendbarkeit von GPUs gegen die Effizienz dedizierter Hardware ab.

Key figures

  • David B. Kirk
  • Wen-mei Hwu
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • kirk2016

Frequently asked questions

Warum sind GPUs so gut für Deep Learning?
Das Training und der Betrieb neuronaler Netze bestehen größtenteils aus dichten Matrix- und Tensoroperationen mit reichlich Datenparallelität. Die vielen Kerne und die hohe Speicherbandbreite einer GPU führen diese Operationen mit sehr hohem Durchsatz aus und übertreffen dabei Allzweck-CPUs bei solchen regulären, parallelen Workloads bei weitem.
Was ist ein Warp bei der GPU-Ausführung?
Ein Warp ist eine Gruppe von Threads (üblicherweise 32), die unter dem SIMT-Modell dieselbe Anweisung synchron ausführen. Die Gruppierung von Threads in Warps ermöglicht es der Hardware, die Anweisungssteuerung über viele Datenelemente zu amortisieren, obwohl divergierende Verzweigungen innerhalb eines Warps die Effizienz verringern.

Methods for this concept

Related concepts