Novos recursos do DX12 no Microsoft Shader Model 6.10 e na prévia do AgilitySDK 720 para renderização neural.

Novos recursos do DX12 no Microsoft Shader Model 6.10 e na prévia do AgilitySDK 720 para renderização neural.

A Microsoft anunciou o lançamento da versão prévia do Shader Model 6.10 e do AgilitySDK 1.720, expandindo significativamente os recursos da API DX12 com novas funcionalidades voltadas para desenvolvedores.

Recursos aprimorados no Shader Model 6.10 e AgilitySDK 1.720

A versão mais recente baseia-se nos aprimoramentos anteriores do Shader Model 6.9 e do DXR 1.2, ambos incluídos na versão 1.619 do AgilitySDK. A prévia do AgilitySDK 1.720 apresenta diversos novos recursos para aprimorar a API DX12, detalhados a seguir:

  • Modelo de Shader 6.10 (via DXC 1.10.2605.2):
    • APIs de Álgebra Linear (linalg::Matrix)
    • Índice de Onda de Grupo
    • Memória Compartilhada de Grupos de Variáveis
    • Intrínsecos de raytracing:
      • Posições do objeto triangular
      • ID do cluster

Apresentando as APIs de Álgebra Linear (linalg::Matrix)

O Shader Model 6.10 traz um conjunto abrangente de APIs de matrizes para o ambiente LinAlg. Essa integração permite que os desenvolvedores implementem técnicas de renderização neural de forma eficiente diretamente das threads de shader, aprimorando o desempenho do pipeline gráfico em tempo real. Além disso, oferece suporte a operações de multiplicação de matrizes (MMA) de alta largura de banda para aplicações de aprendizado de máquina e processamento de imagens, tudo dentro de uma única estrutura de API.

Modelos Neurais para Renderização em Tempo Real

Índice de Ondas de Grupo: Aprimorando o Desempenho do Shader

As novas funções intrínsecas GetGroupWaveIndex() e GetGroupWaveCount() foram adicionadas ao Shader Model 6.10. Elas permitem que vários tipos de shaders — de computação, de malha, de amplificação e de nó — obtenham informações sobre as estruturas em nível de onda dentro de um grupo de threads. A funcionalidade fornecida por GetGroupWaveIndex() oferece o índice da onda atual, enquanto GetGroupWaveCount() revela o número total de ondas em execução no grupo. Essa capacidade promove a especialização de trabalho e a colaboração entre as ondas sem a necessidade de soluções alternativas pouco confiáveis, como o método obsoleto de dividir SV_GroupIndex por meio de WaveGetLaneCount(), que carece de confiabilidade universal de hardware.

Memória Compartilhada de Grupos Variáveis: Novas Possibilidades

Outra grande melhoria no Shader Model 6.10 é a remoção do limite anterior de 32 KB (28 KB para shaders de malha) para memória compartilhada em grupo. Ao expor o limite real do hardware por meio de uma nova consulta em tempo de execução, MaxGroupSharedMemoryPerGroup, os autores de shaders agora podem utilizar atributos personalizados para especificar os tamanhos de memória necessários para seus shaders. Essa transição permite o acesso às capacidades modernas das GPUs, garantindo que o código existente mantenha a compatibilidade com os limites legados. Consequentemente, os desenvolvedores agora podem implementar algoritmos avançados, como eliminação de blocos grandes e cargas de trabalho complexas com matrizes, sem as restrições das especificações anteriores.

Explorando os recursos do D3D12

APIs de lista de comandos assíncronos em lote

A introdução dos comandos em lote do D3D12 resolve problemas inerentes de serialização enfrentados por comandos anteriores, como `d3d12` CopyBufferRegion, ClearUnorderedAccessViewFloat/Uint`d3d12` e ResolveSubresource`d3d12`, que eram executados em sequência. Essa limitação causava paralisações na GPU, atrasando operações independentes. O novo recurso de Comandos Assíncronos em Lote permite que os desenvolvedores utilizem métodos avançados de lista de comandos que removem a serialização implícita, permitindo que o hardware execute tarefas independentes simultaneamente. Os desenvolvedores agora têm a liberdade de sincronizar explicitamente com barreiras aprimoradas somente quando necessário, facilitando maior eficiência em cargas de trabalho simultâneas.

Todos os principais fabricantes de hardware, incluindo NVIDIA, AMD e Intel, agora oferecem suporte a essas versões de pré-visualização:

Fornecedor de hardware Links de motorista
AMD Software AMD: AgilitySDK Developer Preview Edition 25.30.41.02
Intel Gráficos Intel Arc – Windows
NVIDIA Para ter acesso aos drivers em desenvolvimento, entre em contato com seu representante de relações com desenvolvedores.

Em termos de suporte de hardware, a NVIDIA abrange uma ampla gama de recursos em toda a sua linha de GPUs RTX, enquanto a AMD e a Intel restringem funcionalidades específicas aos seus lançamentos mais recentes, incluindo as séries Arc B e RDNA 4 (Radeon RX 9000).Especificamente, o Group Wave Index é suportado pelas GPUs RX 7000 e RX 9000 da AMD, enquanto a NVIDIA planeja implementá-lo em uma versão futura. As futuras atualizações da Intel também incluirão suporte à nova API de Álgebra Linear.

AMD Intel NVIDIA
linAlg::Matrix Compatível com os produtos da série AMD Radeon RX 9000. Previsto para lançamento em breve. Compatível com todos os hardwares RTX.
Índice de Onda de Grupo Compatível com as placas de vídeo AMD Radeon RX das séries 7000 e 9000. Compatível com placas gráficas Intel Arc série B. Previsto para lançamento em breve.
Memória Compartilhada de Grupos de Variáveis Atualmente, o driver suporta o limite de memória padrão; espera-se que limites mais altos sejam implementados em versões futuras. Compatível com placas gráficas Intel Arc série B. Compatível com todos os dispositivos RTX, os valores variam conforme o dispositivo.
Intrínsecos de raytracing: TriangleObjectPositions/ClusterID Compatível com as placas de vídeo AMD Radeon RX das séries 7000 e 9000. Compatível com placas gráficas Intel Arc série B. Compatível com todos os dispositivos RTX.
APIs de lista de comandos assíncronos em lote Compatível com as placas de vídeo AMD Radeon RX das séries 7000 e 9000. Compatível com placas gráficas Intel Arc série B. Compatível com todos os dispositivos RTX.

Para obter informações adicionais e imagens relacionadas a este anúncio, consulte a fonte original: Fonte e Imagens.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *