Contents

Radeon RX 7900 XTX da AMD domina com cargas de trabalho DX12, aumentando o desempenho em até 64%

A apresentação da Microsoft na semana passada não impactou muito os usuários, apesar dos benefícios da nova parte do DX12 serem evidentes. Por isso, e já oficial, a AMD quis mostrar a todos os seus utilizadores um pequeno espectáculo, uma antevisão, do que está por vir, já que a tecnologia Work Graphs é verdadeiramente um passo em frente no caminho correcto. Armada com um RX 7900 XTX e ditos Work Graphs , a AMD mostrou o aumento de desempenho que podemos alcançar em condições ideais.

Embora seja amplamente reconhecido que um benchmark rápido não fornece uma representação precisa do desempenho de um jogo num ambiente do mundo real, ainda existem vantagens significativas em alcançar melhorias, mesmo que modestas, na velocidade. Para aqueles com hardware compatível, esses avanços podem oferecer uma melhoria substancial à sua experiência de jogo. Apesar da complexidade do assunto, exploremos brevemente os fatores responsáveis ​​por esta melhoria, bem como o seu potencial impacto nos utilizadores.

AMD mostrou e falou na GDC 2024 sobre Work Graphs e como isso mudará o cenário em hardware e jogos

/images/Microsoft-Work-Graphs-Nodos.jpg

Permita-me fornecer uma apresentação mais refinada das observações do Sr. Hargreaves sobre a recente vitrine de ofertas de parceiros da Microsoft: Em essência, conforme expresso por Shawn Hargreaves, Gerente Sênior de Engenharia D3D da Microsoft, aqueles que perderam os detalhes da apresentação da Microsoft com seus parceiros podem estar interessado em saber que o evento foi resumido de forma abrangente em seu resumo sucinto.

Work Graphs é o resultado de vários anos de colaboração entre Microsoft, AMD e outros parceiros. Sempre soubemos que gostaríamos de expandir essa capacidade além da computação pura para abranger também eles Draw Nodes ( nodes of drawing , ou também chamadas nodes of calls ), estamos muito satisfeitos em ver que isso O protótipo já roda em hardware real e esperamos continuar nossa forte associação à medida que adicionamos essa funcionalidade a uma versão futura do Direct3D.

O problema que temos atualmente e que foi amenizado com o DX12, as Draw Calls e sucessivas melhorias na API é que ainda existe um limite dentro do chamado Compute Shader, o que apresenta um problema para a CPU e Dispatch.

Works Graphs vem para acabar com parte de todo o problema que gera a CPU, e pelo menos, elimina aquele Compute Shader Dispatch (vindo de Dispatch Graphs como tal) enviando grande parte das informações para serem renderizadas diretamente para o GPU.

/images/Work-Graphs.jpg

Ou seja, a CPU não é mais o gargalo da garrafa (a necessidade de ir em busca de"trabalho"é eliminada nela) e o processamento e alimentação da cena é passado para a GPU, algo que nós já discutido meses atrás nos comentários sobre como o DX12 funcionava como API com esses dois componentes.

Resumindo o conceito, podemos dizer que agora temos uma central de Node Graphs onde cada nó pede trabalho para os demais, eles se alimentam, não precisa esperar a CPU enviar a informação é * *totalmente paralelizável** , pelo qual ajuda o desenvolvedor a simplificar a programação no hardware e deixar esse trabalho para a API, que decide como executar o trabalho (Broadcasting, Threads ou Coalescing) na melhor ordem de acordo com os nós sendo mais ou menos carregado, sem latência externa.

Na verdade, a Epic Games expressou grande admiração por este avanço no Unreal Engine 5, Nanite e Lumen.

Compactação de desenho vazio (EDC) e nós de malha

/images/DX12-Dispatch-Graph-mediante-Work-Graph.jpg

Para dar um contexto um pouco mais rápido e poder entender o que veremos no gráfico abaixo que a AMD deslizou e sua importância, primeiro você deve ter claro onde o trabalho aponta os gráficos além de terminar o Compute Shader Despacho na CPU. A AMD afirma que graças a esta tecnologia vai acabar na raiz Empty Draw Compaction , que afirma gastar um tempo significativo de otimização e limitar um pouco o desempenho, sendo outro gargalo que a CPU não consegue salvar facilmente.

EDC nada mais é do que um método de compactação de dados que irá parar a CPU. Normalmente existem dois cenários que causam o colapso do Dispatch nos logs e posteriormente no cache do processador: resoluções baixas em jogos, mas com FPS alto na renderização ( 1080p a 360 FPS ou superior ), ou bem, alto resoluções com FPS moderadamente alto ( 4K a 120 FPS ou superior ).

Em geral, a situação inicial exige uma dependência considerável da unidade central de processamento (CPU) e, como tal, o Direct3D 12 incorpora duas estratégias para otimizar a compactação de dados.

Nenhum dos métodos funciona bem. quando os recursos que nossa CPU possui transbordam, então a solução é Work Graphs, mas como? Dividindo o Draw do processamento cruzado em cenas complexas. Isso resultou em um grupo menor de Draw Calls e, segundo a AMD, em seu hardware permite mudanças frequentes de PSO (Pipeline State Object) também completamente.

E novamente, como eles fazem isso? Através de Mesh Nodes, que nada mais é que um novo tipo de nó para controlar os Mesh Shaders. Portanto, e em resumo rápido, work Graphs agora combina Mesh Nodes , que por sua vez, controlam Mesh Shaders.

Execute Indirect e como ele é aprimorado por Work Graphs em um RX7900 XTX

/images/AMD-RX-7900-XTX-Work-Graphs-64-mas-de-rendimiento.jpg

Agora entendemos como os Work Graphs vão funcionar com Meshes Nodes e como eles vão migrar para a GPU para que ela libere do trabalho para a CPU. Pois bem, a AMD (e a Microsoft) chama esse trabalho que a CPU estava fazendo e aquele parcialmente feito pela GPU como Execute Indirect (execução indireta), já que era um trabalho fora dos gráficos que nos cenários citados agia como um gargalo.

Então, este Execute Indirect é substituído por Mesh Nodes (Work Graphs) e levado para a GPU em paralelização em nós para cálculo e resolução interna (feedback) onde agora será amplamente paralelizável (desculpem a redundância) através dos Mesh Shaders, o desempenho Deve aumentar bastante.

/images/Microsoft-Work-Grahps-GPU-retroalimentacion.jpg

A AMD garante que tudo se move em um único Work Graphs através de uma única remessa , então a Empty Draw Compaction deixa de existir para também terminar (e graças a isso) com as alterações do PSO (Pipeline State) Object) internal , o que por sua vez também faz com que o gerenciamento de memória ocorrido deixe de ser feito.

Resultado simplificado? Menos recursos do sistema, menor latência, mais desempenho e um canal de comunicação mais direto com a GPU. A AMD compara seu desempenho com Execute Indirect vs. Work Graphs e, como você pode ver, o desempenho é 64% melhor em um RX 7900, o tempo de renderização é muito menor.

Como a Microsoft já disse, Mesh Nodes com Work Graphs estará disponível no final do ano, justamente quando os novos RTX 50 e RDNA 4 estiverem no mercado, então o ano de 2025 assume-se como interessante no mundo dos jogos mercado para tudo comentado.

*️⃣ Link da fonte:

AMD mostrou aumento de desempenho ,