Depois de ter aposentado o Mantle, a AMD parece estar realmente disposta a apostar suas fichas no DirectX 12, conjunto de APIs da Microsoft para lidar com o processamento gráfico. A “morte prematura” dessa solução – que deixou bons frutos e ainda vai permanecer no mercado por um tempo – abre ainda mais espaço para o crescimento desse recurso da Gigante de Redmond, o que deve ser bom para todos.

Uma prova de que a dona da série Radeon está mesmo incentivando o uso do DirectX 12 é o detalhamento do Asynchronous Shaders, publicado através do site Tom’s Hardware. Esse recurso deve estar integrado ao conjunto de APIs da Microsoft e promete uma melhora considerável no desempenho ao reorganizar a forma com que a GPU lida com suas tarefas.

DirectX 12, conjunto de APIs gráficas da Microsoft.

Asynchronous Shaders: uma forma mais inteligente de lidar com o processamento

Antes de partirmos para a explicação, é importante entender alguns conceitos e termos relacionados ao assunto. Os shaders da GPU são os responsáveis por desenhar as imagens, computar a física dos games, fazer o pós-processamento e muito mais. Cada uma dessas atividades é coletada de uma gigantesca fila, composta por filas menores que trazem tarefas para alimentar a maior.

No DirectX 11, havia basicamente duas formas com as quais essa fila era alimentada: o Multi-threaded Graphicis e o Multi-threaded Graphicis com preempção e priorização. Cada um desses métodos possui suas vantagens e desvantagens, mas os maiores problemas dessas soluções são a latência e a ausência de prioridade para algumas tarefas urgentes.

Multi-threaded Graphicis.

O processamento síncrono do Multi-threaded Graphicis faz com as filas de tarefas sejam processadas uma de cada vez. Isso acaba criando um intervalo que atrasa atividades importantes e faz com que a GPU nunca trabalhe com 100% de sua capacidade.

Multi-threaded Graphicis com preempção e priorização.

A adição da preempção e priorização ao Multi-threaded Graphicis conseguiu eliminar a falha em não dar atenção a tarefas importantes. Esse método consegue pausar a alimentação de uma fila para priorizar outra, mas tem como desvantagem exatamente essa pausa, o que pode causar problemas de perfomance por causa da mudança constante de prioridades.

Asynchronous Shaders, Multi-threaded Graphicis assíncrono com preempção e priorização.

O DirectX 12 vai resolver esses problemas com o Asynchronous Shaders, um método mais inteligente para lidar com a fila de tarefas dos shaders da GPU. Podemos encarar essa solução como o Multi-threaded Graphicis assíncrono que ainda trabalha com a preempção e priorização. Aqui, cada um dos ACEs (Asynchronous Compute Engines, “motor” responsável pelas filas) nas GPUs baseados no GCN vão intercalar as tarefas, alimentando as filas corretamente e preenchendo os espaços deixados no método tradicional.

Para lidar com a necessidade de priorizar uma tarefa, uma “fila vazia” está à disposição para ser usada pelos shaders da GPU, dispensando a ação de pausar complemente a fila principal para dar atenção a uma única tarefa.

ACEs que podem lidar com a alimentação de até oito filas.

Melhora significativa

Nas GPUs GCN da AMD, cada ACE pode lidar com a alimentação de até oito filas. Além disso, cada um desses “motores” vai funcionar de forma a eliminar as desvantagens apresentadas pelos métodos tradicionais de atribuição de tarefas.

O resultado disso é um aumento de perfomance significativo, permitindo ter os resultados gráficos de um pós-processamento “quase de graça”, sem sacrificar o desempenho das GPUs.

.....

O destaque dessa solução apresentada pela AMD não poderia ser outro se não os games. Porém, como a fonte também lembra aos leitores, a realidade virtual pode tirar vantagem desse método por permitir um aumento na taxa de FPS sem sacrificar a qualidade das imagens.

Isso provavelmente não compreende todas as inovações que a companhia espera implementar, restado-nos aguardar para recebermos mais notícias sobre os planos da AMD para o futuro.

Cupons de desconto TecMundo: