Contents

Liberando o desempenho máximo da GPU com os gráficos de chegada de trabalho do DirectX 12!

Contents

A Microsoft, especialmente o grupo responsável pela criação da API DirectX 12, revelou os avanços mais recentes no Agility Software Development Kit (SDK) versão 1.613.0. Isso inclui não apenas DirectSR, sobre os quais mais detalhes serão compartilhados na Game Developers Conference (GDC) 2024, mas também Work Graphs.

Work Graphs é uma nova API que aproveita os recursos inexplorados das GPUs. Esta inovação transcende meras atualizações de modelos preexistentes; em vez disso, introduz uma abordagem inovadora ao desenvolvimento de jogos e à expressão artística que promove maior eficiência e adaptabilidade na criação de experiências de jogo envolventes.

Work Graphs permite que os desenvolvedores criem e planejem dinamicamente operações de GPU “em tempo real”, eliminando a necessidade de intervenção externa do sistema host. Isso resulta em melhor desempenho, latência reduzida e maior capacidade para diversas funções do jogo, como seleção de oclusão, lote de objetos e processamento de pipeline de computação.

/images/directx12-agility-sdk-21-04-2021.JPG

Graham Wihlidal, da Epic Games, expressa seu entusiasmo com o recente lançamento do Work Graphs, que ele vê como uma solução há muito esperada na indústria.

A crescente prevalência de métodos de renderização centrados em GPU, incluindo aqueles incorporados à tecnologia Nanite do Unreal Engine 5, levou a uma mudança na função das unidades centrais de processamento (CPUs) no sentido de gerenciar recursos e supervisionar riscos potenciais. Essas tarefas agora ocupam uma porção relativamente pequena da carga de trabalho geral da CPU, com a maior parte de seus esforços direcionados ao fornecimento de instruções à GPU. Esta observação é fornecida por um especialista em software.

Antes do advento dos gráficos de trabalho D3D12, a tarefa de implementar gerenciamento de memória refinado na GPU provou ser um empreendimento desafiador, tornando altamente impraticável fornecer suporte para algoritmos que exibiam crescimento dinâmico de trabalho. Além disso, mesmo tarefas computacionais aparentemente simples, envolvendo sequências estendidas de operações executadas sequencialmente, foram assoladas por despesas substanciais de sincronização e demandas de memória.

A referida tarefa envolveu a utilização da unidade central de processamento (CPU) para prever os requisitos de memória temporária da unidade de processamento gráfico (GPU), o que frequentemente resultava em alocação excessiva nos cenários mais extremos. Além disso, a CPU dependeria de quadros renderizados anteriormente para fins de ajuste fino. Essa abordagem apresentava desafios ao lidar com tarefas que exigiam crescimento dinâmico, pois exigia que a CPU emitisse comandos na situação menos favorável, levando a GPU a abandonar prematuramente operações desnecessárias. Em alguns casos, métodos alternativos tiveram que ser empregados, como threads persistentes, para alcançar a portabilidade.

O uso de gráficos de trabalho revolucionou a execução eficiente de configurações complexas de pipeline, que antes eram desafiadoras devido aos seus formatos variados. Com essa tecnologia, esses processos agora podem ser executados com eficiência em GPUs por meio de sincronização e gerenciamento de fluxo de dados gerenciados pelo agendador. Além disso, essa abordagem agiliza o processo de desenvolvimento, transferindo tarefas complexas de gerenciamento de recursos e barreiras do aplicativo para o tempo de execução do Work Graph.

Em essência, a GPU terá a capacidade de gerenciar de forma independente diversas operações, reduzindo assim a necessidade de comunicação constante com a CPU, o que pode levar a restrições de desempenho conhecidas como gargalos. A eliminação de tais gargalos no pipeline de renderização é crucial para o avanço de videogames cada vez mais complexos e inovadores, um aspecto central da colaboração da Epic Game com o Unreal Engine 5.

A Microsoft anunciou recentemente várias atualizações notáveis ​​para seu sistema operacional Windows, uma das quais é a introdução do Shader Model 6.8. Esta versão mais recente inclui uma gama de recursos inovadores projetados especificamente para desenvolvedores de shaders, como Start Vertex/Instance Location, Wave Size Range e Expanded Comparison Sampling. Para obter mais informações sobre essas melhorias, consulte a postagem abrangente do blog fornecida pela Microsoft.

Por fim, discutiremos “GPU Upload Heaps”, um método inovador para transferência de dados entre CPU e GPU em situações específicas. Convencionalmente, como a VRAM da GPU é inacessível à CPU, todas as transferências são executadas pelo barramento PCI, o que pode resultar em aumento da latência. Felizmente, as GPUs contemporâneas normalmente possuem um BAR (Base Address Register) redimensionável, permitindo que a CPU grave dados de forma eficiente na GPU com latência reduzida.

A Microsoft anunciou que tanto a AMD quanto a NVIDIA forneceram suporte imediato para os recursos mais recentes por meio de suas respectivas atualizações de driver. Os usuários interessados ​​​​podem consultar o anúncio detalhado da AMD e a postagem correspondente da NVIDIA para obter mais informações. Atualmente, a AMD oferece suporte a Work Graphs em GPUs utilizando a arquitetura RDNA 3, enquanto a NVIDIA estende seu suporte às GPUs Ampere e Ada Lovelace. Infelizmente, ainda não há qualquer divulgação sobre o envolvimento e compatibilidade da Intel com Work Graphs.

*️⃣ Link da fonte:

Agility SDK 1.613.0 , venha em nosso auxílio , postagem da AMD , este outro da NVIDIA ,