Naughty Dog revela segredos sobre CPU do PS4 e como eles pretendem fazer tudo funcionar de maneira ‘rápida’

Durante uma apresentação extremamente interessante na Semana da Informática em Lisboa, o programador Jason Gregory da Naughty Dog descreveu a CPU do PS4, a sua memória, sua GPU e sua arquitetura em detalhes, também explicou como o estúdio otimiza os recursos para alcançar resultados superiores, graças ao conhecimento dos pontos fortes e fracos do hardware, tirando o máximo proveito dela fazendo tudo funcionar ‘muito rápido’.

Primeiro Gregory explicou que enquanto 8 gigabytes de memória RAM parecem muito, apenas cinco são atribuídos a jogos, e eles podem ser preenchidos com bastante facilidade: ”Mesmo no PlayStation 4 você terá 5GB, o que parece muito, mas você vai se surpreender com o quão rápido ela é preenchida.” Mas a Naughty Dog é muito cuidadosa em relação a memória e a forma como está alocada a fim de usá-la de forma eficiente.

A fragmentação de memória é um dos piores inimigos, porque faz com que um jogo ocupe a memória muito mais rápido do que normalmente o faria. O estúdio utiliza ‘mapas de memória’ em seu motor, o que serve para determinar o momento em que a memória está sendo usada e que tipo de memória é. Isso é muito importante porque muitos dev kits, especialmente os de PS3, tem o dobro da memória, o que serve para encontrar defeitos no processo de desenvolvimento. O que significa que as características de jogo não devem usar essa memória extra.

Falando sobre processadores multi-core, Gregory falou sobre o PS4, que ele definiu como uma ‘máquina altamente paralela’.

Há 8 núcleos CPU que são de maior qualidade e mais poderosos do que os que você tem na CPU principal do PS3, e eles estão organizados em dois grupos.

Gregory também explica que a GPU é mais poderosa do que é necessário para renderizar gráficos em 1080p a 60 Hz, e que a ideia dos designers do PS4 era dar ao console recursos extras de GPU porque é bom para fazer enormes quantidades de processamentos paralelos e que eles imaginaram que os designers de jogos fossem utilizar o processamento para fazer física, simulação de tecidos, fluidos e mais com a GPU.

Com o PS3 a Naughty Dog desenvolveu em conjunto com a equipe ICE da Sony um ‘sistema de trabalho’ para fazer uso eficiente da CPU multi-core, e eles estão fazendo algo parecido com o PS4.

Apenas seis núcleos estão disponíveis para os jogos, dois são utilizados pelo sistema operacional. Cada núcleo executa um segmento de trabalho, e enquanto o primeiro cuida do loop principal do jogo, são distribuídos outros trabalhos entre os restantes cinco núcleos.

A GPU cuida da renderização e o GPGPU cuida basicamente da física, tecido e etc.

Outro conceito muito importante é a otimização, e um elemento crucial é a regra 80/20, o que significa que o seu programa gasta 80% do seu tempo executando 20% do seu código. O resto do código é executado muito raramente. Então, quando você otimiza o seu código, você não deseja otimizar 80%, porque você estaria desperdiçando seu tempo. Por outro lado, a Naughty Dog se concentra em 20%, o que realmente importa.

Conhecer o hardware é muito importante também, pois há otimizações que podem ser adaptadas apenas para uma parte específica do hardware, dado um profundo conhecimento do seu funcionamento interno.

Memória cache é uma parte muito importante da otimização, já que os processadores modernos usam um número bastante elevado de ciclos para acessar os dados da memória RAM principal. Depois, há um cache de memória muito menor chamado L2, que também é muito mais rápido para ser acessado, o cache L1, que é ainda mais rápido, e então há os ‘Regs’ no próprio chip que são super pequenos, mas basicamente instantâneos.

Manter pequenos dados de alto desempenho ajuda graças a esse sistema, como eles cabem no cache, eles podem ser acessados de forma extremamente rápida. Tê-los pequenos e contíguos na memória é ainda mais benéfico.

O PS4 tem oito núcleos dispostos em dois grupos. O cache L2 é dividido em dois, um para cada grupo, e a comunicação entre um grupo e a sua própria memória cache L2 leva 26 ciclos. A comunicação entre um conjunto e a cache L2 ligado a outro conjunto é muito mais lenta, levando 190 ciclos…

 

O conhecimento dessas peculiaridades específicas do PS4 permite ao estúdio otimizar o código para que ele evita ter grupos que se comuniquem com o cache L2 errado e coloque os dados em linhas de cache separados, eliminando a possibilidade de conflitos e lentidão.

Um último detalhe muito interessante é que o PS3 teve um hardware terrível quando se trata da CPU, e que não conseguia ‘prever’ linhas de código, o que muitas vezes causava mau desempenho. Por outro lado, o PS4 tem um ótimo hardware, que ‘adivinha’ o que o código vai fazer, eliminando a necessidade de todo o trabalho adicional que era necessário no PS3.

Uma coisa é certa: apesar de toda a confusão, ouvir essa conversa nos deixa ainda mais animados em ver o primeiro título da Naughty Dog no PS4. Nós vamos ter que esperar e ver se o estúdio vai realmente fazer bonito.

Fonte: dualshockers

 

 

Bookmark the permalink.