CPU vs. GPU: Unterschiede in Architektur und Einsatz
Eine CPU ist darauf ausgelegt, eine einzelne Aufgabe so schnell wie möglich zu erledigen, und hat daher wenige leistungsfähige Kerne mit großen Caches und ausgefeilter Steuerlogik. Eine GPU ist darauf ausgelegt, viele ähnliche Aufgaben gleichzeitig zu erledigen, und hat daher Tausende einfache Recheneinheiten, die Speicherlatenzen durch den Wechsel zwischen riesigen Mengen von Threads verbergen. CPUs eignen sich für komplexe, verzweigte, serielle Arbeit, GPUs für massiv parallele Mathematik wie Grafik und Deep Learning.
| Aspekt | CPU | GPU |
|---|---|---|
| Entwurfsziel | Niedrige Latenz: einen einzelnen Thread so schnell wie möglich abschließen | Hoher Durchsatz: möglichst viel Gesamtarbeit abschließen |
| Kernanzahl | Einige wenige bis einige hundert komplexe Kerne | Tausende einfache Recheneinheiten, zu größeren Blöcken zusammengefasst |
| Ausführungsmodell | Out-of-Order-Ausführung und Sprungvorhersage in jedem Kern, plus SIMD-Befehle | SIMT: Gruppen von Threads (z. B. 32) führen denselben Befehl gemeinsam aus |
| Steuerlogik und Cache | Große Caches und aufwendige Steuerlogik belegen einen großen Teil der Chipfläche | Mehr Fläche geht an Recheneinheiten; die Caches sind pro Thread kleiner |
| Verbergen der Speicherlatenz | Überwiegend durch Caches und Prefetching | Überwiegend durch Wechsel zu anderen bereiten Threads, während einer wartet |
| Speicher | DDR oder LPDDR, typischerweise einige zehn bis einige hundert GB/s Bandbreite | GDDR oder HBM, typischerweise einige hundert GB/s bis mehrere TB/s Bandbreite |
| Verzweigungen | Bewältigt Verzweigungen und unregelmäßigen Code gut | Wird langsamer, wenn Threads einer Gruppe unterschiedliche Zweige nehmen (Divergenz) |
| Datenort | Arbeitet direkt im Hauptspeicher | Eine dedizierte GPU hat eigenen Speicher, die Daten müssen daher über einen Bus wie PCIe kopiert werden |
| Programmierung | Nahezu jede Sprache und jedes Werkzeug | Spezialisierte Modelle wie CUDA, HIP, OpenCL und Grafik-Shader-Sprachen |
| Typische Workloads | Betriebssysteme, Datenbanken, Steuerlogik, allgemeine Anwendungen | Grafik, Matrix- und Vektormathematik, Deep Learning, Simulation |
Die Zahlenangaben sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.