Optimizações ao hardware da PS4 e Xbox One. Como se comparam, e face ao que é agora conhecido, o que esperar do futuro?

Muito se tem falado do comparativo das optimizações de ambas as consolas de nova geração agora que foram conhecidas algumas novas caracteristicas do hardware da Xbox One. Será que isso altera algo face ao que se previa anteriormente?

 Console_War

Recentemente a Microsoft apresentou uma esquemática relativa à Xbox One e que revelava a existência de uma segunda placa gráfica virtual. Apesar de na realidade não termos nenhum segundo GPU, o revelado mostra que a placa gráfica da Xbox One possui uma  característica que basicamente permite dividir a mesma em duas com metade da performance da inicial, podendo assim trabalhar com uma única placa gráfica de 1,31 Tflops ou, alternativamente, de forma equivalente ao que existiria se a consola possuísse duas placas de 655 Gflops em vez de uma única de 1,31 Tflops.

Esta característica acaba por se assemelhar em muito ao Hyperthreading dos CPUs com a criação de núcleos virtuais. Apesar de os núcleos não serem reais, e como tal a potência do processador não aumentar, a característica, se devidamente usada, permite, para além da versatilidade oferecida, optimizar o processamento paralelo, obtendo-se um rendimento final bastante superior (sem no entanto se aumentar a capacidade de processamento global).

Vejamos o diagrama da Microsoft:



Como vemos, o diagrama mostra dois GCPs (processadores de comandos gráficos), com dois CCPs (Processadores de comandos genéricos), e a placa gráfica dividida em duas vezes seis CUs. Reafirme-se no entanto que esta é uma característica opcional, ou seja a Xbox One não é obrigada a trabalhar assim e a divisão da placa pode existir em qualquer percentagem!

No entanto, quando a situação foi revelado várias dúvidas perfeitamente lógicas foram levantadas.

A Playstation 4 possui algo semelhante?

Porque motivo os processadores de comandos adicionais da Xbox One não aparecem referenciados nos SDK? 

Sendo as placas gráficas sistemas já altamente paralelizados, quais as grandes vantagens deste tipo de optimização?

Qual a vantagem imediata de um segundo CCP e GCP quando um único é capaz de saturar a totalidade da capacidade de processamento da placa gráfica?

Como se compara esta optimização face ao uso das unidades ACE, e a face à solução da Sony?

Para responder a estas perguntas há que se fazer um pouco uma retrospectiva, para rever o que era conhecido até agora.

O antes

O que se sabia era que a Xbox One possuía uma potência máxima teória de 1,31 Tflops, e a PS4 uma potência máxima teórica de 1,84 Tflops. Por aqui, e sempre acreditando que o software seria optimizado ao máximo dos dois lados, teríamos uma diferença nos valores teóricos de 40% entre as performances das consolas. Para atingirmos estes valores multiplicamos a frequência de relógio pelo número de pipelines de computação de shaders e pelo número de comandos processados por ciclo de relógio.

Assim teriamos para a Xbox One:

853 Mhz *  768 pipelines de computação de shaders * 2 comandos por ciclo = 1,31 Tflops

E para a Playstation 4:

800 Mhz * 1152 pipelines de computação de shaders * 2 comandos por ciclo = 1,84 Tflops

Naturalmente estes valores são teóricos. Para serem atingidos seria necessária uma optimização a 100% da placa gráfica com o aproveitamento total de todos os ciclos de relógio. E esses valores não são possíveis de atingir.

No entanto, durante muito tempo conheceram-se optimizações colocadas pela Sony, algumas partilhadas com a tecnologia GCN 1.1 que permitiam alcançar mais facilmente valores mais próximos dos máximos teóricos.

Mais ROPs, mais unidades de texturação, CUs optimizados para processamento genérico, mais unidades ACE, e um total de 8 GB acessíveis na integra a 176 GB/s eram os pontos mais relevantes.

Não sendo conhecidas quaisquer acréscimo ao hardware base da arquitectura GCN na Xbox One, seria assim previsível que com estas optimizações, a PS4 se destacasse no futuro acima dos 40%. A nossa previsão, tal como a de muitos outros websites referiam uma diferença que poderia em alguns casos atingir os 50%.

A alteração mais relevante do hardware Playstation 4 é o aumento do número de ACEs para 8, o acréscimo de níveis de arbitrariedade, bem como o facto de 4 dos seus CUs possuírem capacidade de cálculo adicional, sendo optimizados para computação genérica.

As unidades ACE não são, ao contrário do que muitos pensam, unidades de cálculo, mas são unidades de optimização de cálculo. Na PS4 elas podem receber até 64 comandos que re-ordenam de forma a que estes sejam calculados não pela ordem que são recebidos, mas pela ordem que são necessários. Esta situação evita a perda de muitos ciclos de relógio onde comandos que são dependentes de outros eram processador primeiro e ficavam a entupir o processamento ao necessitarem de aguardar por outros resultados para se completarem. São ainda capazes de tomar decisões e optimizar a ocupação do hardware alocando recursos e fazendo mudanças de contextos, sendo responsáveis pela regulação do processamento e no geral optimização de todo o pipeline.

8 unidades ACES foi igualmente a escolha de optimização da AMD para ser usada nas suas placas com arquitectura GCN 1.1, como é o caso da R9-290, e igualmente a escolha da Sony.

Mas a Xbox One possui igualmente unidades ACE! E elas tambem foram alteradas internamente. Não foi acrescentado hardware sendo que tal como no GCN 1.1 standard elas são em número de 2, mas elas foram alteradas tal como as da PS4 para suportar cada unidade ACE 8 comandos em espera, ficando assim a consola com uma capacidade de reordenamento de 16 comandos. Uma optimização face ao GCN 1.1 standard, mas que parece à partida que fica um pouco atrás dos 64 comandos da PS4.

O agora

Mas e face ao conhecimento desta optimização da Xbox One, o que podemos esperar?

Bem, a realidade é que a Xbox hoje não é a Xbox de lançamento. Já várias vezes elogiamos Phil Spencer pela tremenda mudança que fez no rumo da consola, dirigindo-a para um produto destinado a jogos e não um produto multimédia.

E o que vimos foi a remoção de várias reservas que tornaram a consola bastante mais próxima daquilo que a PS4 oferece.

Seria no entanto previsível que, apesar desta actual aproximação derivada das remoções das reservas, com o uso do GPGPU e uso das suas optimizações, sem algo tão eficiente conhecido na consola da Microsoft, a PS4 pudesse vir a distanciar-se novamente. Ora o conhecimento desta tecnologia presente na Xbox One altera em parte essa realidade.

Em situações de optimização igual, a PS4 poderá teoricamente fazer valer os seus 40% de potência adicional. Mas as probabilidades de se ficar abaixo desse valor são maiores do que as de ele ser atingido!

Mas afinal a solução de duplo processador de comando aplicada na consola da Microsoft altera alguma coisa?

Esta resposta é o que poderemos obter lendo este artigo!

Vamos entretanto responder às perguntas que ficaram pendentes:

A Playstation 4 possui algo semelhante?

Eis aqui uma revelação que poderá ser bombástica para os fanboys Microsoft. Mas a resposta é SIM!

Actualmente a informação sobre as duas consolas é bem diferente. Não só a Microsoft revelou esquemáticas da Xbox, como há um SDK que foi revelado e que revela muito sobre a mesma. Do lado da Sony a informação conhecida continua limitada à revelada pela Sony e AMD na altura do lançamento.

Ora quem acompanha a PCManias sabe que no que tocava ao hardware das consolas acertamos em cheio no mesmo antes da sua revelação. Mas não foi mérito nosso! Na realidade apenas nos limitamos a filtrar informação de várias fontes, sendo que a principal delas foi o VGLeaks, cuja informação revelada na altura, e baseada em documentação oficial de ambas as consolas, se revelou 100% correcta. E isto para ambas as consolas.

Ora não havendo dados novos do lado da PS4 que permitam responder a esta questão, o máximo que se pode fazer é rever a informação do VGLeaks e verificar se nas esquemáticas reveladas há algum dado que possa ajudar a responder a esta questão.

E foi isso que fizemos!

Como a esquemática da Xbox One revelada pela Microsoft mostra, a sua consola possui dois rings de processamento paralelos. E ambos são capazes de processamento gráfico e computação. Ou seja, há dois processadores capazes de processamento gráfico e genérico, ou mais especificamente 2 GCPs (Graphics command processor) e 2 CCPs (Compute command processor).

E na Playstation 4?

gpu_queues

