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.

Publicidade

Retomando o nosso artigo

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

Publicidade

Retomando o nosso artigo

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.

Publicidade

Retomando o nosso artigo

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