Você seguiu os rumores e ignorou o hype; você esperou comentários e olhou para todas as métricas. Finalmente, você deu um tapa na cara e saiu com uma das mais recentes placas de vídeo da AMD ou Nvidia. Entre eles, um grande processador gráfico cheio de bilhões de transistores funciona a velocidades de clock impensáveis ​​há uma década.

Você está muito feliz com sua compra e os jogos não ficaram melhores e não funcionaram melhor. No entanto, você pode estar se perguntando o que exatamente aciona sua nova Radeon. RX 5700 e quão diferente em um chip GeForce RTX.

Bem-vindo à arquitetura e comparação de recursos da AMD e Nvidia: Navi versus as mais recentes GPUs de Turing.

Anatomia moderna da GPU

Antes de começar a quebrar estruturas e sistemas de chips comuns, vamos dar uma olhada na forma básica que todas as GPUs modernas seguem. Para a maior parte, esses processadores são apenas calculadoras de ponto flutuante (FP); em outras palavras, eles realizam operações matemáticas em valores decimais / fracionários. Portanto, pelo menos uma GPU precisa ter uma unidade lógica dedicada a essas tarefas, e geralmente são FP ALUs (unidades lógicas aritméticas de ponto flutuante) ou FPUs. Nem todos os cálculos que as GPUs fazem estão em valores de dados FP, então também haverá uma ALU para o inteiro (inteiro) pode ser a mesma unidade que lida com operações matemáticas ou ambos os tipos de dados.




Agora, essas unidades lógicas precisarão de algo para organizá-las, decodificando-as e organizando-as para mantê-las ocupadas, e isso terá a forma de pelo menos um grupo especial de unidades lógicas. Ao contrário das ALUs, elas não podem ser programadas pelo usuário final; em vez disso, o fornecedor do hardware garantirá que esse processo seja totalmente gerenciado pela GPU e seus drivers.




Também deve haver algum tipo de estrutura de memória para armazenar essas instruções e os dados que precisam ser processados. Em seu nível mais simples, será em duas formas: esconderijo e um ponto memória local. O primeiro será incorporado na GPU e VERGONHA. Esse tipo de memória é rápido, mas ocupa relativamente grande parte do layout do processador. Memória local DRAMAÉ um pouco mais lento do que SRAM e normalmente não é colocado na GPU. Memória local na maioria das placas gráficas que vemos hoje GDDR Módulos DRAM.

Finalmente, inclui tarefas adicionais de configuração, como a criação de gráficos 3D, a criação de triângulos a partir dos cantos, a rasterização de um quadro 3D, amostragem e mesclagem de texturas. Como unidades de instrução e controle, estes também função constante na natureza. O que eles fazem e como funcionam é completamente transparente para os usuários que programam e usam a GPU.




Vamos juntar isso e fazer uma GPU:




