Dice deu a conhecer mais realidades sobre as novas consolas e explica o processador de comandos da One.

A equipa responsável pelo motor Frostbyte veio falar de uma metodologia capaz de melhorar as performances nas consolas de nova geração. A sua apresentação deu a conhecer muitas coisas desconhecidas sobre a Xbox One, mas acima de tudo deu a perceber as diferenças e limitações entre ela e a PS4, bem como de ambas face ao PC, assim como nos explica o que faz o processador de comandos da One.

As limitações das consolas e optimizações de performance

A equipa responsável pelo motor Frostbyte que movimenta jogos como Battlefield, ou mesmo Star Wars Battlefront veio falar das ultimas optimizações que implementou de forma a melhorar a performance do motor.

A equipa teve sucesso em fazer o que desejava em todas as consolas, mas no entanto não deixa de revelar as limitações encontradas, comparando a realidade da Xbox One com a PS4 e uma placa topo de gama da AMD, a Fury X.

A optimização surgiu devido a problemas de performance que levaram a equipa a reunir-se com a Microsoft de forma a resolver questões de diversas com o motor no jogo Dragon Age: Inquisition, e onde estes se estavam a deparar com vários gargalos que não permitiam resultados satisfatórios.

Várias soluções foram implementadas mas a única eficaz foi o alívio da carga ao sistema com a passagem de certos cálculos para um compute shader, que ficou assim encarregue de realizar um “Culling” dos triângulos do jogo.

Como sabemos a imagem criada por um sistema informático é constituida por um aglomerado de triangulos. Basicamente o Culling é uma determinação sobre se o triangulo que está a ser processado está ou não visível do ângulo de câmara onde o utilizador está, sendo que caso não esteja, passa-se à frente todo o processo de processamento e tratamento de imagem que lhe seria associado, ganhando-se assim valiosa performance.

Para se perceber melhor, vamos aplicar Culling a uma personagem de um jogo. Vejam as imagens:

culling 1

Perante o que temos em cima, o que faria o Culling à personagem? Muito simplesmente não calcularia nada daquilo que não é visível para o utilizador. Ou seja, o que estaria a ser calculado seria o que vemos em baixo:

culling 2

Mas há mais… vamos ver agora um caso em que a personagem está toda no ecrã:

culling 3

E vamos aplicar o Culling. Para vermos o efeito, temos de deslocar a câmara para a traseira da personagem:

culling 4

Naturalmente este tipo de visualização não é possível acontecer no jogo. O processo de Culling é dinâmico e ajusta-se conforme a posição da câmara. Mais completo ainda, pode acontecer termos os dois casos de cima a acontecer em conjunto.

Mas para conseguirmos fazer esta poupança, temos de processar a imagem. E isso tem de ser feito em tempo real para que o GPU saiba se deve ou não debitar o polígono. Vamos ver o que acontece com as atuais consolas e a Fury X, atual topo de gama da AMD.

Shader_Engines

Tanto a Xbox One como a PS4 possuem dois motores de Shaders capazes de debitar cada um um triângulo por cada ciclo de relógio do GPU, debitando assim 2 triangulos por ciclo. Já a Fury X essa possui 4 motores de shaders, e como tal, debita 4 triangulos por ciclo.

Alu_ops

Cada uma das Compute Units é capaz de processar 2 operações de virgula flutuante por ciclo, sendo capazes de 64 operações fundadas de multiplicação/adição nas ALU  (unidades de lógica aritmética). Isso quer dizer que a Xbox One realiza 1536 operações nas ALUs a cada ciclo de relógio, a PS4 é capaz de 2304 operações, e a Fury X, 8192 operações.

Ora isto quer dizer que o número de operações que os respectivos GPUs podem dedicar a cada triângulo é o que temos de seguida (note-se que há um erro no cálculo da PS4 onde o valor obtido deveria ser 1152 e não 1017):

Operacoes_Alu_triangulo


Finalmente, dividindo este número pelo número de ALUs, obtemos o número de operação ALU que podemos dedicar a programar um shader capaz de obter o desejado Culling (mais uma vez o número apresentado na PS4 está errado devido ao lapso que vem de trás. Deveriam ser 576 operações)

alu__limit

