EMZETT.
Login

SIMD und Vektorisierung

Kurz: SIMD („Single Instruction, Multiple Data”) lässt eine einzige CPU-Anweisung gleich mehrere Werte gleichzeitig verarbeiten.

Genauer: Ein breites Register (128, 256 oder 512 Bit) enthält zum Beispiel acht 32-Bit-Zahlen. Eine Addition rechnet alle acht auf einmal. Das beschleunigt Bild-, Audio- und Matrizenrechnung stark.

Im Detail

  • Befehlssätze: SSE und AVX bei x86, NEON und SVE bei ARM, RVV bei RISC-V.
  • Auto-Vektorisierung: Compiler wandeln einfache Schleifen selbst in SIMD-Code um, wenn es keine Abhängigkeiten zwischen den Durchläufen gibt.
  • Von Hand: Über „Intrinsics” (spezielle Funktionen) oder Bibliotheken. Mühsamer, aber kontrollierbar.
  • Bremsen: Unausgerichteter Speicherzugriff, Verzweigungen in der Schleife, Datenabhängigkeiten, zu kurze Schleifen.
  • Verwandt: GPUs treiben dieses Prinzip viel weiter (SIMT). Siehe KI-Chips im Vergleich.
  • Stromverbrauch: Sehr breite Einheiten können den Takt senken (AVX-512-Throttling bei manchen CPUs).

Siehe auch: CPU-Aufbau