Onde se enquadra o GPU da Xbox One X em termos de performance?

A Xbox One X é  consola mais poderosa de sempre. Mas em termos de performance bruta, comparando com o que existe no PC, onde se enquadra o seu GPU? E o seu CPU? A resposta pode surpreender muitos!

Nota prévia: Este artigo foi sendo adiado e foi inicialmente escrito noutros termos, com as mesmas conclusões. No entanto, dado o mau clima de toxicidade que tem rodeado as consolas, preferimos não publicar o mesmo até termos da boca de pessoas credíveis dados que confirmassem o que vamos dizer. Agora que isso aconteceu, o artigo tem condições para seguir.

Quando analisamos uma consola há duas realidades a tomar em conta. A performance bruta, e o aproveitamento que se tira da mesma. Aqui não estamos a falar do rendimento interno da placa, o quel não podemos ignorar e sobre o qual iremos falar mais à frente, mas de uma outra realidade. A qualidade da optimização para o hardware que se aplica na programação.

Começando pelo GPU e olhando para 2013 vemos que o GPU da Xbox One é praticamente uma cópia chapada da R7 260, com ambas a possuírem 768 pipelines, 48 unidades de texturas e 16 ROPS. Mas apesar de performances teóricas até superiores na placa do PC devido à sua maior velocidade de relógio, esta placa nunca teve o aproveitamento que se consegue no GPU da Xbox.

Se em 2013 podiamos dizer que a responsabilidade de tal era associada ao uso de um API de baixo nível na Xbox, algo que não existia no PC, a realidade é que havia e continua a haver agora que temos o DX 12 no PC, outro factor. E ele prende-se com o facto que a programação PC usa código genérico compatível com todas as placas do mercado, ao passo que a programação da Xbox toma em conta as especificidades do seu GPU, permitindo assim obter-se melhor rendimento do mesmo.



Resumidamente o que queremos dizer é que a a comparação que será feita neste artigo servirá para percebermos aquilo que é a performance teórica do GPU da Xbox One X face ao que existe no PC, o que não invalida, pelos factores acima descritos, que na prática consigamos obter melhores resultados com a Xbox One X.

Passemos então ao artigo em si!


Desde 2013 que um termo anteriormente pouco usado se tornou corrente nos foruns. A palavra Tflops!

O termo é associado, e muito bem, a performance, mas no entanto é usado de uma forma muito liberal.

Flop é uma unidade que mede a capacidade de cálculo em virgula flutuante de um produto capaz deste tipo de cálculos. 1 flop é uma operação de virgula flutuante, normalmente medido em 1 segundo.

1 Teraflops significa que se consegue 1 000 000 000 000 operações de virgula flutuante num segundo!

Teoricamente isto parece ser algo perfeito. Se uma placa faz 2 tflops, então ela é mais rápida que uma que faz apenas 1 tflops, certo? Afinal a primeira calcula o dobro da primeira!

Errado! Um cálculo gráfico gasta várias operações em virgula flutuante, e a metodologia usada faz com que determinadas placas consigam melhores rendimentos que outras, ou seja, que apresentem o mesmo gastando menos operações. Esse é o motivo que torna o Flop uma má medida no sentido que o seu uso tem de ser devidamente enquadrado! É que a comparação de Flops só é eficaz se os produtos comparados usarem as mesmas arquitecturas. Muda-se a arquitectura, muda-se o rendimento. E um produto com mais Tflops pode não ser tão mais rápido quanto os números indicam ou, no extremo, pode até ser mais lento!

Querem exemplos?

Vamos fazer a comparação entre dois GPUs reais:

  • O primeiro GPU tem 8.5 Tflops de performance e possui 512 GB/s de largura de banda.
  • O segundo GPU tem 4 Tflops de performance e possui 192 GB/s de largura de banda.

Qual destes dois GPUs é o mais rápido?

É o que referimos em cima, e se respondeste à questão, então não percebeste o que foi dito. Aqui a resposta correcta não é dizer “é este”, ou sequer dizer “acho que é este”. A resposta correcta é “Não sei dizer sem mais dados”!

Porque aqui falta o dado mais relevante para uma resposta correcta: “Os GPUs possuem a mesma arquitectura interna?”.

Dado que estamos a falar de GPUs reais, podemos acrescentar:

  • O primeiro GPU é AMD
  • O segundo GPU é Nvidia

Sabes agora dizer qual o mais rápido?

Mais uma vez, se pensaste em responder… erraste!

É certo que este dado acrescenta muita informação pois é um facto conhecido que o rendimento das placas Nvidia é superior ao da AMD! Mas aqui estamos a falar de mais do dobro da performance e da largura de banda.

