AMD prepara nova arquitetura de GPUs

A arquitetura Graphics Core Next já tem sucessor e chegará em 2020/2021. É expectável um salto em performance semelhante ao que houve entre Terascale e GCN!

No mercado dos processadores, sejam eles gráficos ou centrais, existem dois tipos de evoluções: um geral a nível de arquitetura e um mais pequeno de optimização e adaptação dessa arquitectura, às necessidades do mercado. A arquitectura Graphics Core Next, em que se baseiam as actuais consolas da Sony e da Microsoft, estreou-se em 2011 e trouxe consigo um enorme número de alterações face à anterior arquitetura Terascale. No âmago dessas alterações esteve uma mudança no paradigma da programação do GPU, em que se passou de um conjunto de instruções VLIW (Very Long Instruction Word) para instrucões RISC (Reduced Instruction Set based Computing), resultando num aumento do número de transístores, mas também num aumento da performance e na capacidade de computação GPGPU.

A GCN permitiu uma arquitetura mais eficiente no agendamento de tarefas e mais flexível quanto à programação genérica. Na anterior Terascale o agendamento era feito ao nível do compilador, sendo que era este o responsável por agendar as tarefas para o GPU. O problema ocorria quando haviam tarefas que eram dependentes de outras – devido a isso todo o processamento esperava que determinadas tarefas se realizassem para se poderem utilizar os dados e, como consequência, havia partes do hardware por utilizar no processamento. Isto ocorre porque na arquitetura Terascale o paralelismo era ao nível das instruções (devido ao VLIW), mas na GCN, usando RISC em unidades vectoriais SIMD (entre outras alterações), todo o hardware foi alterado para que o paralelismo ocorresse ao nível das threads (traduz-se como fio condutor, basicamente, consiste num conjunto de instruções que podem ser executadas em sequência) –  assim as instruções eram organizadas e processadas mais eficazmente, alinhando conjuntos que possam ser processados paralelamente. Ao mesmo tempo, usando RISC, o GPU permitiu a incorporação de unidades de computação (o que chamámos de Compute Units, CUs) que eram mais capazes que a Terascale em processar código genérico. O resultado foi um grande aumento em performance, sobretudo no campo do GPGPU (algo que as consolas têm agradecido e cujos benefícios estamos hoje a ver).

Desde 2011 até hoje, a arquitetura GCN sofreu  alterações com o objetivo de melhorar e optimizar a performance e o consumo energético. Estas alterações, contudo, não alteraram a estrutura básica da arquitetura nem os paradigmas de processamento em que se baseia. A estas alterações dá-se o nome de iterações e a arquitectura GCN, ao que tudo indica, terá um total de 6 iterações ao longo do seu tempo de vida. São elas:



  • GCN 1ª geração – Southern Islands
  • GCN 2ª geração – Sea Islands
  • GCN 3ª geração  – Volcanic Islands
  • GCN 4º geração – Arctic Islands
  • GCN 5ª geração  – Vega
  • GCN 6ª geração – Navi

A GCN terá portanto um tempo de vida de 8 anos (2011-2019), sendo então substituída por esta nova sucessora.

No ano passado, a AMD atualizou o seu roadmap (em cima)  colocando um próximo passo “Next-Gen” a seguir à Navi que está programada para chegar ao mercado no próximo ano. Na altura, pensou-se que seria mais uma iteração da GCN. Contudo, foi agora revelado que será algo completamente novo. Os exactos detalhes desta nova arquitetura ainda são desconhecidos, mas sabe-se que será fabricada, muito certamente no processo de 7 nm+ e que resultará num salto em performance tão grande ou maior quanto o que houve ao passar da Terascale para GCN.