O gráfico apresentado é um dos documentos apresentados pelo VGLeaks ainda antes da apresentação das consolas. E nunca é demais repetir que absolutamente TODOS estes documentos, até hoje, se revelaram exactos e fiáveis quer no que toca à arquitectura da Playstation 4, quer no que toca à arquitectura da Xbox One.

E o que vemos nele? A presença de 2 GCPs. Tal como na Xbox One!

Onde os podemos ver? Na existência dos dois rings de processamento distintos! Um deles é denominado Vshell Ring e o outro de GFX Ring.

O Vshell Ring pode ser visto como sendo de alta prioridade e apenas capaz de 3D (HP 3D com HP a significar High Priority), e o segundo, o GFX Ring, dedicado a jogos, capaz de 3D e CS (computação).

Resumidamente, por estes diagramas, a PS4 possui 2 GPCs (referido no diagrama como 3D), mas apenas um GCC (referido no diagrama como CS)! Ou seja, as características de duplo GPU da Xbox One não são únicas. Apesar de tal não ser extensível à parte de computação onde a solução da Sony é diferente, e a solução XBox aí sim é única no mercado, a PS4 também as possui na componente gráfica!

O motivo pelo qual este tipo de situação era previsível de existir em ambas as consolas será percebido facilmente na resposta seguinte

Porque motivo os processadores de comandos adicionais da Xbox One não aparecem referenciados nos SDK? 

Pesquisando um pouco por diversos fóruns a informação é que esses processadores de comandos adicionais estão reservados ao sistema operativo para, entre outras, o uso de funções como as notificações e overlays de informação sobre os jogos, ou no caso da Xbox o SNAP.

As consolas de nova geração foram concebidas como sistemas com uma grande integração social. Isso requer que haja processamento constante na gestão de mensagens, notificações, trofeus, etc. Essas informações necessitam de ser passadas ao jogador a qualquer altura, e mesmo em jogos que estão a saturar a potência e processamento disponível.

Daí a necessidade de existir um segundo sistema paralelo de processamento gráfico que trata de colocar essas informações no ecrã sem a preocupação de abrandar ou de conflituar com o processamento do jogo que está a ser executado.

Resumidamente, esta alteração criada à Xbox One foi realizada primeiramente com o mesmo intuito pelo qual a PS4 também a possui. Integrar as situações do OS com os jogos!

No caso da Microsoft a sua solução é mais versátil ao garantir igualmente capacidades de computação genérica no OS. Já a solução da Sony não prevê essa situação

Mas como referido, actualmente, estas características estão reservadas ao sistema operativo. E por esse motivo não são descritas no SDK uma vez que não são acessíveis aos programadores.

Essa é a situação actual, mas que, segundo rumores, se alterará no futuro com o DirectX 12 e o novo sistema operativo da Xbox One baseado no Windows 10, altura em que a Microsoft terá planos para abrir estes processadores aos programadores para permitir optimizações em instruções de baixa prioridade nos jogos. E só nessa altura os mesmos passarão a ser referenciados no SDK. Esta é uma característica hardware única da XBox One e que só será suportada plenamente pelo DirectX 12.

Sendo as placas gráficas sistemas já altamente paralelizados, quais as grandes vantagens deste tipo de optimização?

Apesar de as vantagens serem mais extensas (e já as descreveremos de seguida na resposta à questão seguinte), podemos desde já perceber que um segundo GCP permite a interacção de funções do OS com os jogos sem penalização dos mesmos.

A Playstation 4 faz o mesmo usando igualmente o seu segundo GCP, até porque numa consola este tipo de interacções é crucial. E dado que o hardware não é exactamente um exemplo de potência para tal, esta capacidade da gráfica é essencial.

E qual a vantagem imediata de um segundo CCP e GCP quando um único é capaz de saturar a totalidade da capacidade de processamento da placa gráfica?

Esta vantagem pode ser encontrada descrita por Christophe Riccio na documentação das características candidatas a um Open GL 5.0.

