SIMDArchitekturen
SIMDArchitekturen bezeichnen eine Klasse von Computerarchitekturen, bei der eine einzelne Befehlsinstanz gleichzeitig auf mehrere Datenpunkte wirkt. Ziel ist die Ausnutzung von Datenparallelität (data-level parallelism) durch sogenannte Lanes in einer Vektor- oder SIMD-Einheit. Eine solche Einheit besitzt Vektorregister unterschiedlicher Breite (typisch 128, 256 oder 512 Bit) und führt dieselbe Operation gleichzeitig auf allen Elementen des Vektors aus. Moderne Designs unterstützen maskierte Operationen, die bedingte Ausführung innerhalb einzelner Lanes erlauben, sowie Lade- und Speichervorgänge, die auf Vektorregister abgebildet werden.
Typische Implementierungen umfassen x86-SIMD-Erweiterungen wie SSE, AVX und AVX-512, ARM NEON sowie Altivec (PowerPC) und RISC-V
Programmierer können SIMD über Compiler-Autovectorisierung oder durch Intrinsics, Compiler-Extensions oder Inline-Assembler nutzen. Entscheidungen zu Speicherordnung, Alignment,
Anwendungsfelder umfassen Multimedia-Verarbeitung, wissenschaftliche Berechnungen, Signalverarbeitung und maschinelles Lernen, in denen große Mengen homogener Daten parallel