Por que a AMD tem pior desempenho no Ray Tracing?

Uma das coisas que se fala longamente é a mau desempenho de AMD placas gráficas em Ray Tracing , especialmente em comparação com NVIDIA's. No entanto, muitos levantam as mãos quando dizemos que a implementação do hardware necessário pelo Radeon Technology Group é tão ruim que parece literalmente um boicote à adoção dessa tecnologia. O que vamos lembrar que é ideal para resolver certos problemas visuais em computação gráfica e também não é uma invenção do fabricante GeForce.

Para nós, a principal função de uma placa gráfica é que ela nos permite jogar nossos jogos com facilidade e desempenho, ao mesmo tempo que se você precisar dela para tarefas mais profissionais, como edição de vídeo ou criação de 3D modelos, é mais do que suficiente. com seu trabalho. Quando dizemos que a AMD tem pouco desempenho em Ray Tracing, não estamos colocando a NVIDIA no teto, mas sim, como usuários que também somos, ficamos tristes ao ver que algo que em Radeons poderia ser muito melhor, não é.

Por que a AMD tem pior desempenho no Ray Tracing

O algoritmo de rastreamento de raios

Para entender o baixo desempenho das placas AMD no Ray Tracing temos que entender que na verdade se trata de um algoritmo recursivo para gerar uma cena completa, que em sua versão mais simples pode ser resumida da seguinte forma:

  • Para cada pixel na cena
    • Calcular o raio de visualização
      • Se o raio atingir um objeto, avalie a cor do objeto.
      • Caso contrário, esse pixel terá a cor de fundo.

O raio nada mais é do que um vetor que se move a partir da câmera que “registra” a cena e que atravessa uma matriz de pontos ou uma malha, onde cada um deles é um pixel. Cada vez que um efeito de verificação será executado na cena. Bem, se tivermos uma cena em Full HD isso significa que 2 milhões de verificações terão que ser realizadas, se o jogo estiver em 60 FPS são 120 milhões de verificações por segundo.

Matematicamente, a fórmula mais comum para verificar isso não é uma operação simples, mas sim uma equação complexa com vetores, que requer algum poder. Tanto é assim que o simples fato de não ter uma unidade paralela encarregada de realizar esta tarefa pode reduzir o desempenho percentual a números de um dígito.

esquema funcionaiento Ray Tracing

Unidades de interseção de hardware

É por isso que a NVIDIA tem os RT Cores e a AMD tem as Ray Accelerator Units, são as mesmas, pois são o mesmo tipo de unidade e são usadas para a mesma tarefa. Porém, na última geração, o RX 6000 tinha uma limitação que felizmente o RTG resolveu no RDNA 3 e, consequentemente, na faixa do RX 7000.

Tarjetas Gráficas RX 7000 Ray Tracing

Qual é o problema, então?

  • O bom, e portanto positivo, é que agora o que faltava no RDNA 2 foi incluído no RDNA 3.
  • O ruim e o que nos faz ter um desempenho ruim de Ray Tracing no AMD é a quantidade de interações raio-triângulo que ele pode calcular. Um salto de apenas 50% é muito ruim quando seu rival dobrou o desempenho de uma geração para outra.

Não esqueçamos que os primeiros cartões 3D que surgiram no mercado foram os responsáveis ​​por acelerar cada vez mais a operação de rasterização de triângulos, que é a mais comum nesse sentido. O mesmo vale para esta parte no traçado de raios. Portanto, o fato de a AMD ter dado um salto tão pequeno nesse aspecto é decepcionante.

Como isso afeta o desempenho geral?

Embora o cruzamento de raios faça parte do cenário, é um elemento comum em todas as cenas que é essencial. Não esqueçamos que é um processo que passa por fases onde o facto de uma ir mais devagar do que o normal acaba por afetar o desempenho das seguintes.

DXR Sem Ray Tracing Inline

Portanto, se conseguirmos acelerar um estágio, obtemos um tempo menor para gerar o mesmo quadro, ou seja, leva menos milissegundos e isso significa mais quadros por segundo. O que deve ficar claro é que o processo de interseção é recursivo e contínuo no Ray Tracing e, portanto, é necessário que esta parte tenha um bom desempenho.

O outro problema: desempenho de ponto flutuante

As GPUs normalmente trabalham em blocos de dados em uníssono, aplicando a mesma instrução a eles. É por isso que seu tipo de unidade por excelência é o que chamamos de unidades SIMD, que, como o próprio nome sugere, aplicam a mesma instrução a vários dados diferentes ao mesmo tempo. Bem, a NVIDIA no RTX 30 fez uma melhoria bastante curiosa que permite calcular o dobro de operações de ponto flutuante de 32 bits por ciclo de clock e núcleo.