Daí que qualquer raciocinio que se possa fazer é meramente especulativo. Poderemos quando muito dizer que é duvidoso que o GPU mais lento supere o outro, mas a realidade é que nem sequer isso podemos dizer com toda a certeza. Aqui só mesmo os benchmarks com dados reais é que podem retirar a dúvida.

Se agora acrescentar:

  • O primeiro GPU é uma Radeon Fury X
  • O segundo GPU é uma GTX 1060

Mesmo perante estes dados não sabemos só por si qual é mais rápido. Mas com eles podemos fazer algo que nos valida de forma correcta e cientifica as performances reais de cada um. Aplicar aqui medições ou benchmarks que meçam para vários casos o que cada uma das placas vale.

E com eles vemos que o primeiro GPU é efectivamente superior ao segundo, especialmente a 4K, mas no entanto os benchmarks também revelam uma outra coisa. Que os resultados reais estão bem longa da performance dupla que os valores de potência pareciam indicar, sendo que por vezes até fica atrás. Na realidade, a diferença de performances, apesar de muitas vezes favorável à Fury X só quase o é sempre nas resoluções superiores sendo que percentualmente os resultados são bem inferiores à diferença mostrada pelas especificações.

Este é o problema que temos a medir a performance da Xbox One X. Infelizmente não podemos fazer benchmarks comuns a ela e aos GPUs PC que nos digam o que realmente valem os seus 6 Tflops face a um mercado onde contamos também com placas Nvidia.

Podemos no entanto fazer uma outra coisa… Comparar com os produtos AMD, e uma vez encontrado o equivalente no PC, comparar benchmarks deste com as placas Nvidia, encontrando assim a referência no PC.

E é isso que vamos fazer de seguida:

Xbox One X 

O que sabemos sobre a Xbox One X?

Ela possui um GPU baseado na arquitectura Polaris, logo o GPU PC para comparação será idealmente baseado na mesmíssima arquitectura. Só aí a comparação de Flops será 100% válida!

De resto a Xbox One X possui 2560 pipelines, que se traduzem em 40 CUs, 160 TMUs e 32 ROPS. O GPU corre a 1172 Mhz, estando equipado com memória GDDR 5 a 1700 Mhz (6000 Mhz efectivos), e ligada ao GPU num bus de 384 bits.

Por aqui calculamos já alguns dos dados conhecidos da consola.

os 2560 pipelines, multiplicados pela velocidade de 1172 Mhz, e multiplicados por 2 uma vez que o GPU pode fazer cálculos gráficos e genéricos em simultâneo dão-nos:

2560*1172*2=6000640, ou seja, basicamente 6 Tflops e “uns centimos”.

Já os dados da memória indicam-nos:

1700*384/2=326400, ou seja a largura de banda correcta do GPU é de 326,4 GB/s e não os 320 GB/s que normalmente se fala!

Precisamos então de um GPU equivalente para comparar!

Ora no PC, o GPU mais próximo é a RX 580, também baseada na arquitectura Polaris.

RX 580

Este GPU é tambem baseado na arquitectura Polaris! Possui 2304 pipelines, que se traduzem em 36 CUs, 144 TMUs e 32 ROPs.

Basicamente este GPU é inferior a nível de especificações ao da Xbox One X, mas no entanto, essa quebra é compensada de outra forma!

O GPU pode correr a 1340 Mhz, tendo a memória a 2000 Mhz, o que se traduz numa velocidade efectiva de 8000 Mhz, num bus de 256 bits!

Isto traduz-se no seguinte:

2304*1340*2=6174720, ou 6,17 Tflops!

Com uma largura de banda de:

2000*256/2=256000 ou 256 GB/s.

Estamos aqui com valores bastante semelhantes. Superiores no que toca à performance bruta (menos trabalho paralelo, mas trabalho mais rápido, com um equilíbrio final superior), e no global, certamente bastante equilibrados no que toca à largura de banda!

Mas espera aí? A Xbox One X não tinha 326,4 GB/s? Como é que se considera que 256 GB/s é perto? Há uma diferença de 70 GB/s.

Sim, é verdade! Mas convêm perceber o motivo porque essa largura de banda existe realmente!

Então a pergunta é: Porque motivo a Xbox One X tem a largura de banda que tem?

Acima de tudo convêm não esquecer que a Xbox One X não é uma consola de nova geração. Nesse sentido o seu GPU não foi criado para correr jogos pensados em tirar partido total do seu hardware. Os jogos que ali correrão são criados para a Xbox One base, e o intuito deste GPU é fazer a passagem para resoluções 4K ou próximas, e onde possível, melhorar em cima do que existe. Então porque motivo se usou 326.4 GB/s?