O bloco laranja é a unidade que processa texturas usando o que é chamado unidades de mapeamento de textura (TMU'lar) - TA endereçamento de textura volume - cria localizações de memória para cache e memória local para uso - e TF não traga textura reúne valores de textura da memória e os coloca juntos. Hoje, as TMUs são praticamente as mesmas em todos os fornecedores porque podem manipular, amostrar e misturar diversos valores de textura por ciclo de clock da GPU.




O bloco abaixo grava os valores de cor dos pixels no quadro, faz uma amostra deles (PO) e mistura (PB); este bloco também executa operações usadas quando o anti-aliasing é aplicado. O nome deste bloco: unidade de saída de renderização or criar backend (ROP / RB para breve). Como o TMU, eles agora estão se tornando bastante padronizados, cada um manipulando confortavelmente alguns pixels por ciclo de clock.

No entanto, nossa GPU básica teria sido terrível mesmo para os padrões de 13 anos atrás. Por quê?

Existe apenas um FPU, TMU e ROP. Em 2006, os processadores gráficos da Nvidia como o GeForce 8800 GTX tinham 128, 32 e 24 respectivamente. Então, vamos começar a fazer algo sobre isso ...




Como qualquer bom fabricante de processadores, atualizamos a GPU adicionando mais algumas unidades. Isso significa que o chip pode processar mais instruções ao mesmo tempo. Para ajudar com isso, adicionamos mais alguns caches, mas desta vez ao lado das unidades lógicas. Quanto mais próximo o cache estiver de uma estrutura de calculadora, mais rápido ele pode ser inicializado nas transações atribuídas a ele.

O problema com nosso novo design é que apenas um controlador ainda está disponível para lidar com nossas ALUs extras. Seria melhor se tivéssemos mais blocos de unidades, todos gerenciados por seus próprios controladores separados, pois isso significa que podemos realizar operações muito diferentes ao mesmo tempo.

Agora isso é mais! Blocos ALU separados embalados com seus próprios TMUs e ROPs e apoiados por fatias de cache deliciosamente saborosas e rápidas. Ainda é apenas um de tudo, mas a estrutura básica não está a um milhão de milhas de distância do processador gráfico que vemos em computadores e consoles hoje.

Navi ve Turing: Godzilla GPU'ları

Agora que definimos o layout básico de um chip gráfico, embora ligeiramente ampliado e processado para destacar várias estruturas, Navi vs. Vamos começar nossa comparação de Turing.

À esquerda está o processador mais recente da AMD. O design geral do chip é chamado Navi (alguns são chamados Navi 10) e a arquitetura gráfica é chamada RDNA. Próximo a ele, à direita, está o processador TU102 de tamanho normal da Nvidia com a mais recente arquitetura Turing. É importante notar que essas imagens não são dimensionadas: a área da matriz Navi é de 251 mm2, enquanto TU102 é de 752 mm2. O processador Nvidia é grande, mas não 8 vezes maior do que a oferta da AMD!

Ambos colossal o número de transistores (10,3 contra 18,6 bilhões), mas o TU102 tem uma média de ~ 25 milhões de transistores por mm quadrado em comparação com os 41 milhões de Navi por mm quadrado.

Isso ocorre porque, embora ambos os chips sejam fabricados pela TSMC, eles são produzidos em nós de processo diferentes: o Turing da Nvidia está na linha de produção de 12 nm, enquanto o Navi da AMD é produzido no nó de 7 nm mais recente.

Apenas olhar as imagens dos moldes não nos diz muito sobre arquiteturas, então vamos dar uma olhada nos diagramas de blocos de GPU produzidos por ambas as empresas.

Os diagramas não são uma representação 100% realista dos layouts reais, mas se você girá-los 90 graus, os vários blocos e a faixa central que aparecem em ambos podem ser definidos. Para começar, podemos ver que as duas GPUs têm uma estrutura geral como a nossa (embora mais do que qualquer outra coisa!).

Ambos os designs seguem uma abordagem em camadas de como tudo é organizado e agrupado - para começar a usar o Navi, a GPU consiste em 2 blocos que a AMD está procurando. Shader Motors (SE), cada um deles é chamado de 2 blocos assíncrono Mecanismos de computação (ÁS). Cada um deles contém 5 blocos no título. Processadores de grupo de trabalho (WGPs), que consiste em 2 Unidades de processamento de informação (Öze).

Nomes e números são diferentes para o design de Turing, mas a hierarquia é muito semelhante: 6 Clusters de processamento gráfico (GPC), 6 cada Clusters de processamento de textura (TPC), 2 cada Stream Multiprocessor (SM) blocos.

Se você vê um processador gráfico como uma grande fábrica onde diferentes departamentos produzem produtos diferentes usando as mesmas matérias-primas, essa organização começa a fazer sentido. O CEO da fábrica envia todos os detalhes operacionais para a empresa e os divide em várias tarefas e cargas de trabalho. Ter mais de um, independente A produtividade da força de trabalho foi aumentada na fábrica. Não é diferente para GPUs e aqui está a palavra-chave mágica cronometragem.

Frente e centro, soldado - tempo e despacho

Como olhamos para Exercícios de criação de jogos 3DVimos que o processador gráfico nada mais é do que uma calculadora super rápida, executando uma série de operações matemáticas em milhões de dados. Navi e Turing são classificados da seguinte forma: Dados múltiplos de comando único (SIMD) processadores, mas uma explicação melhor Single Way Multi Fio (Sentido).

Um jogo 3D moderno produz centenas de threads, às vezes milhares, pois o número de vértices e pixels a serem renderizados é enorme. Para garantir que tudo seja feito em apenas alguns microssegundos, é importante ter tantas unidades lógicas quanto possível sem parar tudo porque os dados necessários não estão no lugar certo ou não há espaço de recursos suficiente para trabalhar dentro.

Quando demos uma olhada em como funciona a criação de jogos 3D, vimos que um processador gráfico nada mais é do que uma calculadora muito rápida e realizamos várias operações matemáticas em milhões de dados. Navi e Turing são classificados como processadores Single Command Multiple Data (SIMD), mas uma explicação melhor seria Single Command Multiple Threads (SIMT).

Navi e Turing funcionam de forma semelhante, então uma unidade central pega todos os threads e então começa a programá-los e transmiti-los. No chip AMD, essa função Processador de Comando Gráfico; Nvidia'da, GigaThread Motoru. Os fios são organizados de forma que aqueles com as mesmas instruções sejam agrupados em uma coleção de 32 grupos.

AMD esta coleção ondaenquanto a Nvidia esta curvatura. Para Navi, uma unidade de computação pode lidar com 2 ondas (ou uma onda de 64 threads, mas esse processo leva o dobro do tempo) e em Turing um Multiprocessador de fluxo é executado com 4 warps. Em ambos os designs, a onda / urdidura é independente, o que significa que os outros não precisam terminar antes de começar.

Até então, não é muito diferente entre Navi e Turing - ambos foram projetados para lidar com um grande número de threads para criar e calcular cargas de trabalho. Precisamos olhar em quais processadores esses threads estão para ver onde os dois gigantes da GPU se separam no design.

Diferença Executiva - RDNA e CUDA

Embora a maioria da terminologia usada pareça a mesma, a AMD e a Nvidia têm uma abordagem bastante diferente para unidades de sombreador combinadas. Unidades de execução da Nvidia (MILAGRES sementes) digital na natureza - isso significa que uma unidade executa uma operação matemática em um componente de dados; Ao contrário das unidades AMD (Processadores de fluxo) trabalho em vetores - uma operação em vários componentes de dados. Existe apenas uma unidade específica para operações escalares.

Antes de darmos uma olhada mais de perto nas unidades de execução, vamos examinar as próprias modificações da AMD. Por 7 anos, as placas de vídeo Radeon seguiram uma arquitetura chamada Graphics Core Next (GCN). Cada novo chip revisava vários aspectos do design, mas eram basicamente iguais.

A AMD apresentou um breve histórico da arquitetura da GPU:

GCN foi uma evolução do TeraScale, um design que permite que ondas grandes sejam processadas simultaneamente. O principal do TeraScale era que ele não era muito fácil contra os programadores e precisava de rotinas muito específicas para obter o melhor. O GCN corrigiu isso e forneceu uma plataforma muito mais acessível.

As UCs ​​no Navi foram significativamente revisadas do GCN como parte do processo de melhoria da AMD. Cada CU contém dois conjuntos:

  • 32 SP (IEE754 FP32 e ALUs de vetor INT32)
  • 1 SFU
  • 1 INT32 escalas ALU
  • 1 unidade de tempo e entrega

Além destes, cada CU contém 4 unidades de tecido. Existem outras unidades para realizar operações de leitura / gravação de dados a partir do cache, mas não mostrado na imagem abaixo:

Comparado ao GCN, a configuração de um RDNA CU pode não parecer muito diferente, mas tudo o que é importante aqui é organizado e organizado dessa maneira. Para começar, cada conjunto de 32 SP tem sua própria unidade de instrução dedicada, GCN tinha apenas um programa para 4 conjuntos de 16 SP.

Esta é uma mudança importante, o que significa que uma onda de 32 threads por ciclo de clock pode ser entregue a cada conjunto de SP. A arquitetura RDNA também permite que unidades de vetor processem ondas de 16 threads com o dobro da velocidade e ondas de 64 threads pela metade, portanto, o código escrito para todas as placas gráficas Radeon anteriores ainda é suportado.

Essas mudanças serão muito populares para desenvolvedores de jogos.

Para operações escalares, agora existem duas unidades que podem controlá-las; a única redução no número de componentes está na forma de SFUs - estes são função especial unidadesexecuta operações matemáticas muito específicas, por exemplo. trigonométrica (seno, tangente), recíproca (1 dividido por um número) e raízes quadradas. O RDNA tem menos desses do que os GCNs, mas agora eles podem operar em conjuntos de dados duas vezes maiores do que antes.

Essas mudanças serão muito populares para desenvolvedores de jogos. Havia muito potencial de desempenho em placas de vídeo Radeon mais antigas, mas era muito difícil de fazer. Agora, a AMD deu um grande passo para reduzir a latência nas instruções de processamento e reter recursos para garantir a compatibilidade com versões anteriores para todos os programas projetados para a arquitetura GCN.

E quanto aos gráficos profissionais ou ao mercado de computação? Essas mudanças são benéficas para eles também?

A resposta curta é sim (provavelmente) A versão atual do chip Navi encontrado no Radeon RX 5700 XT semelhante tem menos processadores de fluxo do que o design anterior do Vega, enquanto nós executamos melhor a geração anterior Radeon RX Vega 56 é bastante fácil:

Parte desse ganho de desempenho virá da maior velocidade de clock do RX 5700 XT do que do RX Vega 56 (portanto, ele pode gravar mais pixels por segundo na memória local), mas cai em até 15% no desempenho de inteiro e ponto flutuante mais alto; no entanto, descobrimos que o chip Navi teve um desempenho 18% melhor do que o Vega.

Os cientistas que executam programas de renderização profissional e algoritmos complexos não estão estourando com algumas rodadas de Battlefield V em seu trabalho (ou seja, poderia ser...) somente se as operações escalares, vetoriais e matriciais realizadas em um motor de jogo forem processadas mais rapidamente navio transformá-lo no mercado de computação. Atualmente, não sabemos quais são os planos da AMD para o mercado profissional - eles podem ir bem com a arquitetura Vega e ajudar a melhorar o design, a fabricação, mas com os avanços do Navi, a empresa muda tudo para a nova arquitetura.

O design da GPU da Nvidia passou por uma evolução semelhante desde 2006, quando lançou a série GeForce 8, embora com mudanças menos radicais do que a AMD. Essa GPU criou a primeira arquitetura Tesla a usar uma abordagem de primeiro shader na arquitetura de execução. Abaixo, podemos ver as mudanças nos blocos SM do sucessor de Tesla (Fermi) para o predecessor de Turing (Volta):

Conforme mencionado anteriormente neste artigo, kernels CUDA digital. Eles podem executar um float e uma instrução de inteiro por ciclo de clock em um componente de dados (observe, no entanto, que a própria instrução pode levar vários ciclos de clock para ser processada), mas as unidades de temporização os organizam em grupos, eles podem realizar operações de vetor para um programador. A mudança mais significativa ao longo dos anos inclui não apenas o número de unidades, mas como elas são organizadas e segmentadas.

No projeto do Kepler, o chip completo tinha 5 GPCs, cada um contendo três blocos SM; Quando o Pascal surgiu, os GPCs foram divididos em partições separadas (TPC) com dois SMs por TPC. Tal como acontece com o design Navi. essa fragmentação é importante, pois permite que a GPU geral seja usada da forma mais completa possível; Vários conjuntos de instruções independentes podem ser processados ​​em paralelo, aumentando o sombreamento e o desempenho de computação do processador.

Vamos dar uma olhada no equivalente de Turing a RDNA Computing Unit:

Um SM contém 4 blocos de transação, cada um contendo:

  • 1 unidade de programação e despacho de instrução
  • 16 escalas IEE754 FP32 ALU
  • 16 escalas INT32 ALU
  • 2 cores de tensor
  • 4 SFU
  • 4 Carregar / armazenar (executar operações de leitura / gravação de cache)

Existem também 2 unidades FP64 por SM, mas a Nvidia não as exibe mais em diagramas de blocos e cada SM tem 4 unidades de textura (inclui endereçamento de textura e sistemas de filtragem de textura) e 1 núcleo RT (Ray Tracing).

As ALUs FP32 e INT32 podem funcionar simultaneamente e em paralelo. Este é um recurso importante porque os mecanismos de renderização 3D geralmente requerem cálculos de ponto flutuante, mas há um número razoável de operações inteiras simples (por exemplo, cálculos de endereço de dados) a serem feitas.

Os núcleos tensores são ALUs especiais que realizam operações de matriz. Matrizes são matrizes de dados 'quadradas' e núcleos do Tensor executados em uma matriz 4 x 4. O FP16 é projetado para processar componentes de dados INT8 ou INT4 para que as operações float ocorram em 64 FMA (fusão, multiplicação após adição) em um ciclo de clock. Este tipo de cálculo é denominado redes neurais e inferência - não exatamente comum em jogos 3D, mas muito usada por curtidas do Facebook em carros com algoritmos de análise de mídia social ou sistemas de direção autônoma. O Navi também pode fazer cálculos de matrizes, mas requer um grande número de SP para isso; No sistema de Turing, as operações de matriz podem ser realizadas enquanto os núcleos CUDA fazem outras contas.

RT Core é outra unidade especial exclusiva da arquitetura de Turing que executa algoritmos matemáticos muito específicos usados ​​para o sistema de rastreamento de raios da Nvidia. Uma análise completa disso está além do escopo deste artigo, mas o RT Core são dois sistemas que funcionam separadamente para o resto do SM, portanto, enquanto o RT Core está ocupado fazendo cálculos, ele pode funcionar em shaders de pico ou pixel. para rastreamento de raio.

No nível básico, Navi e Turing têm unidades de execução que oferecem um conjunto de recursos bastante semelhante (um requisito que vem da conformidade com os requisitos do Direct3D, OpenGL, etc.).

No nível básico, Navi e Turing têm unidades de execução que oferecem um conjunto de recursos bastante semelhante (um requisito que vem do cumprimento dos requisitos do Direct3D, OpenGL etc.), mas eles têm uma abordagem muito diferente de como esses recursos são. acabado. Quando se trata de qual design é melhor, se trata de como eles são usados: FP32 um programa que produz cálculos vetoriais e um grande número de threads que executa pouco prefere o Navi, enquanto um programa com uma variedade de cálculos inteiros, de ponto flutuante, escalares e vetoriais dará a flexibilidade de Turing. prefere, etc.

Hierarquia de Memória

As GPUs modernas são projetadas para executar uma série de operações em processadores de fluxo, ou seja, em cada elemento em um fluxo de dados. Isso os torna menos flexíveis do que uma CPU de uso geral e também requer a otimização da hierarquia de memória do chip para receber dados e instruções para ALUs o mais rápido possível e em tantos fluxos quanto possível. Isso significa que as GPUs terão menos cache do que a CPU, já que a maior parte do chip precisa ser dedicada à quantidade de cache, não ao acesso ao cache.

Tanto a AMD quanto a Nvidia recorrem ao uso de múltiplos caches dentro dos chips, então vamos dar uma olhada no que o Navi embala primeiro.

Começando do nível mais baixo na hierarquia, dois blocos de Processadores de Fluxo usam um total de registro vetorial de propósito geral de 256 libras (geralmente arquivo de log) Era a mesma quantidade que Vega, mas entre 4 blocos SP; Ficar sem registros ao tentar processar um grande número de threads realmente prejudica o desempenho, então isso é definitivamente uma "coisa boa". A AMD também aumentou muito o arquivo de gravação escalar. Quando antes tinha apenas 4 kiB, agora é 32 quilos por unidade escalar.

As duas unidades de computação compartilham um cache L0 de 32 libras e um cache de dados escalar de 16 libras, mas cada CU recebe seu próprio cache L0 vetorial de 32 libras; Conectar toda essa memória às ALUs é um compartilhamento de dados local de 128 libras.

No Navi, dois Computing Engines criam um Workgroup Processor e cinco deles formam o Asynchronous Computing Engine (ACE). Cada ACE tem acesso ao seu próprio cache L1 de 128 libras e toda a GPU é ainda suportada por 4 caches MiB L2 que se conectam a caches L1 e outras partes do processador.

Como o sistema é estritamente usado para lidar com 16 controladores de memória GDDR6, é uma forma da arquitetura de conectividade Infinity Fabric da AMD. Para maximizar a largura de banda da memória, o Navi também usa compactação de cores sem perdas entre L1, L2 e a memória GDDR6 nativa.

Novamente, tudo isso é particularmente bem-vindo em comparação com os chips AMD anteriores que não tinham cache de baixo nível suficiente para o número de unidades de sombreamento que contêm. Em suma, mais cache equivale a mais largura de banda interna, instruções menos lentas (porque eles precisam recuperar mais dados da memória), etc. E isso significa melhor desempenho.

Na hierarquia de Turing, deve-se dizer que a Nvidia é tímida quando se trata de fornecer conhecimento aprofundado nesta área. Anteriormente neste artigo, vimos cada SM dividido em 4 blocos de transação - cada um tem um arquivo de log menor de 64 libras do que o encontrado no Navi, mas tenha em mente que as ALUs de Turing são escalares, não vetores. , unidades.

Em seguida, 96 kb de memória compartilhada para cada VM podem ser usados ​​como 64 kb de cache de dados L1 e 32 kb de cache de tecido ou espaço de registro extra. No 'modo de computação', a memória compartilhada pode ser dividida em diferentes partições, como 32 kb de memória compartilhada e 64 kiB de cache L1, mas sempre feito como 64 + 32 divisões.

A falta de detalhes fornecidos sobre o sistema de memória Turning nos fez querer mais, então procuramos uma equipe de pesquisa de GPU que trabalhava na Citadel Enterprise Americas. Recentemente, eles publicaram dois artigos. Tempo ve Turing arquiteturas; A imagem acima é a fragmentação da hierarquia de memória no chip TU104 (cache TU102 sport 6144 kiB L2 completo).

A equipe confirmou que a taxa de transferência do cache L1 foi de 64 bits por ciclo, e afirmou que, ao testar a eficiência do cache L1 de Turing, foi a melhor de todas as GPUs da Nvidia. Isso está no mesmo nível do Navi, embora o chip AMD tenha uma taxa de leitura mais alta para Armazenamento de Dados Local, mas uma taxa mais baixa para caches de instrução / fixos.

Ambas as GPUs usam GDDR6 para memória local - esta é a versão mais recente do Graphics DDR SDRAM - e ambas usam conexões de 32 bits para módulos de memória, então Radeon RX 5700 XT Ele tem 256 chips de memória e oferece um pico de largura de banda de 256 GiB / se 8 GiB de espaço. 1 GeForce RTX 2080 Ti Com o chip TU102, ele funciona com 11 desses módulos para largura de banda de 352 GiB / s e armazenamento de 11 GiB.

A documentação da AMD pode parecer confusa às vezes: no primeiro diagrama de blocos, vemos Navi mostra quatro controladores de memória de 64 bits, enquanto uma imagem posterior mostra 16 controladores. Considerando Samsung oferece apenas GDDR6 de 32 bits Parece que a segunda imagem mostra quantas conexões existem entre o sistema Infinity Fabric e os controladores de memória. Provavelmente, existem apenas 4 controladores de memória e cada um usa dois módulos.

No geral, não parece haver uma grande diferença entre Navi e Turing quando se trata de seus caches e memória local. Há um pouco mais de Navi se aproximando do lado da execução das coisas com suas instruções / constantes maiores e caches L1, mas ambos são embalados, ambos usam compactação de cor sempre que possível, e ambos têm muitos padrões de GPU personalizados no acesso à memória e usado para maximizar a largura de banda.

Triângulos, texturas e pixels

Quinze anos atrás, os fabricantes de GPU fizeram muito sobre quantos triângulos seus chips podem manipular, o número de elementos de textura que podem ser filtrados por ciclo e a capacidade de unidades de saída de renderização (ROPs). Esses aspectos ainda são importantes hoje, mas o foco está muito mais no lado da execução, pois as tecnologias de renderização 3D exigem mais desempenho de computação do que nunca.

No entanto, apenas para apontar que não há diferença imediatamente perceptível entre Navi e Turing nessas áreas, unidades de textura e ROPs ainda valem a pena explorar. Em ambas as arquiteturas, as unidades de textura podem manipular e recuperar 4 elementos de textura, filtrá-los desconhecidos em um único elemento e armazená-los em cache em um ciclo de clock (ignorando os loops de clock adicionais tomados para recuperar dados da memória local).

O arranjo de ROP / RBs é ligeiramente diferente entre Navi e Turing, mas não muito: o chip AMD tem 4 RBs por ACE e cada um pode produzir 4 pixels combinados por ciclo de clock; Em Turing, cada GPC tem dois RBs, cada um fornecendo 8 pixels por hora. A contagem de ROP da GPU é realmente uma medida da velocidade de saída desse pixel, então um chip Navi completo rende 64 pixels por hora e TU102 96 completo (mas lembre-se de que este é um chip maior).

Há menos informações sobre o lado triangular das coisas. O que sabemos é que o Navi ainda dá um máximo de 4 primitivos por ciclo de clock (1 por ACE), mas não há mais nada sobre se a AMD corrigiu o problema com este problema. Shaders primitivos. Este era um recurso muito elogiado do Vega e permitia aos programadores ter muito mais controle sobre os primitivos, de forma que o rendimento dos primitivos pudesse ser aumentado em 4 fatores. funcionalidade removida dos drivers O produto ficou inativo logo após seu lançamento e desde então.

Enquanto ainda esperamos por mais informações sobre Navi, não seria sensato especular mais. Turing também lida com 1 primitivo por hora por GPC (ou seja, até 6 para a GPU TU102 completa) em motores raster, mas também Mesh ShadersOferece a mesma funcionalidade que os primitivos Shaders da AMD; Direct3D não é um conjunto de recursos OpenGL ou Vulkan, mas pode ser usado por meio de extensões de API.

Isso parece dar a Turing uma vantagem sobre Navi em termos de manipulação de triângulos e primitivas, mas atualmente não há informações precisas suficientes de domínio público.

Nem tudo sobre unidades de execução

Existem outros aspectos de Navi e Turing que valem a pena comparar. Para começar, ambas as GPUs apresentam mecanismos de exibição e mídia altamente avançados. O primeiro processa a saída para o monitor, o segundo codifica e decodifica os fluxos de vídeo.

Como você esperaria de um novo design de GPU 2019, o mecanismo de exibição do Navi oferece resoluções muito altas com altas taxas de atualização e oferece suporte a HDR. Ver compressão de fluxo (DSC) é um algoritmo de compressão com perda rápida que permite que resoluções de 4K + com taxas de atualização superiores a 60 Hz sejam transmitidas por meio de uma conexão DisplayPort 1.4; Felizmente, a deterioração da qualidade da imagem é muito pequena a ponto de você considerar o DSC quase sem perdas.

Turing também suporta DisplayPort com conexões DSC, mas a combinação suportada de alta resolução e taxa de atualização é um pouco melhor que Navi: 4K HDR a 144 Hz - o resto é o mesmo.

O mecanismo de mídia da Navi é tão moderno quanto o mecanismo de exibição e Codificação de vídeo avançada (H.264) e Codificação de vídeo de alta eficiência (H.265), novamente em altas resoluções e altas taxas de bits.

O mecanismo de vídeo de Turing é aproximadamente o mesmo do Navi, mas o suporte para codificação 8K30 HDR pode virar a balança a favor de Turing para algumas pessoas.

Existem outros aspectos para comparar (por exemplo, a interface PCI Express 4.0 da Navi ou o NV Link de Turing), mas independentemente de como vestidos e comercializados, eles são realmente peças minúsculas da arquitetura geral. Isso ocorre porque, para a grande maioria dos usuários em potencial, esses recursos exclusivos não serão importantes.

Comparação like-for-like

Este artigo é uma observação do projeto arquitetônico, dos recursos e da funcionalidade, mas ter uma comparação direta de desempenho seria uma boa maneira de concluir essa análise. No entanto, emparelhar o chip Navi em uma Radeon RX 5700 XT em uma GeForce RTX 2080 Ti com o processador Turing TU102 em uma GeForce RTX 2080 Ti não seria claramente justo, considerando que o último é quase o dobro do número de unidades de sombreador combinadas. No entanto, existe uma versão do chip Turing que pode ser usada para comparação, e esta é a encontrada na GeForce RTX 2070 Super.

  Radeon RX 5700 XT GeForce RTX 2070 Super
GPU | Arquitetônico Navi 10 | rDNA TU104 | Turing
processo 7 nm TSMC 12 nm TSMC
Área do molde (mm2) 251 545
Transistores (bilhões) 10.3 13.6
Perfil de bloco 2 SE | 4 ACE | 40 PB 5 GPC | 20 TPC | 40 SM
Núcleos de shader combinados 2560 SP 2560 MILAGRES
TMUs 160 160
ROPS 64 64
Tempo básico 1605 MHz 1605 MHz
Relógio de jogo 1755 MHz N / D
Hora de impulso 1905 MHz 1770 MHz
Memória 8 GB 256 bits GDDR6 8 GB 256 bits GDDR6
Largura de banda de memória 448 GBps 448 GBps
Energia de design térmico (TDP) 225 watts 215 W.

É importante notar que o RTX 2070 Super não é um chip TU104 'completo' (um dos GPCs está desabilitado), então todos esses transistores 13.6 estão inativos, o que significa que os chips são praticamente os mesmos em termos de número de transistores. Pelo valor de face, as duas GPUs parecem muito semelhantes, especialmente se você considerar apenas unidades de sombreador, TMUs, ROPs e sistemas de memória principal.

No processador Nvida, um SM pode processar 32 warps simultâneos e, com cada warp de 32 threads, uma GeForce RTX 2070 Super totalmente carregada pode ser executada em 40.960 threads em todo o chip; Para Navi, um CU SIMD32 pode receber 16 ondas por ALU e cada onda tem 32 fios. Portanto, a Radeon RX 5700 XT também pode ser embalada com até 40.960 threads. Pode parecer que isso os torna exatamente aqui, mas dada a forma como os CU / SMs são organizados de maneira diferente e a vantagem da Nvidia com processamento simultâneo de INT e FP, o resultado dependerá muito do código que está sendo executado.

Que efeito isso terá nas várias performances do jogo, já que o código de um motor 3D irá favorecer uma construção em detrimento de outra, dependendo do tipo de instruções que são enviadas rotineiramente para a GPU. Este, testou duas placas gráficas:

Todos os jogos usados ​​no teste foram programados para a arquitetura GCN da AMD diretamente para PCs equipados com Radeon ou via GPUs GCN encontrados no PlayStation 4 ou Xbox One. É possível que alguns dos recentemente lançados estejam preparados para as alterações do RDNA, mas as diferenças nos resultados do benchmark são mais prováveis ​​devido aos motores de renderização e à maneira como as instruções e dados são processados.

Então, o que tudo isso significa? Uma arquitetura é realmente melhor do que outra? Turing certamente oferece mais capacidade do que Navi graças ao Tensor e RT Cores, mas este último definitivamente compete em termos de desempenho de renderização 3D. As diferenças vistas nos 12 exemplos de jogos não são precisas o suficiente para fazer um julgamento final.

E isso é uma boa notícia para nós.

Palavras finais

Planos Navi da AMD foi anunciado Eles estavam planejando o lançamento de 2018 em 2016 e, embora não tenham falado muito. Quando essa data vem e vai roteiro mudou no entanto, estava claro que o Navi seria construído em um nó de processo de 7 nm e o design se concentraria na melhoria do desempenho.

Este foi definitivamente o caso, e como vimos neste artigo, a AMD fez mudanças arquitetônicas para permitir que a Nvidia competisse com suas ofertas equivalentes. O novo design beneficia mais do que apenas os usuários de PC, pois sabemos que a Sony e a Microsoft usarão uma variante do chip no próximo período. Playstation 5 ve sonraki xbox.

Se você voltar ao início deste artigo e olhar novamente para o design estrutural dos Motores Shader, o tamanho total da matriz e o número de transistores, há claramente espaço para um chip 'grande Navi' atingir o pico. placa gráfica mais recente; A AMD praticamente confirmou que isso deve fazer parte de seus planos atuais e ter como objetivo melhorar a arquitetura e o processo de fabricação nos próximos dois anos.

Mas quais são os planos para Nvidia, Turing e seu sucessor? Surpreendentemente, pouco foi confirmado pela empresa. Em 2014, Nvidia Roteiro de GPU atualizado Planejando a arquitetura Pascal para o lançamento de 2016 (e atingindo essa meta). Em 2017, Tesla anunciou o V100Foi esse projeto que trouxe Turing em 2018, usando a arquitetura Volta.

Desde então, as coisas têm estado bem quietas e tivemos que contar com rumores e fragmentos de notícias, que muitas vezes dizem a mesma coisa: a próxima arquitetura da Nvidia se chamará Ampere, Fabricado pela Samsung Ele usa o nó de processo de 7 nm e está planejado para 2020. Além disso, não há mais nada para continuar. É improvável que o novo chip rompa a tradição ao focar em unidades de execução escalar, ou é improvável que elimine aspectos como o Tensor Cores, pois isso causará problemas significativos de compatibilidade com versões anteriores.

Ainda assim, podemos fazer algumas previsões razoáveis ​​sobre como será a próxima GPU da Nvidia. A empresa investiu uma quantidade significativa de tempo e dinheiro. Rastreamento de raioe seu suporte apenas em jogos aumentar; Portanto, podemos esperar uma melhoria no núcleo RT em termos de recursos ou números por SM. Se um Nó de processo de 7 nm Se for verdade, a Nvidia provavelmente terá como objetivo a redução de energia ao invés do aumento direto da velocidade do clock para que eles possam aumentar o número de GPCs. Também é possível pular 7 nm e iniciar a Nvidia. Em linha reta por 5 nm Para obter uma vantagem sobre a AMD.

Aparentemente, AMD e Nvidia, placa gráfica discreta Market da Intel, como sabemos, eles estão planejando entrar novamente neste setor, Ligue 20 anos. Este novo produto (atualmente Xe's) Será capaz de competir no mesmo nível que Navi e Turing.

Enquanto isso, a Intel sobreviveu ao mercado de GPU por essas duas décadas, fazendo gráficos integrados para suas CPUs. GPU mais recente da Intel Gen 11É semelhante à arquitetura da AMD, pois usa ALUs vetoriais que podem lidar com dados FP32 e INT32, mas não sabemos se as novas placas de vídeo serão uma evolução direta deste design.

O certo é que os próximos anos serão muito interessantes, pois três gigantes de estruturas de silício continuam lutando por nossas carteiras. Novos designs e arquiteturas de GPU desafiarão os números de transistores, tamanhos de cache e propriedades de sombreador; Navi e RDNA são os mais novos e mostraram que cada passo em frente pode fazer uma pequena diferença.

Atalhos de compras:

Este artigo foi publicado originalmente em 7 de agosto de 2019. Como parte de nossa iniciativa #ThrowbackThucted, revisamos e travamos um pouco.