CPU vs. GPU vs. NPU: Konzept, Datentypen, Energieeffizienz
Die CPU ist ein Universalprozessor, der alles ausführen kann, und erledigt mit wenigen komplexen Kernen eine einzelne Aufgabe schnell. Die GPU verarbeitet mit sehr vielen Recheneinheiten große Datenmengen parallel und wird für ein breites Spektrum paralleler Berechnungen wie Grafik und KI-Training eingesetzt. Die NPU ist eine Spezialschaltung für die Matrix-Multiply-Accumulate-Operationen, die den Großteil der Berechnungen neuronaler Netze ausmachen; mit vielen Recheneinheiten niedriger Genauigkeit wie INT8 und der Wiederverwendung von Daten im On-Chip-Speicher führt sie Inferenz mit sehr hoher Energieeffizienz aus. Dafür ist sie bei nicht unterstützten Operationen schwach.
| Merkmal | CPU | GPU | NPU |
|---|---|---|---|
| Konzept | Universell, geringe Latenz. Eine einzelne Aufgabe so schnell wie möglich erledigen | Hoher Durchsatz. Große Mengen paralleler Berechnungen gebündelt abarbeiten | Spezialisiert auf Operationen neuronaler Netze (vor allem Inferenz), maximiert die Leistung pro Watt |
| Aufbau der Recheneinheiten | Einige bis einige hundert komplexe Kerne. SIMD-Einheiten in jedem Kern | Tausende einfache Recheneinheiten. Viele besitzen Matrix-Recheneinheiten | Großes Array von MAC-Einheiten (z. B. systolisches Array) und Vektoreinheiten u. a. für Aktivierungsfunktionen |
| Steuerung | Sprungvorhersage und spekulative Ausführung (Out-of-Order) für jeden Befehl | Wechselt zwischen sehr vielen Threads, um Speicherlatenzen zu verbergen | Arbeitet meist entlang eines vom Compiler vorab festgelegten Datenflusses, mit wenig befehlsweiser Steuerung |
| Stärken | Verzweigungsreiche Verarbeitung, Betriebssystem, Anwendungslogik | Grafik, KI-Training und -Inferenz, wissenschaftlich-technisches Rechnen | KI-Inferenz mit Schwerpunkt auf Faltungen und Matrixmultiplikationen |
| Speicher | Große Caches und Hauptspeicher wie DDR | Speicher hoher Bandbreite wie GDDR oder HBM | Wiederverwendung von Gewichten und Zwischendaten in On-Chip-SRAM-Puffern. In SoCs integriert teilt sie den Hauptspeicher mit der CPU |
| Wichtige Datentypen | Schwerpunkt FP64, FP32 und Ganzzahlen, aber nahezu alles | Schwerpunkt FP32, FP16, BF16. Für Training auch FP8 u. a. | Schwerpunkt niedrige Genauigkeit wie INT8, INT4 oder FP16 |
| Leistungsangabe | Taktfrequenz, Kernzahl, IPC | FLOPS (z. B. TFLOPS) | TOPS (meist theoretischer Höchstwert, gezählt in INT8) |
| Energieeffizienz bei KI-Inferenz | Niedrig | Hoch | Am höchsten. Teils um mehr als eine Größenordnung höher als bei der CPU |
| Flexibilität | Am höchsten. Jedes Programm läuft | Hoch. Breit einsetzbar für parallelisierbare Aufgaben | Gering. Nicht unterstützte Operationen werden an CPU oder GPU zurückgegeben |
| Programmierung | Gängige Programmiersprachen und Compiler | Kernels werden mit GPU-spezifischen parallelen Programmiermodellen geschrieben | Trainierte Modelle werden mit KI-Compilern oder Inferenz-Runtimes konvertiert und ausgeführt. Direkte Programmierung ist selten |
| Einbauort | Jeder Computer | Separate Karte oder in ein SoC integriert | Meist in SoCs von Smartphones und PCs integriert. Es gibt auch dedizierte Chips für Rechenzentren |
Die Zahlenwerte sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.