numthreads
Define o número de threads a serem executados em um único grupo de threads quando um sombreador de computação é expedido (consulte ID3D11DeviceContext::D ispatch).
numthreads(X, Y, Z)
Os valores X, Y e Z indicam o tamanho do grupo de threads em uma direção específica e o total de X*Y*Z fornece o número de threads no grupo. A capacidade de especificar o tamanho do grupo de threads em três dimensões permite que threads individuais sejam acessados de uma maneira que logicamente estruturas de dados 2D e 3D.
Por exemplo, se um sombreador de computação estiver fazendo adição de matriz 4x4, os numthreads poderão ser definidos como numthreads(4,4,1) e a indexação nos threads individuais corresponderá automaticamente às entradas de matriz. O sombreador de computação também pode declarar um grupo de threads com o mesmo número de threads (16) usando numthreads(16,1,1), no entanto, ele teria que calcular a entrada de matriz atual com base no número de thread atual.
Os valores de parâmetro permitidos para numthreads dependem da versão do sombreador de computação.
Sombreador de Computação | Máximo de Z | Máximo de threads (X*Y*Z) |
---|---|---|
cs_4_x | 1 | 768 |
cs_5_0 | 64 | 1024 |
A ilustração a seguir mostra a relação entre os parâmetros passados para ID3D11DeviceContext::D ispatch, Dispatch(5,3,2), os valores especificados no atributo numthreads, numthreads(10,8,3) e valores que serão passados para o sombreador de computação para os valores do sistema relacionados ao thread (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID).
Esse atributo tem suporte nos seguintes tipos de sombreadores:
Vértice | Casco | Domínio | Geometry | Pixel | Computação |
---|---|---|---|---|---|
x |
Tópicos relacionados