Freigeben über


WavePrefixSum-Funktion

Gibt die Summe aller Werte in den aktiven Lanes mit kleineren Indizes als dieser zurück.

Syntax

<type> WavePrefixSum(
   <type> value
);

Parameter

value

Der zu summierende Wert.

Rückgabewert

Die Summe der Werte.

Bemerkungen

Die Reihenfolge der Vorgänge für diese Routine kann nicht garantiert werden. Das [präzise] Flag wird also darin ignoriert.

Eine Postfixsumme kann berechnet werden, indem die Präfixsumme dem Wert der aktuellen Lane hinzugefügt wird.

Beachten Sie, dass die aktive Lane mit dem niedrigsten Index immer eine 0 als Präfixsumme erhält.

Diese Funktion wird vom Shadermodell 6.0 in allen Shaderphasen unterstützt.

Beispiele

uint numToSum = 2;
uint prefixSum = WavePrefixSum( numToSum );

Auf einer Maschine mit einer Wellengröße von 8 und allen aktiven Lanes außer den Lanes 0 und 4 werden die folgenden Werte von WavePrefixSum zurückgegeben.

Lane-Index status prefixSum
0 inactive
1 aktiv = 0
2 aktiv = 0+2
3 aktiv = 0+2+2
4 inactive
5 aktiv = 0+2+2+2
6 aktiv = 0+2+2+2+2+2
7 aktiv = 0+2+2+2+2+2+2

Weitere Informationen

Übersicht über Shadermodell 6

Shadermodell 6