SSE Reduktion des Float-Vektors

8

Wie kann ich mithilfe von sse intrinsics Summenelemente (Reduktion) des Float-Vektors erhalten?

Einfacher Seriencode:

%Vor%     
gorill 20.07.2013, 10:16
quelle

1 Antwort

14

In der Regel generieren Sie 4 Partialsummen in Ihrer Schleife und summieren dann horizontal nur die 4 Elemente nach der Schleife, z. B.

%Vor%

Hinweis: Für das obige Beispiel muss a 16 Byte ausgerichtet sein und n muss ein Vielfaches von 4 sein. Wenn die Ausrichtung von a nicht garantiert werden kann, verwenden Sie _mm_loadu_ps anstelle von _mm_load_ps . Wenn n nicht garantiert ein Vielfaches von 4 ist, fügen Sie am Ende der Funktion eine Skalarschleife hinzu, um alle verbleibenden Elemente zu akkumulieren.

    
Paul R 20.07.2013, 10:31
quelle

Tags und Links