numthreads

Define el número de subprocesos que se van a ejecutar en un único grupo de subprocesos cuando se envía un sombreador de proceso (consulte ID3D11DeviceContext::D ispatch).

numthreads(X, Y, Z)    

Los valores X, Y y Z indican el tamaño del grupo de subprocesos en una dirección determinada y el total de X*Y*Z proporciona el número de subprocesos del grupo. La capacidad de especificar el tamaño del grupo de subprocesos en tres dimensiones permite tener acceso a subprocesos individuales de una manera que lógicamente estructuras de datos 2D y 3D.

Por ejemplo, si un sombreador de proceso realiza una adición de matriz 4x4, numthreads podría establecerse en numthreads(4,4,1) y la indexación en los subprocesos individuales coincidiría automáticamente con las entradas de matriz. El sombreador de proceso también podría declarar un grupo de subprocesos con el mismo número de subprocesos (16) mediante numthreads(16,1,1), pero después tendría que calcular la entrada de matriz actual en función del número de subproceso actual.

Los valores de parámetro permitidos para numthreads dependen de la versión del sombreador de proceso.

Sombreador de cálculo Máximo de Z Máximo de subprocesos (X*Y*Z)
cs_4_x 1 768
cs_5_0 64 1024

 

En la ilustración siguiente se muestra la relación entre los parámetros pasados a ID3D11DeviceContext::D ispatch, Dispatch(5,3,2), los valores especificados en el atributo numthreads, numthreads(10,8,3) y los valores que se pasarán al sombreador de proceso para los valores del sistema relacionados con el subproceso (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID).

Ilustración de la relación entre distribución, grupos de subprocesos y subprocesos

Este atributo se admite en los siguientes tipos de sombreadores:

Vértice Casco Domain Geometría Píxel Compute
x

 

Atributos del modelo de sombreador 5

Modelo de sombreador 5