Há muito espaços para o paralelismo das tarefas num GPU, mas a ideia de submeter chamadas de desenho a partir de múltiplas “threads” não faz qualquer sentido na arquitectura dos GPUs neste ponto. Tudo terá de ser serializado a certo ponto, e se as aplicações não o fazem, a driver terá de o fazer. Isto é verdade até os GPUs adicionarem suporte para múltiplos processadores de comando, o que não é irrealista no futuro. Por exemplo, ter multiplos processadores de comando permitirá render sombras realistas ao mesmo tempo que se preenchem G-Buffers ou se aplicam shaders ao último frame. Ter tarefas tão drásticamente diferentes vivas no GPU ao mesmo tempo poderá fazer melhor utilização do GPU dado que ambas as tarefas terão provavelmente “botlenecks” de hardware diferentes.

Resumidamente, a presença de um segundo GCP permite optimizar ao máximo o pipeline gráfico. A de um segundo CCP, permite optimizar ao máximo o pipeline de computação!

Como se compara esta optimização face ao uso das unidades ACE, e face à solução da Sony?

Bem, para começar temos de distinguir a componente gráfica da de computação.

No que toca à componente gráfica, actualmente o segundo GCP está em ambas as consolas dedicado ao OS. Mas ambas podem no futuro, caso vejam vantagens em tal, abrir o mesmo parcialmente para a optimização da pipeline gráfica dos jogos (Tal nunca pode acontecer na totalidade uma vez que este GCP indispensável para o bom funcionamento e integração das componentes gráficas do OS com os jogos).

Ou seja, com ele ou sem ele, havendo essa igualdade a nível de hardware, a vantagem está, de forma inalterada, do lado da Sony. Sendo os jogos basicamente iguais em ambas as consolas, mais pipelines (1152 vs 768), mais TMUs (72 vs 48), mais ROPS (32 vs 16) e mais RasterBackends (8 vs 4) garantem que a placa atinge mais dificilmente a saturação dos componentes em simultâneo.

Ou seja, mesmo que a PS4 não possuisse um segundo GCP, a maior quantidade de hardware para trabalho idêntico seria sempre uma salvaguarda contra os “bottlenecks”.

Mas e a componente de computação?

Para percebermos esta parte, antes do mais teremos de contextualizar as palavras de Christophe Riccio citadas em cima.

Nada do que ele refere é falso, mas ele fala de uma realidade genérica e não uma realidade da AMD. Christophe fala de um API, o OPEN GL, e da implementação de uma solução hardware aplicável a todas as placas gráficas do mercado. E nesse sentido fala de um standard aplicável por todos.

A questão é que nesse campo AMD e NVIDIA estão muito mais avançadas que todas as outras marcas. E possuem soluções que fazem o mesmo que o segundo processador de comandos, mas que entenderam abordar de forma diferente. Infelizmente são soluções proprietárias e diferentes entre as duas empresas, e daí as referências a algo genérico e existente em todas as placas, o segundo processador de comandos.

Isto não quer dizer que AMD e Nvidia não venham no futuro a adoptar de forma generalizada um segundo processador de comandos para esta optimização por questões de compatibilidade com o DX12, mas o certo é que actualmente estas marcas já possuem as suas soluções para a optimização das suas placas.

A solução da AMD para realizar a optimização dos seus pipelines são as unidades ACE. Algo que é exclusivo das suas placas gráficas!

E unidades ACE ambas as consolas possuem, e ambas estão acima do que a AMD entendeu como necessário para a configuração GCN 1.1 base em ambas as consolas.

Por outras palavras, os dois ACE da Xbox One são a actual e única optimização do Pipeline da Xbox One. Mas dadas as suas optimizações a nível de processamento de comandos que o colocam ao nível do GCN 1.1, eles serão mais do que suficientes para o hardware ali presente.

Mas e como se compara isso com a solução da Sony?

Bem, a solução da Sony a nível de ACEs é superior! Mas diga-se que é exagerada para o hardware presente na placa. Basicamente a Sony optou por ela por oferecer uma optimização melhor, mas acima de tudo, como Mark Cerny deixou sempre entender, por uma questão de oferecer aos programadores opções e liberdade.



Ou seja, nem tudo se deveu à necessidade de optimizações.

No caso da Xbox One ela possui um segundo GCC que actualmente está dedicado ao OS, mas que poderá eventualmente vir a ser futuramente dedicado totalmente aos jogos (dependendo dos planos da Microsoft, este processador pode ser dispensado do OS e certamente será). Mas apesar que ele poderá ajudar a optimizar ainda mais o pipeline da consola, este existe mais pela versatilidade oferecida a uma consola inicialmente pensada como um sistema multimédia, bem como igualmente por oferecer mais opções aos programadores. É uma característica hardware DX 12.