Bem, é muito simples, basta analisar o hardware da Xbox One com o qual a Xbox One X teria de ser compatível para vermos duas realidades:



1 –  A eSRAM pode ter picos pontuais de 272 GB/s.
2 – O CPU da Xbox não acede à eSRAM

Pegando nos dois dados a Xbox One X teria de ter uma largura de banda sempre superior a 272 GB/s, mesmo que isso não seja uma necessidade premente. Mas dado que os jogos são feitos para a Xbox One e esse pico pode existir, a X ou tinha essa largura de banda ou corria o risco de ter quebras pontuais de performance. E isso nunca poderia acontecer!

Ora sabendo-se que o CPU da Xbox não acede à eSRAM, a esses 272 GB/s temos de acrescentar a largura de banda usada pelo CPU de forma a garantir que não há aqui gargalos novos não existentes na One base. E isso traz-nos para os 326.4 Gb/s.

A diferença efectiva é de 54,4 GB/s, um valor que certamente não será todo usado, mas que acaba até por ser inferior ao que a Xbox One tem teoricamente disponível para o CPU, 68 GB/s. Mas aqui sabemos que dificilmente o CPU usará estes valores, e que ambos os lados estão com margens grandes!

Seja como for, a realidade é que por aqui percebemos muito do que está por detrás do GPU da Xbox One X. A largura de banda da RX 580 terá sido correctamente calculada pela AMD face ás necessidades da placa. O facto de a Xbox One X ter essa largura de banda superior deve-se pura e simplesmente aos factores referidos em cima. A compatibilidade com a One, e a partilha de largura de banda com o CPU que não existe nos GPUs PC.

Perante estes dados percebemos que a diferença na largura de banda não é um factor que se possa considerar limitativo, e sendo a RX 580 até ligeiramente mais rápida, podemos considerar que o CPU da One X, mesmo tendo algumas melhorias derivadas dos GPUs Vega (entre as quais o número de CUs, limitado a 36 nas Polaris), está equiparado à RX 580.

Ou seja, o equivalente AMD no PC ao GPU da Xbox One X será a RX 580!

Nada mau… pelo menos para uma consola!

Mas a realidade é que a comunidade olha para a Xbox One X como “A BESTA”. E sim, apesar de a nível de consolas, ela ser a mais potente de sempre, a nível das performances que se podem obter no PC, a consola não é nada de extraordinário.

Considerando performances médias e não as pontuais obtidas no jogo A ou B, o que vale uma RX 580?

Para isso, nada como consultar o techpowerup. E o que vemos é o seguinte no capítulo da performance relativa, considerando a RX 580 como o padrão:

A nível médio placa situa-se entre a GTX 690 e a GTX 980!

Podem ver benchmarks da RX 580 vs GTX 1060 aqui, e que de certa forma comprovam esta posição percebendo-se a equivalência entre os GPUs que o Techpowerup contabiliza como tendo uma diferença de performances média de apenas 6%, favoráveis à GTX 1060.

Mas e o GPU da Xbox One?

Eis os resultados do Techpowerup.

Como vemos, este GPU, ao ser ligeiramente mais lento que a RX 580 até lhe fica atrás, e isso vê-se pela distância à GTX 980 que no caso de cima é 4% e aqui é de 7%.

Desta forma podemos comparar este GPU com os Nvidia… e percebemos então que no que toca à performance bruta teórica, o GPU da Xbox One X não chega sequer à Geforce GTX 1060 que a supera em média em 9%.

Estas nossas conclusões que, pela toxicidade da internet, não quisemos publicar sem que mais alguém com credibilidade o dissesse, foi agora confirmado por um grande produtor, a Crytek, criadores de um dos mais potentes motores do mercado, o Cryengine. Aqui, pela primeira vez, não estamos perante uma empresa Indie que faz pequenos jogos sem nunca explorar verdadeiramente a totalidade de um GPU, mas sim uma empresa que cria software que é a base dos videojogos, software que é capaz de puxar ao máximo pelos sistemas, que já lidou muitas vezes de perto com as consolas Microsoft, e que adequou inclusive o seu motor para a Xbox One X, e assim sendo uma empresa cujas afirmações devemos ter em conta.

Eis então que ela afirma:

Crytek: Xbox One X GPU comparable to standard gaming PC. CPU performance is roughly 1/3 of Ryzen.

A frase mais relevante da entrevista é a seguinte:

The Xbox One X is very comparable to the standard gaming PC on the GPU end. It will be on the CPU end that you will find the PC to still be outshining the console. 

A Crytek não fala especificamente num GPU, mas compara-o a um Sistema de Gaming PC standard, referindo que no entanto de uma forma genérica, no que toca ao CPU o PC bate a consola.

Mas um  PC de jogos standard. O que é isso?