A Xbox One revela-se a consola mais limitada, com a PS4 a conseguir realizar 50% mais operações por ciclo de relógio (384 contra 576), e garantindo assim que possuirá menos limitações que a consola da Microsoft em situações de pré-processamento de imagem que possam vir a aumentar as performances finais.

Ora realizar uma operação de Culling do triangulo a ser debitado em menos de 384 operações não é nada de impossível. A equipa fê-lo e outros podem fazê-lo. No entanto, caso de pretenda de futuro realizar outro tipo de metodologia paralela que possa acrescentar mais optimização, tal começa a mostrar-se limitado na XBox One. Ela será a primeira das consolas a queixar-se!

Já as placas mais recentes da AMD, essas possuem uma vantagem de 77% face à PS4, mas pertencendo ao universo PC, dificilmente receberão qualquer tipo de optimização diferente da aplicada nas consolas.

Há ainda a possibilidade de se realizar operações de Culling no CPU, o que nas consolas é possível, apesar de não desejado dado que o CPU é um recurso muito limitado. Já nos PCs a equipa refere que tal é totalmente impossível com a comunicação PCIE, pelo que tal tem forçosamente de acontecer no GPGPU.

Os resultados

A equipa do Frostbyte vem ainda revelar mais dados, desta vez sobre o DirectX 12. É que apesar de este ter melhorado e optimizado a anterior versão do API para passar a suportar milhões de chamadas de desenho, o mesmo ainda permite que o GPU engasgue quando as chamadas são poucas.

Dx12_lowcount

Os resultados desta tecnologia são mostrados de seguida:

Aqui vemos os resultados para os 3 GPUs comparados usando tesselização. A diferença da Fury X face aos outros dois GPUs é enorme, realizando a operação de Culling e de desenho da imagem usando a computação assincrona em menos de 0.7 ms. A PS4 consegue poupar 0.11 ms usando a mesma realizando a operação total de 8.1 ms, mas a Xbox One apenas poupa 0.1 ms demorando 11.2 ms a realizar a operação.

Sem tesselização (menos triangulos artificialmente criados), os valores são bastante inferiores. A Fury X fica-se abaixo dos 0.5 ms, a PS4 pelos 3.8 ms e a Xbox One pelos 4.56 ms.

O processador de comandos da Xbox One

Os testes aplicam 171 Pipeline State Objects (PSOs), e demonstram uma optimização existente na Xbox One. Basicamente, e sem entrar em detalhes de funcionamento diga-se apenas que a mesma evita alguns passos necessários nos outros sistemas o que acaba por reduzir a diferença de performances face à performance bruta da PS4, permitindo em alguns casos descer dos 50% de diferença que vimos nas ALUs.

A equipa dá a conhecer que esta é uma optimização resultante das modificações da Microsoft no processador de comandos que suporta o uso de microcódigo (basicamente programável em pequena escala).


Apesar de nesta comparação a equipa se referir a uma comparação exclusiva entre a Xbox One e o PC, os resultados parecem ser claros em mostrar que as optimizações para este tipo de processamento em massa são superiores na Xbox One do que na PS4. A Xbox One permite o envio de PSOs em contextos diferentes, sem a necessidade de alterar os mesmos, o que segundo a equipa lhe dá uma optimização extrema para este tipo de operações.

Grças a esta novidade, ficamos assim a conhecer mais sobre a realidade e capacidade de optimização das consolas, bem como acima de tudo em que consistiam as alterações ao processador de comandos que a Microsoft realizou, e do qual pouco ou nada se sabia.

Diga-se que para o DirectX 12, esta é uma alteração bastante relevante. Se sabíamos que a PS4 possui optimizações que a podem levar a atingir 50% mais de performance, não sabíamos até que ponto as optimizações da One poderiam diminuir esse fosso. E apesar de não ser fácil quantificar a coisa para casos reais uma vez que o nível de polígonos não só varia de cena para cena como com a realidade de cada jogo, o facto é que a nível de processamento de imagem clássica, esta optimização permite compensar parte da menor capacidade da One (isso pode ser visto nos resultados de cima, onde apesar de a Xbox One continuar mais lenta, nestas operações, não permite 50% de diferença).

O fantástico da caracteristica é que ao contrario das optimizações clássicas, a optimização da Xbox One é única do seu hardware e de tal forma inovadora que é considerada pela equipa como fantástica, e que a equipa não pretende dispensar em futuros usos.

