GPGPU steht für "General-Purpose computation on Graphics Processing Units". GPGPU, oder GPU-Computing, ist die Verwendung eines Grafikprozessors für allgemeine Rechenoperationen. Moderne Betriebssysteme ermöglichen es Programmen, neben der CPU auf den Grafikprozessor zuzugreifen, wodurch die Gesamtleistung beschleunigt wird.
Während GPUs für die Verarbeitung von Grafikberechnungen konzipiert sind, können sie auch für andere Operationen verwendet werden. GPGPU maximiert die Verarbeitungseffizienz, indem einige Operationen von der Zentraleinheit (CPU) auf den Grafikprozessor verlagert werden. Anstatt im Leerlauf zu sitzen, wenn keine Grafiken verarbeitet werden, steht der Grafikprozessor ständig für andere Aufgaben zur Verfügung. Da GPUs für die Verarbeitung von Vektorberechnungen optimiert sind, können sie sogar einige Befehle schneller verarbeiten als die CPU.
GPGPU ist eine Art der Parallelverarbeitung, bei der Operationen im Tandem zwischen CPU und GPU verarbeitet werden. Wenn der Grafikprozessor eine Berechnung abgeschlossen hat, kann er das Ergebnis in einem Puffer speichern und es dann an die CPU weitergeben. Da Prozessoren Millionen von Operationen pro Sekunde ausführen können, werden Daten oft nur für einige Millisekunden im Puffer gespeichert.
GPU-Berechnungen werden durch eine Programmiersprache ermöglicht, die es der CPU und dem GPU ermöglicht, Verarbeitungsanforderungen gemeinsam zu verarbeiten. Die beliebteste ist OpenCL, ein offener Standard, der von mehreren Plattformen und Grafikkarten unterstützt wird. Andere beinhalten CUDA (Compute Unified Device Architecture), eine von NVIDIA konzipierte API, und APP (Accelerated Parallel Processing), ein von AMD bereitgestelltes SDK.
Stand: 13.08.2020