É tudo uma escolha destinada a facilitar a programação e a obtenção de bons resultados. As soluções proprietárias Nvidia e AMD são automatizadas por falta de suporte do API. Mas com o DX 12 e respectivo suporte a este processador, a versatilidade do mesmo é em tudo superior. Mas no que toca à optimização do pipeline os resultados que obtêm são essencialmente os mesmos.

Na entrevista dada em tempos por Mark Cerny ao Gamasutra, este referiu que nas alterações realizadas à Playstation 4 com a colocação dos ACEs teria sido igualmente aplicado um sistema de múltiplos níveis de arbitrariedade que permitem ao hardware decidir o que correr, e quando corre, paralelamente ao sistema gráfico.

O conceito da ocupação do processamento livre para máxima eficiência foi um problema que a Sony se deparou com a Playstation 3 e o uso dos seus 7 processadores Cell, e que resolveu com um software criado pela empresa que correndo a tempo inteiro com quase nenhuma ocupação do sistema, analisava e optimizava o seu uso em tempo real, denominado de SPURS (SPU Runtime System). E esse tipo de solução existe na Playstation 4 que faz agora essa análise por hardware e decide a cada momento como e onde colocar o processamento, optimizando-o.

A questão é que por muito bonitas que as palavras de Cerny sejam no sentido de dar a entender que esta é uma situação única da PS4, na realidade a Xbox One faz a mesma coisa. E isso porque as unidades ACE fazem exactamente isso: Optimizam a ocupação do hardware. As referências de Cerny ao SPURS levam a pensar que a Sony alterou o os seus ACE para suportarem algo baseado no SPURS para os optimizar ainda mais, algo que não está confirmado, mas mesmo com a base da AMD essa situação já existe.

Nas palavras de Cerny sobre o funcionamento do conjunto podemos perceber alguma semelhança com a descrição de Cristophe Riccio para o uso do duplo processador de comandos:

Se olharem para a porção do GPU disponível para computação através do frame, varia dramaticamente de instante para instante. Por exemplo, algo como o render de shadow mapas de sombras opacas nem sequer requer um pixel shader, é totalmente feito pelos vertex shaders e pelo hardware de rasterização. Daí que os gráficos não estão a usar a maior parte dos 1,8 Teraflops das ALUs presentes nos CUs. E momentos como estes durante o frame são uma oportunidade para dizer ‘Ok, toda a computação que querias fazer, é altura de elevar para 11’.

Mas como se conseguir isso?

Há controlos muito simples quer no lado do grafismo, quer do lado do buffer dos comandos gráficos que se podem elevar ou descer para a computação.

A questão torna-se em olhar para cada fase do “render” e da carga nas várias unidades do GPU, e determinar que quantidades de computação podem ser executadas de forma eficiente nessa fase.

Não entendendo esta situação como algo exclusivo da PS4, porque não o é, percebemos que as unidades ACE obtêm resultados semelhantes à que a tecnologia de duplos processadores de comandos oferece.

No caso ambas as consolas vão acima do normal. A Xbox One com um segundo GCC, a PS4 com mais seis unidades ACE.

Métodos diferentes, mas para resultados que se pretendem iguais.

Qual o mais eficiente? Teoricamente nenhum é necessariamente melhor que outro. Ambas as soluções, apesar de diferentes, são criadas para atingir os mesmos resultados.

Seja como for talvez essa seja a pergunta errada. E a verdadeira questão aqui seja: Mas e se as diferenças de eficiência entre os dois métodos existirem, será que isso importa verdadeiramente?

Infelizmente para ambas as empresas, nas suas soluções optimizadas nem tudo são rosas, e no global as duas opções (da Sony e Microsoft), mesmo que possuam diferenças na sua eficiência, irão acabar por se revelar bastante semelhantes.

É que, infelizmente, na prática a optimização aplicada à placa só pode ir até um determinado valor. Daí que acima disso, um sistema ser mais eficiente que o outro é irrelevante.

Para perceberem o motivo deixo-vos uma frase proferida por Sebbbi, o nickname pelo  qual o programador principal da RedLinx é conhecido nos foruns da Beyond 3D, e que explica o problema que existe com este tipo de optimizações:

Um bom exemplo disto é o render de um Shadow Map. Ele está preso ao hardware de função fixa (as ROPS e os motores de primitivas) e usa uma pequena percentagem das Arithmetic Logical Units (vertex shaders simples) bem como uma pequena porção de largura de banda (Com a saida do buffer de profundidade, leituras de tamanhos de vertices optimizados que não possuem UVs ou tangentes). Isto significa todas as TMUs (Texture Mapping Units) e a maioria das ALUs (Arithmetic Logical Units) bem como a largura de banda, estão sem uso enquanto as sombras estão a ser rendidas. Se por exemplo executarmos o shader baseado em luz simultâneamente para o cálculo do shadow map, basicamente ele é obtido “de graça”. Curioso é que se isto se tornar comum veremos jogos que criam aquecimentos superiores ao do Furmark (Um benchmark conhecido como o queima GPUs, pois é criado com o intuito de as sobreaquecer para testar a sua estabilidade), dado que os sistemas de arrefecimento actuais dos GPUs não foram desenhados para um uso de cerca de 100%, constante (todas as unidades a produzir a tempo inteiro).

Como se percebe da frase, a eficiência de um GPU só pode ir até um certo ponto. Os 100% de utilização são uma utopia e algo que se mantêm como completamente teórico. Os sistemas actuais de refrigeração dos GPUs não aguentam com tanto calor gerado numa utilização constante de 100%. Nenhuma placa gráfica, mesmo as refrigeradas a água ou a nitrogénio líquido, é actualmente puxada a 100%. Daí que discutir se uma solução pode ir mais longe que a outra acabe por ser utópico dado que ambas ficam limitadas a um valor abaixo dos 100% pela questão térmica, e certamente ambas atingirão os valores de optimização desejados.

No entanto não se espera que o aquecimento venha a ser problema na Xbox One ou PS4. Em ambos os casos a tecnologia existe apenas para permitir optimizações, mas dificilmente será para se pensar em se atingir perto dos 100% de utilização a tempo inteiro. A ideia é apenas optimizar alguma percentagem dos CUs existentes de forma a melhorar as performances, mas nunca todos.

Diga-se apenas que nenhuma das soluções de refrigeração usadas é perfeita a esse ponto.

A da Microsoft usada na Xbox One é bastante banal e tradicional, sendo que não é a dimensão de uma ventoinha que melhora a dissipação. No caso a ventoinha é grande apenas para permitir descer a velocidade de rotação mantendo a tiragem de ar, e reduzindo o ruído.

A da Sony é mais complexa, mas igualmente banal, sendo que pela menor dimensão da caixa e consequente maior concentração de calor gerado, as vantagens da sua maior complexidade acabam por ser anuladas.

Mas então a solução da Microsoft não tem vantagem nenhuma face à da Sony?

Vá lá, confessem, vocês não me perdoavam se esta pergunta não existisse e fosse respondida :). E ela não estava nas perguntas iniciais. 🙂

Mas devido ao suspense e relevância da resposta, esta eu deixei como surpresa… para o fim. :). E acreditem… Esta resposta vai gerar ainda mais polémica do que saberem que o segundo processador de comandos existe na PS4. Só que desta vez será nos fanboys do lado da Sony!

Porque sim… tem! E associado ao que já existe conhecido, pode virar a mesa!

A questão é que como tentei fazer ver neste artigo, não é pelo facto de existir um segundo processador de comandos que a situação pode trazer vantagens para a Xbox One. A nível gráfico, as capacidades de optimização do pipeline trazidas por um segundo processador de comandos, acaba por se equivaler ao uso dos ACEs.

A resposta para a vantagem da optimização esteve sempre à nossa frente. E tal como o segundo processador de comandos nunca foi escondida! A questão é que como só agora se percebeu de forma clara a existência deste segundo processador de comandos, e as frases da Microsoft que revelavam a situação são já de 2013, se tornou difícil juntar 2+2, especialmente face aos maus resultados apresentados pelos jogos da consola que foram saindo logo depois e ao desconhecimento nessa altura de qualquer dado sobre o DirectX 12.

Passo a citar a Microsoft da sua entrevista com a Digital Foundry:

Também tivemos a oportunidade para ir e customizar o processador de comandos no GPU. Mais uma vez concentrando-nos na performance do CPUO interface do bloco do processador de comandos é uma peça chave em tornar a diminuição da sobrecarga no CPU muito eficiente.

