Función WavePrefixSum
Devuelve la suma de todos los valores de los carriles activos con índices más pequeños que este.
Sintaxis
<type> WavePrefixSum(
<type> value
);
Parámetros
value
Valor que se va a resumir.
Valor devuelto
Suma de los valores.
Comentarios
No se puede garantizar el orden de las operaciones en esta rutina. Por lo tanto, efectivamente, la marca [precisa] se omite dentro de ella.
Se puede calcular una suma de postfijo agregando la suma del prefijo al valor del carril actual.
Tenga en cuenta que el carril activo con el índice más bajo siempre recibirá un 0 para su suma de prefijo.
Esta función es compatible con el modelo de sombreador 6.0 en todas las fases del sombreador.
Ejemplos
uint numToSum = 2;
uint prefixSum = WavePrefixSum( numToSum );
En una máquina con un tamaño de onda de 8, y todos los carriles activos excepto las carriles 0 y 4, se devolverían los valores siguientes de WavePrefixSum.
índice de carril | status | prefixSum |
---|---|---|
0 | inactivo | N/D |
1 | active | = 0 |
2 | active | = 0+2 |
3 | active | = 0+2+2 |
4 | inactivo | N/D |
5 | active | = 0+2+2+2 |
6 | active | = 0+2+2+2+2+2 |
7 | active | = 0+2+2+2+2+2+2 |