Um SSD não processa… Mas um SSD pode poupar processamento que depois pode ser usada para mais resolução, Um SSD pode melhorar fps, e mesmo o grafismo. Não sabias? Mas vais ficar a saber! E pelo meio vais perceber como a implementação do SSD levou a que outras novidades aparecessem para rentabilizar a RAM.
Nota inicial: Os artigos PCManias, como sempre, devem ser enquadrados temporalmente. São realizados comparando o que é oficialmente conhecido, mas deve-se ter em conta que nesta fase, nem tudo é conhecido, pelo que algumas destas comparações podem não ser exactamente assim.
—
No artigo que se segue vamos mostrar como um SSD pode melhorar muita coisa num sistema. Mas mais especificamente vamos também falar sobre como o SSD da PS5 pode fazer isso e muito mais.
Fiquem atentos!
Quem processa o grafismo do mundo é o GPU… não é o SSD. Ora assim sendo como é que ele pode ajudar?
A imagem que se segue vai ajudar a explicar isso:
Quando olhamos para um jogo como Horizon: Zero Dawn, a que a imagem de cima diz respeito, vemos que o jogo ocupa algo como algumas dezenas de GB em disco. Isso quer dizer que jogo não cabe na memória de uma PS4, que conta com apenas cerca de 6.5 GB dedicada a todo o processamento dos jogos.
O que isso implica é que o jogo vai funcionar por streaming.
Aqui o streaming não tem nada a ver com a transmissão do jogo pela internet, mas na realidade apanha-lhe alguns conceitos. Basicamente o jogo vai ler do disco apenas as partes que cabem na memória, alterando-as de acordo com o movimento do jogador.
A imagem de cima mostra como Horizon: Zero Dawn faz esse streaming. O que temos dento do cone azul é aquilo que o jogador vê com o movimento da personagem. Neste caso a personagem está a olhar da direita para a esquerda, e como vemos, o conteúdo do que está a ser processado pelo GPU é basicamente aquilo que ele está a ver. Mas isso não é no totalmente verdade pois o processamento vai incluir o que está na memória da consola, e isso na realidade engloba mais coisas.
E isso que vemos na imagem de cima. Muito mundo rendido e que vemos existente fora do cone, que aos poucos vai desaparecendo dando origem a um fundo azul. E quando isso acontece é quando essa zona deixa de ser processada pelo GPU. Uma situação que se altera dinamicamente à medida que o ângulo de visão se vai alterando.
A margem processada fora do cone de visualização pode ser maior ou menor dependendo da mestria na implementação do jogo, mas o ideal, até pelos recursos que liberta era que fosse o menor possível ou até inexistente. Isto porque ao ser mais pequena o GPU vai ter de processar menos dados inúteis em cada fotograma, podendo assim dedicar esse processamento a outras situações. Da mesma forma não termos de processar tanto fora do ecrã, também não temos de ocupar memória existente com coisas que não interessam, dedicando-a ao que efectivamente se vê. Basicamente isso quer dizer que quanto menos for processado fora do ecrã, mais memória podemos usar para melhorar o detalhe do mundo.
Falta apenas explicar o porquê que há quase tanta zona fora do cone de visualização, como há dentro! Até porque Horizon Zero Dawn é um exemplo na optimização dos recursos nesta técnica denominada de Frustum Culling, apenas calculando o absolutamente necessário
Por outras palavras, o caso de cima está o mais optimizado possível. Não era possível ter-se menos zona fora do cone. E o motivo prende-se basicamente com um motivo… a velocidade do disco.
Ao termos um mundo que vai funcionando por obtenção dos dados variáveis e dependentes do local para onde estamos a olhar, isso quer dizer que o disco vai estar sempre a ler informação nova para ser processada.
Ora o problema é que o disco não tem velocidade que chegue para fornecer esses dados. Daí que o que ele vai fornecer são basicamente apontadores sobre relevo, posição de elementos e eventualmente alguma geometria específico do local para onde olhamos.
Com o disco a ser tão lento, muita da geometria mais comum tem de ser mantida na memória, o que quer dizer que a memória útil vai acabar por ser ainda sacrificada, com o tamanho da memória dedicada ao processamento do que está efectivamente no ecrã a descer. E com menos memória temos uma consequência: A quantidade e qualidade de coisas que podemos ter no ecrã, vai cair.
Isto pode parecer difícil de se entender dada a elevada qualidade do que já se consegue fazer com as limitações actuais, mas é uma realidade. No caso da PS4, alguns jogos tinham apenas algumas centenas de MB (sim, Megabytes, e não Gigabytes) para dedicar ao GPU para cálculo do fotograma. Ou seja, a qualidade do mundo, mesmo que visualmente impressionante, reduzia-se a algo que poderíamos meter nesses MB. Mas já falaremos disso mais à frente.
Mas ocupar a memória com geometria não pode ser um processo que sature a mesma. Daí que a geometria que ficava na memória, era toda ela versões de baixa “resolução” de geometria mais avançada..
Note-se que quando se fala em baixa resolução não se está a falar de algo com baixa densidade de pixels (há uma ideia de associar resolução a pixels). E neste caso nem falamos necessariamente em algo com má qualidade. Diga-se que se isso foi verdade em tempos, essa fase já se passou pois a memória agora já permite que se guarde geometria de qualidade considerável.
O que se pretende dizer com isso é que não serão os modelos mais detalhados que o jogo poderia mostrar, mas sim versões mais simplificadas e genéricas.
De notar ainda que muitos desses modelos são parametrizáveis, e como tal as cópias aplicadas ao mundo sofrem alterações a alguns dos seus parâmetros. Nesse sentido árvores podem apresentar mais ou menos ramos, mais ou menos folhas, cor, rotação variada, etc. O mesmo com NPCs que podem variar a cor da roupa, alterar a altura, a largura do tronco, etc. Ao olho nu, parece-nos estarmos perante geometrias diferentes, quando na realidade o que temos são apenas variações de parâmetros de uma mesma.
Formas inteligentes de se superar um limite!
Mas se temos isso, nunca teremos como comum casos como este (reparem na árvore do lado esquerdo da posição da Alloy):
Este nível de detalhe já não se repete frequentemente! As árvores do jogo tem excelente detalhe… mas não tanto detalhe como a desta caso! E isso porque elas existem para encher, e a memória não permite que se guarde coisas com tanto pormenor.
Isto significa então duas coisas…
1 – Que em caso nenhum poderemos ter uma situação onde a personagem ao se virar muda para um cenário igualmente de elevada qualidade, mas com geometria radicalmente diferente, porque isso implicaria a substituição de toda a geometria na memória, algo que a velocidade do disco não permite fazer. Basicamente teremos de ter zonas de transição onde a geometria na memória vai ser predominante dando tempo ao disco para ler nova para substituir a antiga. Os tradicionais túneis, corredores, elevadores ou zonas de bloqueio, que param a personagem para o disco ter tempo de actuar.
2 – Vamos ter de ter áreas grande calculadas fora do cone de visão, zonas intermédias onde a geometria que temos no momento no ecrã se vai repetir numa determinada percentagem, e que existe de forma a prever qualquer movimento do jogador e respectiva capacidade de resposta do GPU. Basicamente tudo devido à necessidade de se ter tudo o necessário para calcular o que vai entrar no ecrã e que se sabe que o disco não pode substituir rapidamente.
Nesse sentido, porque o disco é lento, basicamente o GPU tem que processar dados de mais zonas do que as que estão no ecrã uma vez que em caso de movimento súbito, não as poderá receber depois em tempo útil, calculando assim mais do que o estritamente necessário. São então estas as partes que estão detalhadas na imagem de cima, mas fora do cone de visão.
E é aqui que um SSD faz milagres. Basicamente por ser mais rápido, ele pode fornecer a geometria que se precisa. Deixamos de precisar de a guardar na memória pois agora o disco já tem como a fornecer, libertando memória que pode ser usada para mais geometria e detalhe no mundo. Mas mais do que isso, ele não tem forçosamente de fornecer essa geometria repetida, ele pode fornecer outra, e mais do que isso, até pode fornecer os modelos com mais detalhe, como o da árvore com musgo e as formiguinhas. Tudo porque tem velocidade para isso. Comparativamente, o SSD da PS5, no seu modo de transferência mais lenta, o modo sem compressão é em média 100x mais rápido que o HDD da PS4.
Daqui que se torna fácil perceber os ganhos gráficos no mundo, quer pela libertação de memória, quer pela poupança de processamento ao se poder poupar no que se processa fora do ecrã..
Resumidamente teremos mais e melhor geometria, variação da mesma a qualquer momento e sem zonas de transição!
E da mesma forma teremos os ganhos de performance pela diminuição das zonas rendidas fora do campo de visão, ao não serem necessárias margens tão grandes, ou basicamente, pela grande velocidade, quase nenhumas.
Como referência, Cerny referia que na PS4 era necessário prever e ter na memória de processamento material para 30 segundos de movimento para cada lado, um valor que desceria para perto de 1 segundo com o SSD.
E em que podem ser usadas essas poupanças? Mais FPS ou mais resolução!
Estes são ganhos que um SSD pode trazer, que ambas as consolas vão experimentar, mas que serão em maior percentagem na PS5 por o seu SSD ser mais rápido. Mas acima de tudo por ter uma série de alterações proprietárias no seu sistema de input output, que são completamente inovadores, removem todos os gargalos existentes na transferência de dados e permitem que o disco se comporte quase como RAM e sem penalizações.
Intervalo ;).. Podem ir às pipocas.
___
Retomando a sessão:
Mas no caso especifico da PS5, há mais situações. Pois há outras novidades. Elas não estão directamente ligadas ao SSD, mas só se revelam plenamente interessantes com a presença de um SSD e daí terem sido implementadas.
A grande velocidade do disco e a sua baixa latência causada pelos 12 canais PCIE da SSD, e a sua elevada performance de leitura permitem que o disco seja usado como memória virtual (A Xbox também permite isto com o seu disco, apesar de com performances diferentes).
Esta situação revela-se muito vantajosa no Ray Tracing. Basicamente o Ray Tracing simula a interacção da luz com os objectos que encontra. Esta situação cria uma grande quantidade de dados com esses resultados. Não só estes dados são realmente bastantes, como crescem exponencialmente com geometria adicional e aumento do uso de texturas de alta resolução.
O que pode resultar daqui é que, por estes dados se manterem na memória, poderemos encontrar limitações que não sejam as da capacidade de cálculo do GPU, Basicamente se esses dados crescerem bastante eles vão limitar o espaço da memória para geometria e as texturas, limitando a cena. Isso quer dizer que para um equilibrio adequado faz-se concessões e escolhas sobre o que se pretende, se uma cena complexa, se um Ray Tracing complexo. É uma limitação que, desde que o GPU tenha a capacidade de processamento para mais, está a ser imposta pela RAM.
Apesar de nos jogos estes dados serem relativamente mais pequenos do que em produções profissionais, a Nvidia ainda assim refere que eles podem utilizar entre 1 a 2 GB de RAM. Memória essa que pode ser libertada em parte com um SSD, deixando mais espaço livre para outras situações. Este é um dos princípios que a AMD ela mesma anunciou serem possíveis com a sua SSG, o seu GPU com um SSD associado, e cujos princípios e capacidades de interconexão ao GPU a PS5 até supera.
Mas com um SSD eficaz, usado como memória virtual, estes dados criados podem ser armazenados no mesmo sendo lidos à medida que são precisos, eliminado assim as concessões e permitindo ao GPU mostrar o seu real potencial não ficando tão limitado pela RAM.
Passemos agora a outra novidade, esta específica da PS5: Os Cache Scrubbers.
Os cache scrubbers são uma tecnologia da qual quase todos os fabricantes de processadores possuem patentes para implementarem nas futuras gerações de GPUs. É implementada pela primeira vez na PS5 e sabe-se muito pouco sobre ela, excepto que serve para consultar as caches do GPU de forma a permitir que a memória dedicada a cache do fotograma em cálculo seja aumentada.
Eis como a tecnologia é descrita como funcionando:
Vamos comparar uma diferença entre a PS5 a Xbox série X, aceitando que ambas as consolas tem a mesma memória total disponível, e usada da mesma forma pelo mesmo jogo.
Segundo a explicação tiradas de patentes da Intel sobre este assunto, dão a entender, a memória cache que o GPU tiver disponível para render a imagem vai ter de ser dividida em duas partes, uma que contem os dados do que está a ser rendido no momento, e outra com os dados do que vai ser rendido a seguir. E isto porque não é possível saber-se que partes da memória que contêm o que está a ser rendido é que o GPU já leu e que partes é que não leu (na realidade pode, mas é tremendamente penalizador nas performances). E devido a isso, não se altera a memória cache que o GPU está a processar sob pena de alterar uma parte ainda não lida, e penalizar o cálculo.
Ou seja, basicamente, em qualquer sistema normal, o GPU faz esta divisão e salta entre estas duas divisões. Rende uma enquanto se prepara a outra, depois pega na outra e deixa mudar a primeira.
Mas a PS5 não precisará de fazer isso. E tal deve-se aos cache scrubbers que Cerny deu a conhecer como uma novidade da consola.
Eles são uma alteração ao silicone que permite o acesso ao cache do GPU para se consultar que endereços de memória o GPU já leu. E uma vez lidos, eles podem logo ser libertos para uso.
É uma novidade radical, que permite que mal a memória seja lida, ela possa ser imediatamente libertada, mesmo durante o processamento do fotograma.
Não quero entrar em teorias sobre a eficiência real deste sistema que desconheço, mas ele existe, e isso quer dizer que se o novo fotograma for sendo estruturado sobre a memória que vai sendo liberta, não há necessidade de se guardar memória para dois fotogramas, pois quando GPU acabar de ler a memória que tem alocada, ele pode ler novamente os mesmíssimos endereços que já estão com a informação do fotograma seguinte. Ou seja, na teoria a memória cache não tem de ser dividida, e desta forma, a memória que pode ser usada para conter o detalhe do mundo e a geometria é o dobro da memória do disponível nos actuais sistemas, incluindo a Xbox série X.
E mais memória… significa melhores texturas, mais qualidade gráfica, mais detalhe, mais objectos, etc.
Mas esperem… Acabamos de descrever uma melhoria interna do GPU… isto não tem nada a ver com o SSD!
Mas tem… Porque este ganho não teria a mesma importância não fosse o facto de o SSD ter mais do dobro da performance do da série X. Porque ao duplicarmos a memória útil de trabalho, temos de alimentar a mesma igualmente no dobro. E é aqui que o SSD da PS5 se adapta à tecnologia ao ter sido pensado para ela.
Pelo menos este é o conceito máximo por detrás da teoria desta tecnologia. Se na prática a coisa será assim, não podemos dizer. É algo novo e sobre o qual há pouca informação.
Mas perante as novidades só se pode dizer que basicamente a PS5 é revolucionária, e se olharmos para trás, mesmo a AMD diz isso. Eis Lisa Su a referir como a visão de Mark Cerny para a PS5 iria revolucionar os próximos 10 anos de videojogos.
#PS5 AMD’s CEO Lisa Su talks next generation PlayStation and mentions Mark Cerny’s 10 year vision @amd @LisaSu @cerny @PlayStation pic.twitter.com/3k4RWXXRfQ
— VirtuaMe 🇬🇧 OLED Thirst 💧 (@VirtuaMe) May 27, 2019
E um dos motivos pelos quais, pela primeira vez, uma empresa fabricante de hardware se referiu a um produto como contendo… um molho especial.
What we have done with Sony is really architect something for their application, for their special sauce. It’s a great honor for us. We’re really excited about what the next generation PlayStation will do.