A Microsoft apresentou uma nova adição ao DirectX 12 a funcionalidade Work Graphs. Visando resolver o gargalo entre a CPU e a GPU. Esse gargalo ocorre quando uma unidade é significativamente mais lenta que a outra, impedindo a transferência eficiente de dados. A atualização visa melhorar a comunicação entre esses componentes e otimizar o software do sistema operacional para reduzir a carga de trabalho da CPU ao interagir com a GPU. Embora não se espere que a atualização elimine completamente o gargalo de hardware, ela tem o potencial de melhorar o desempenho, especialmente em situações em que o gargalo da CPU é menos importante.
O que é a função Work Graphs
Work Graphs é um novo recurso do DirectX 12 que visa melhorar o desempenho dos jogos, aprimorando a forma como a CPU agenda tarefas para a GPU. Tradicionalmente, a CPU cria uma longa lista de instruções (chamada fila de comandos) para a GPU executar uma após a outra. Esta abordagem pode levar a ineficiências:
- Sobrecarga da CPU: A CPU gasta tempo gerenciando e emitindo comandos para a GPU, reduzindo sua disponibilidade para outras tarefas.
- Ociosidade da GPU: A GPU pode ter que esperar que a CPU prepare a próxima instrução antes de poder continuar funcionando, levando a períodos de inatividade.
A função Work Graphs aborda:
- Dividindo a carga de trabalho: divide a carga de trabalho em tarefas menores e mais gerenciáveis (itens de trabalho) e as organiza em um gráfico de dependência.
- Priorização de GPU: permite que a GPU identifique e priorize tarefas que podem ser executadas de forma independente, sem esperar pela CPU. Isso melhora a utilização geral da GPU e reduz o tempo ocioso.
Ao dar mais autonomia à GPU no agendamento de seu trabalho, o Work Graphs tem potencial para:
- Taxas de quadros mais suaves: A redução da sobrecarga da CPU e a utilização aprimorada da GPU podem levar a taxas de quadros mais suaves e uma experiência de jogo mais responsiva.
- Desempenho aprimorado: O processamento de tarefas mais eficiente pode melhorar potencialmente o desempenho geral dos jogos, especialmente em cenários vinculados à CPU.
Como implementar o recurso work graphs no directx 12
Para implementar o recurso Work Graphs no DirectX 12, é necessário seguir algumas etapas específicas. Aqui está um resumo do processo:
1. Pré-requisitos:
Ter um PC com um sistema operacional que suporta o AgilitySDK.
Configure o aplicativo para usar o AgilitySDK 1.613 e o compilador de shader DirectX mais recente.
Ter uma GPU com o driver correspondente instalado que suporta Work Graphs. Atualmente, as GPUs NVIDIA GeForce RTX da série 30 e 40 e RDNA 3 da AMD são suportadas
2. Autoria de Shaders:
Desenvolver shaders que serão usados em nós no Work Graphs.
3. Criação de um Work Graph em um Dispositivo:
Crie um Work Graph no dispositivo de GPU para definir uma estrutura de trabalho a ser executada.
4. Despacho de um Work Graph em uma Lista de Comandos:
Despachar o Work Graph em uma lista de comandos para que a GPU execute as tarefas conforme definido no grafo de trabalho.
5. Exemplo de Implementação:
O SDK Agility 1.613.0 inclui recursos como Work Graphs, Shader Model 6.8 e GPU Upload Heaps para facilitar a implementação.
Essas etapas básicas fornecem uma visão geral do processo de implementação do recurso Work Graphs no DirectX 12. Para detalhes completos e orientações específicas, é necessário consultar a documentação oficial do DirectX 12 e os recursos disponíveis no SDK Agility.
Resumo:
No geral, os Work Graphs representam um passo promissor para uma melhor comunicação e gerenciamento de tarefas entre a CPU e a GPU. Se implementado com sucesso em jogos, tem o potencial de fornecer taxas de quadros mais suaves, melhor desempenho geral e uma experiência de jogo mais responsiva, especialmente para aqueles com sistemas vinculados à CPU. No entanto, é importante manter expectativas realistas e considerar os fatores que podem influenciar a sua eficácia.
Microsoft precisa melhorar esses Ruwindows aí isso sim kk. Ótima matéria como sempre.
obrigado amigo!