A frase continua depois de algumas considerações:

Implementamos isso na Xbox 4360 e tivemos uma série de ideias sobre como fazer isso mais eficientemente e com um API limpo, pelo que aproveitamos a oportunidade com a Xbox e com o nosso processador de comandos customizado e criamos extensões no topo do D3D que se ajustam muito bem ao modelo D3D e isto é algo que gostávamos de integrar na linha principal de produtos 3D do PC também – esta pequena, muito baixo nível, muito eficiente submissão orientada aos objectos dos nossos comandos de desenho.

Resumindo… apesar da alteração (cujos detalhes se desconhecem) ser realizada no processador de comandos na placa gráfica, os ganhos não serão nela, mas sim no CPU. E por muito pequenos que esses ganhos possam ser (pensando pelo pior cenário, pois não se acredita que esta alteração seja justificável para pequenos ganhos). isto somado ao que já existe a mais na Xbox One a nível de CPU (+150 Mhz e mais 50 a 70% de um sétimo núcleo), tornam o CPU da Playstation 4 inferior em comparação.

E esta alteração deverá ser uma das grandes novidades do DirectX 12. Todas as placas existentes no mercado PC serão compatíveis com ela, mas para a optimização máxima do CPU que este API poderá fornecer, torna-se necessário implementar no hardware PC as optimizações que a Microsoft usou na Xbox One. E isso só acontecerá com a compra de novas placas gráficas que serão lançadas no futuro, algo que já se sabia seria uma realidade para o total suporte da norma.

A Xbox One é, graças a estas modificações, actualmente no mercado o GPU mais compatível com a totalidade da norma DirectX 12, apesar de não ser garantido que suporte todas as funcionalidades futuras, o que certamente não acontecerá uma vez a própria Microsoft na sua entrevista à Digital Foundry reconheceu que a sua arquitectura é baseada nas placas Sea Islands (GCN 1.1).

MAS PODERÁ HAVER MAIS!

É que a Intel revelou em Março de 2014 que iria lançar junto com o DirectX 12 uma geração de processadores que o suportavam na integra. Vejam o slide e o penúltimo ponto:

intel-dx12

Na altura ninguém deu relevo à situação. Na realidade a mesma soou a apenas uma correcção qualquer que a Intel iria fazer face aos produtos da concorrência que provavelmente ganhariam mais performance que os seus com o DX 12.

E muito certamente até será isso mesmo! Mas coloca-se uma questão:

Será que a Microsoft também não alterou o seu CPU tal como alterou o GPU e esta alteração vai agora ser aplicada ao novo hardware PC? E se sim, com que benefícios?

Bem, isso não se sabe. Aliás nem sequer há, na data de escrita deste artigo, dados nesse sentido. Mas o certo também é que a Microsoft ainda não disse tudo que havia a dizer sobre o DX 12!

Mas fiquemos-nos pelo conhecido.

A nível de optimizações gráficas, pelas optimizações conhecidas, ambas as consolas acabam por ser equivalentes. E mesmo que haja diferenças pouco ou nada isso importará! Nesse campo a PS4 continuará a ser 40% mais potente. Mas infelizmente para a Sony, tal só acontecerá nos casos onde o CPU não for o gargalo. Porque nesses casos a potência gráfica de nada lhe valerá! E caso o gargalo no CPU exista a situação altera-se pois gargalos no CPU levam a cortes de performance gráfica. E isso vemos já com a situação actual em cenários onde ambos os CPUs são levados ao limite e a Xbox One apresenta melhores FPS (Assassins Creed Unity, por exemplo).

Para que se perceba melhor a situação, nada destas optimizações do novo API entram em contradição com as palavras de Phil Spencer que sempre referiu que o DX 12 não criaria mudanças radicais na Xbox One. E nesse aspecto ele nunca mentiu pois na realidade a consola não vai ficar mais potente com este API. A Xbox One continua a ter os mesmos 1,31 Tflops de sempre a nível gráfico e os mesmos 112 Gflops de CPU. O que já acontece, e será melhorado com o DX 12 é a optimização no uso do CPU e com ela, caso a Sony não tenha trunfos iguais, a vantagem sobre a concorrência a este nível. E nesse caso, mesmo sem a Xbox One ficar mais potente, a margem no ganho do CPU para a concorrência deverá aumentar.