Verificando o Steam, um “Standard PC Gaming” é basicamente aquele que mais existe (daí o definir o standard), ou seja, basicamente um PC equipado com uma GTX 970 ou uma GTX 1060!



Basicamente, é exactamente o intervalo que referíamos!

CPU

É pegando nas afirmações da Crytek que vamos começar a falar do CPU! Estamos aqui perante um CPU jaguar, com as mesmas forças e fraquezas dos CPUs das restantes consolas e que se revela bastante fraco face à média dos CPUs usados no PC.

Este CPU é no entanto indicado pela Microsoft como tendo diversas melhorias face à Xbox One, nomeadamente por ter recebido instruções especificas para lidar com comandos DirectX 12, e sendo apontando um ganho de performances de 30%.

E é aqui que temos alguma dificuldade em perceber onde estão os reais ganhos do CPU. Separar o Marketing da realidade nunca foi algo fácil, e a Microsoft é extremamente habilidosa nesse sentido! E não revelando dados técnicos do CPU, falar dele é quase impossível!

No entanto, algo nos salta à vista. É que a Microsoft refere que ele apresenta ganhos de 30% face ao CPU da Xbox One. E isso no fundo não é dizer muito. 30% onde, como e quando? É que verificando aquilo que é o ganho das performances pelo simples aumento da velocidade de relógio obtemos logo uns 31,4%. Logo, terá de surgir a questão: Houve realmente outros ganhos?

A Microsoft não é clara quanto a isso! Aliás mesmo no que se refere às supostas melhorias que o CPU teve face à Xbox One X no que toca às instruções específicas para lidar com o DirectX 12 (D3D12), quando questionada sobre elas por sites da especialidade sobre quais foram especificamente, a Microsoft mete os pés pelas mãos e as mãos pelos pés, evitando responder. Mas perante a insistência e as perguntas Andrew Goossen da Microsoft resolveu esclarecer que na realidade o suporte hardware D3D12 que se refere existir neste CPU também existe na XBox one e na Xbox One S.

Basicamente, perante esta espécie de retrocesso nas declarações, o que se concluiu é que afinal aquilo que foi dado a entender como uma novidade, afinal não o é! E sem mais dados ficamos sem saber ao certo o que foi melhorado… se é que algo!

Este reconhecimento de Andrew Gossen está neste momento incluído neste artigo de análise à Xbox One X da Eurogamer.

Seja como for, com ou sem ganhos adicionais, a Crytek é clara. O CPU da Xbox One X, mesmo com todas as optimizações e aumentos de velocidade varia entre 50% ou 1/3 de um dos atuais Ryzen… E isso é suficiente para se perceber com o que se conta no que toca à comparação com o PC!

Conclusões

Basicamente o GPU da Xbox One X é um GPU que se compara a um GPU PC de classe média, neste caso uma RX 580 da AMD ou uma GTX 1060 da Nvidia, falando apenas de placas ainda em fabrico.

Esta é a realidade das performances brutas e teóricas, mas como referido na nota introdutória, não é necessariamente aquilo que visualizaremos. Apesar de os APIs de baixo nível estarem agora no PC, e como tal a grande vantagem que as consolas levavam nesse campo estar anulada, a realidade é que as optimizações consola e a programação para o hardware específico ainda trazem muitas vantagens. E nesse aspecto podemos vir a ver resultados a compararem-se com hardware superior. Não porque o hardware seja efectivamente superior, mas porque a optimização para um hardware único o permite!

Mas neste caso, para este artigo vamos apenas falar do concreto, o poder bruto, e nesse aspecto é no intervalo de cima que o GPU da One X se enquadra.

Já quanto ao CPU é o que referimos. Pode ir entre 1/3 a 1/2 do que apresentam os atuais Ryzen, mas convem tambem aqui referir que isso é o mínimo dos problemas! Os jogos criados para a Xbox terão de correr no Jaguar a 1.75 Ghz da Xbox One, pelo que neste caso a margem para melhoria estará sempre cá..

Seja como for, a intenção deste artigo é desmistificar um pouco o termo “A BESTA”. A Xbox One X é merecidamente a consola mais potente de sempre, e nesse campo, o da performance bruta,  não tem sequer uma concorrente verdadeiramente à altura, apesar de a Pro conseguir fazer o suficiente para trazer também melhorias face aos jogos PS4. Mas se realmente, no domínio das consolas, esta é sem dúvida a mais potente consola alguma vez construída, deixando para trás tudo o que existe, face ao que os PCs apresentam, a Xbox One X está equipada com um GPU meio de gama, e um CPU que o limita tremendamente. E face a isso, nesse universo, a Xbox One X de “BESTA” tem muito pouco.