Estas notícias também acabam por fortalecer a ideia de uma nova geração em consolas o mais tardar em 2020/2021, caso não venhamos a ver algum chip adaptado com estas tecnologias nas consolas antes destes saírem para PC, até porque o uso de tecnologia de ponta nas consolas teria custos demasiadamente elevados. É certo e sabido que todas as gerações de consolas até hoje se caracterizaram por um hardware específico e inovador, com características computacionais únicas que precisava de ser exploradas pelos programadores de modo a conseguir-se realizar determinados tipos de operações que resultam em novos efeitos. Tomando como exemplo as consolas da Sony, na geração PS2 houve o Emotion Engine; na geração PS3 tivemos o CELL, com os seus SPUs complementado pelo RSX; e nesta geração as APUs AMD baseadas em GCN especialmente aptos para GPGPU (cujos benefícios estamos a ver agora, com vegetação luxuriante, cálculo de física e iluminação, mais NPCs e até novas formas de modelação).



O que podemos esperar desta nova arquitetura? Bem  uma das novidades será possivelmente a sua adaptação a um conceito de GPU multimodal algo que a nVidia também está a tentar fazer. Em que consiste isto? Basicamente, devido ás limitações de fabrico de litografias (que não permitem aumentar a quantidade de transístores que se colocam  num determinado pedaço de silicone, de forma eficiente e económica) as fabricantes estão a considerar maneiras de conseguirem colocar dentro do mesmo pacote vários GPUs ligados entre si a alta velocidade. Isto é algo que a AMD já conseguiu implementar com sucesso nos processadores série ThreadRipper  e Epyc (ver figura a seguir), usando uma tecnologia designada como Infinity Fabric.

Como é possível ver na figura anterior, os tão falados processadores ThreadRipper ou Epyc (que contêm mais de 8 núcleos Zen) são na realidade obtidos pela combinação de vários módulos Ryzen (com 8 núcleos cada, alguns desactivados), ligados entre si por canais de comunicação no PCB, usando a tecnologia Infinity Fabric. O futuro passará pela ligação de vários GPUs, algo que até poderá estar para os próximos tempos dado os GPUs Vega já suportarem esta tecnologia (se bem que numa primeira versão).

Aliás, com o Infinity Fabric, a AMD pavimentou o caminho para um futuro onde vários GPUs inseridos no mesmo silicone irão funcionar como um único. Aqui não haverá desperdício de memória como há com os GPUs discretos no Crossfire ou SLI onde cada placa possui uma cópia das texturas e geometria, causando um gasto duplo de memória e onde apenas o processamento é partilhado, normalmente com cada GPU a calcular metade do fotograma. Basicamente com esta nova tecnologia haverá coerência entre os GPUs, e inclusive a cache interna será partilhada entre todos eles. O resultado é um conjunto de GPUs que funcionam como um só, e onde o funcionamento, num exemplo de processamento atual com dois GPUs, não será do género “Tu tratas das linhas pares e eu trato das linhas ímpares, e da parte do GPGPU – atualmente o GPGPU necessita de ficar exclusivamente num único GPU- sendo mais do género “Nos os dois dividimos o trabalho como melhor pudermos, optimizando todo o processamento ao máximo”.

Mais ainda, aqui o processo de divisão do trabalho, para além de super optimizado será totalmente invisível ao programador. Toda a divisão do trabalho será feita internamente pelo próprio hardware, sendo o conjunto de GPUs tratado como se fosse um só. O Infinity Fabric que poderá ser a tecnologia na base de toda a arquitectura de nova geração possui ainda a possibilidade de acrescentar GPUs com tremenda facilidade, tornando fácil e barata a criação de GPUs com performances até agora não imaginadas.



O melhor de tudo isto é que, apesar de os futuros GPUs de topo optimizados com a nova arquitectura que permitem o uso do Infinity Fabric ao máximo irem ser caros no seu lançamento, o facto de esta tecnologia estar já disponível, mesmo que sem a total optimização nos GPUs AMD Vega, permite que, com eles ou com os Navi, se possa vir a criar um GPU que se revelará de menor de custo mas possuindo já uma elevada performance, tornando-o no componente ideal para as consolas e já usando esta tecnologia multi GPU.

Fonte: Wccftech, Anandtech, Techreport