Sendo o gargalo o CPU e não o GPU, os 500 Gflops adicionais da PS4 de nada lhe valerão! E tal como em AC Unity poderemos ter mais casos onde a mesa se vira.

Daí que, face a estes dados actualmente conhecidos (que podem alterar-se à medida que mais vai sendo conhecido de forma oficial),  no futuro mais próximo, ao contrário do que se pensava antes, a situação poderá trazer jogos ora a pender para um lado, ora a pender para o outro.

Então o equilíbrio será o futuro? Com jogos a pender para um lado quando  gargalo é o GPU e para o outro quando é o CPU?

A nível de CPU será utopia pensar-se é que a Sony não tem resposta. A libertação de um 7º núcleo da PS4, caso venha a acontecer, permitirá recuperar parcialmente a distância do CPU. Mas face aos 150 Mhz adicionais e às optimizações hardware da Microsoft, este terá de ser libertado na totalidade para alguma igualdade. E isso poderá não ser possível! Seja como for, mesmo que este núcleo seja libertado na mesma proporção a vantagem da Xbox One a nível de CPU passa a valores bastante mais baixos.

Apenas uns cálculos:

A Xbox One corre a 1750 Ghz * 8 núcleos * 8 comandos por ciclo = 112 Gflops

A PS4 corre a 1600 Mhz * 8 núcleos * 8 comandos por ciclo = 102,4 Gflops.

Com 6 núcleos para jogos em cada temos:

Xbox One: 85 Gflops

PS4:  76,8 Gflops

8,5 Gflops de diferença!

Com 70% de um 7º núcleo na Xbox One temos:

Xbox One: 93,8 Gflops

PS4: 76,8 Gflops

17 Gflops de diferença

Depois há ainda 500 Gflops de diferença na sua placa gráfica que se usadas para GPGPU poderão libertar tremendamente o CPU de forma a eliminar esta vantagem da Microsoft. Mas com o uso do GPGPU ainda tão na sua infância, isso pode demorar a acontecer… Aliás muitas equipas nunca sequer programaram um GPGPU e nesta fase o que pode ser passado para ele ainda não é tudo que o CPU faz.

E depois claro… a Sony também pode ter trunfos escondidos.

Mas perante os factos actuais, a realidade é então mesmo essa! Nos próximos tempos, caso a Sony não consigo facilmente e rapidamente libertar um 7º núcleo, a situação vai baloiçar… E com um CPU tão fraco e a ser gargalo em tantas situações o que se prevê é que a Microsoft venha a ganhar algum domínio. E teoricamente poderemos ver mesmo jogos com mais resolução e FPS na Xbox One. Não por questões gráficas, mas por limites de CPU na PS4. Algo que já vimos em pequena escala em AC Unity, onde o 7º núcleo e as optimizações do DX 12 nem sequer estavam em uso!



Apenas como comprovativo de cálculo, caso um 7º núcleo libertado a 100% na PS4 teriamos:

Xbox One: 93,8 Gflops

PS4: 89,6 Gflops.

4,2 Gflops de diferença!

No futuro, com o GPGPU devidamente usado, a Sony deverá recuperar novamente. Mas quem sabe? Como demos a perceber, será que a Microsoft também não tem mais trunfos? E a Sony? Terá algum?

Uma coisa é certa… a coisa está animada. E enquanto estivermos por aqui vamos continuar atentos ao que oficialmente vai sendo revelado.

 

NOTAS: Este artigo reflecte a realidade das coisas na data de término da escrita deste artigo (24/01/2014)! Todas as nossas análises baseiam-se apenas em dados conhecidos oficialmente ou fornecidos por fontes que até hoje se mostraram credíveis, e não em crenças, rumores ou especulações. Como é nosso apanágio esse tipo de fantasia aqui na PCManias não entra.

O artigo de cima demorou algum tempo a escrever e foi alterado inúmeras vezes à medida que novos dados iam sendo conhecidos. Pede-se por isso desculpas por qualquer incongruência que possa existir e que corrigiremos se detectada.

Prevendo-se já que a discussão a este artigo possa ser bastante animada recorde-se as regras da página. Más educações, insultos ou faltas de respeito darão direito a ver a mensagem eliminada ou a expulsão. Controlem-se por favor!

Alerta-se os novos participantes que as suas mensagens serão sujeitas a aprovação!



Posts Relacionados