SIMDVektorisierung
SIMD-Vektorisierung bezeichnet die Umwandlung sequentieller Programme in eine Form, in der mehrere Datenpunkte gleichzeitig verarbeitet werden. Sie nutzt die datenparallele Architektur moderner CPUs, die SIMD-Einheiten und Vektorregister bereitstellen, um den Durchsatz zu erhöhen. Typische Anwendungsbereiche sind numerische Berechnungen, Bildverarbeitung und Signalverarbeitung.
Die Vektorisierung kann automatisch durch den Compiler erfolgen (Autovektorisierung) oder manuell per Intrinsics bzw. vektorisierten Datentypen.
Manuelle Vektorisierung verwendet Intrinsics oder spezielle Datentypen; oft unterstützt man Struktur-der-Arrays-Layouts statt Array-of-Structures für bessere Permutationen.
Limitierungen ergeben sich durch Abhängigkeiten, bedingte Zweige, Aliasing und unregelmäßige Speicherzugriffe. Nicht jeder Algorithmus skaliert gut
Anwendungsbereiche umfassen Hochleistungsrechnen, Multimedia, Grafik, Finanzberechnungen und maschinelles Lernen. In Praxis werden oft automatische Pfade mit