É bom ver e saber que três anos depois as equipas ainda descobrem formas novas e optimizar o hardware, revelando que o mesmo está longe de ser totalmente conhecido e usado. No entanto, segundo rumores, empresas como a Sony planeiam desde já lançar versões mais potentes das suas consolas, destruindo esta equilíbrio delicado de optimizações específicas ao hardware único das consolas que sempre existiu.

Publicidade

Posts Relacionados

Readers Comments (11)

  1. Interessante Mario e como sempre bastante esclarecedor de sua parte. Valeu!

  2. Obrigado pelo esclarecimento. Conheci o PC Manias pelo Google no meio do ano passado. Entro todo dia no site e as matérias são muito interessantes e a cada vez que eu entro, eu aprendo algo novo. Isso é muito legal!
    Obrigado por compartilhar esse conteúdo conosco!

  3. ótimo artigo, sempre bom ler sobre evoluções no mundo dos consoles, já estava com saudades deste tipo de artigo.

  4. É por isso que eu acho que a Sony não vai lançar um novo console mais “poderoso”, pois ainda há muito o que aprender com estes consoles e até a naughty dog disse que pretende trazer gráficos melhores no próximo jogo para o ps4 mesmo que a evolução não seja a mesma que foi do primeiro uncharted para the last of us.

    Acredito que seja apenas uma versão slim do ps4 com suporte a 4k nada mais que isso, porém entendo que esse silêncio por parte da sony gera muita suspeita e como disse antes se as empresas lançarem novos consoles tão cedo eu boicoto e vou para o pc de vez.

    Quanto ao seu artigo Mário, muito bem escrito e meus parabéns. =D

  5. Muito bom Mário

  6. Os melhores artigos do site são os voltado para o esclarecimento e funcionamento do hardware, o Mário faz isso como poucos na língua portuguesa.
    Contudo com esses novos consoles a caminho não sei até onde será bom essas otimizações.

  7. Duvido que uma equipe como a Dice tenha errado os cálculos sobre ALU do PS4 quando as especificações são tão conhecidas. Talvez, isso é o que realmente está disponível para uso ou a parte eficiente da GPU, o que reduz mais um pouquinho o foço entre os dois consoles.

    • Fernando…
      Que disparate tão grande!
      Sim, é curioso ver-se como a DICE se engana em algo que deveria saber de trás para a frente, mas os dados da PS4 são oficialmente conhecidos, e não há aqui nada de novo pelo que o erro se detecta bem.
      E há duas provas que a DICE se enganou que deverias ter em conta:
      Prova 1: – Os dados oficiais
      A consola possuiu um GPU com 1152 núcleos ou pipelines, cada um deles possuindo, NATURALMENTE, uma ALU.
      Dado que a ALU é a unidade lógica aritmética que processa os dados nesse núcleo, a sua não existência é impossível.
      Depois, cada Compute Unit é constituida por 64 núcleos ou pipelines. É por isso que a PS4 anuncia 18 CUs, e a XBox One, anuncia 12.
      Prova 2: – A simples matemática
      A PS 4 tem 18 CUs, sendo, como referido, cada CU constituido por 64 núcleos ou pipelines. Assim sendo, cada núcleo possui 64 ALU.
      Isso é o que aparece no segundo slide. 12 CU*64 ALU na XBox e 18 CU*64 ALU na PS4. Até aqui nada de novo.
      E com duas operações de virgula flutuante por CU por ciclo, temos então as 1536 operações ALU da one, e as 2304 da PS4. Basta fazer as contas.
      Mas passando ao terceiro slide, o erro aparece, e é claro!
      O slide divide esses números pelos dois motores de triangulos. São 1536/2 na One, tal como está lá escrito, e 2304/2 na PS4 como está lá escrito.
      A questão é que 1536/2 são efectivamente 768. Mas 2304/2 não são 1017! São 1152, como deveria de ser.
      Basta fazer as contas!

  8. Excelente artigo. Como sempre bem explicado. Esses artigos sobre o funcionamento do hardware e software são os melhores, também porque são pouquíssimos os sites que falam sobre isso e de maneira bem didática.

Os comentarios estao fechados.