Clevere SIMD Algorithmen

Aktuelle CPUs besitzen in jedem Kern zwei AVX-512 Einheiten: sehr breite SIMD (Single Instruction Multiple Data) Einheiten die 16 Werte mit einer einzelnen Instruktion gleichzeitig verarbeiten. Diese Leistung erhält aber nur wer diese SIMD Einheiten explizit nutzt, ansonsten liefert die skalare FPU nur 1/16-tel der Leistung. In diesem Praktikum lernt man die effiziente und portierbare Programmierung dieser SIMD Einheiten: von den einfachen Additionen und Multiplikationen zu cleveren Daten-Shuffles und Transpositionen. Mit Kreativität knobelt man vielleicht bessere SIMD Algorithmen heraus, denn bei viele Probleme ist immer noch nicht bekannt wie man sie am besten in SIMD ausdrückt.

back to top