O truque era adicionar uma segunda unidade SIMD de 16 elementos em cada um dos subnúcleos para um total de 64 operações adicionais por unidade dentro do GPU. Porém, não aumentaram o número de registros ou acessos, pois foram comutados com a unidade de inteiros. O que isso significa? Tanto o RTX 30 quanto o RTX 40 alcançam desempenho de ponto flutuante duplo sob certas condições, nem sempre.

A AMD, por outro lado, buscou outra solução que eles chamaram de Dual Issue, mas em suas especificações técnicas eles dizem que o número de unidades de ponto flutuante não aumentou, mas que sob certas condições eles podem empacotar 2 instruções ao mesmo tempo . No entanto, o número de unidades por núcleo ou Unidade de Computação ainda é de no máximo 64, em vez de 128, como no caso da NVIDIA.

RDNA 3 de edição dupla

O que a AMD quer dizer com “Dual Issue” no RDNA 3?

No entanto, se você contar o número de operações de ponto flutuante fornecidas pelo AMD, que geralmente são dadas em um máximo teórico, realizando 100% do tempo a operação FMA ou adição com multiplicação de ponto flutuante, o que é irreal, pois não leva em consideração conta os acessos à memória e o fato de que nem sempre os programas utilizam esta instrução, mas leva em conta que é a mais utilizada na hora de gerar gráficos. O fato é que a instrução é de 2 operações.

Bem, o que a AMD fez é que certas instruções podem ser empacotadas duas a duas nas unidades de cálculo, permitindo que o dobro da potência em ponto flutuante seja alcançado com RDNA 2 sob certas condições. É o mesmo caso das GPUs NVIDIA. A potência de ponto flutuante adicional não é duplicada em geral, mas apenas sob certas condições. Portanto, é um problema comum. De qualquer forma, a medição em TFLOPS ainda hoje é um truque de marketing.

Então, por que isso é importante para o desempenho do Ray Tracing da AMD? Bem, pelo fato de nos ajudar a medir o poder de cálculo das unidades que são usadas no restante das etapas do ray tracing que não são a interseção de raios. De qualquer forma, a própria AMD afirma que a melhoria intergeracional é de 18% na mesma velocidade de clock.

AMD RDNA 3 melhor desempenho

Desempenho da GPU AMD em Ray Tracing: os números

Se compararmos o desempenho das diferentes unidades de interseção em ambas as diferentes gerações de placas gráficas da NVIDIA e da AMD, veremos qual é o problema.

GPUs Interseções/s (em milhões) núcleos MHz Interseções (núcleo e MHz)
RTX 2080Ti 105600 68 1545 um
RTX 3090Ti 312480 84 1860 2
RTX 4090 1290240 144 2520 3.6
RX 6950 XT 184800 80 2310 um
RX 7900XTX 360000 96 2500 1.5

À primeira vista, a potência bruta neste aspecto é superior à de uma RTX 3090 Ti, sim, olhamos para a segunda coluna. No entanto, é o último que é importante, pois nos diz quantas interceptações são computadas por núcleo e ciclo de clock na GPU. E a decepção vem do fato de que, embora a AMD não seja solicitada a fornecer o resultado de 3.6 para o RTX 40, é solicitado que atinja pelo menos 2 para o RTX 30. Esse é o principal motivo do baixo desempenho das placas de vídeo AMD em Ray Tracing. E a razão pela qual achamos que eles poderiam ter feito muito melhor.

É mais, e já para terminar, porque a Ray Accelerator Unit é uma caixa preta em si que pode ser substituída sem afetar o resto da arquitetura. A AMD pode pegar e fazer uma faixa RX 7 × 50 para o próximo ano que retém toda a qualidade do RDNA 3 atual, mas com o RAU aprimorado e ver o desempenho dos jogos aumentar em porcentagens de dois dígitos em termos de taxa de quadros.

Qual é o desempenho dos jogos AMD com Ray Tracing em RDNA 3?

Agora para finalizar temos a cereja do bolo e falar sobre como ele se comporta em jogos. Como a AMD afirmou publicamente uma melhoria de 50%, devemos esperar um salto igualmente grande. No entanto, descobrimos posteriormente que se referem ao desempenho por watt, a uma certa quantidade destes e com um jogo específico, que não foi especificado. Portanto, o importante é saber qual foi a melhoria em relação à geração anterior, nesse aspecto, principalmente pelo fato de partirem de um desempenho bastante ruim em ray tracing que é do RX 6000.