Geometry Engine da PS5 dá controlo total ao pipeline da geometria

Uma das questões ainda no ar é o que é realmente o Geometry Engine da PS5. E apesar de não se poder entrar em grandes detalhes, o que se sabe é que ele foi criado para permitir aos criadores o controlo total do pipeline de geometria.

No pipeline geométrico clássico, a geometria é processado como um todo. Isso quer dizer que para uma malha de triângulos (uma mesh), com centenas ou mesmo milhões de polígonos, todos os valores no seu index buffer são processados por ordem, e todos os triângulos ali presentes tem de ser processados antes de se poder proceder a operações de “Culling”.

O “culling” é uma operação super relevante na medida que ela consiste na remoção de triângulos constituintes das malhas de triângulos que formam os objectos que vemos no ecrã, e que não são visíveis porque se encontram tapados por outros, ou fora do ângulo de visão do jogador (o “frustrum”).

Isso quer dizer que temos assim processamento de triângulos desnecessário, e que vai usar recursos de GPU como se fossem necessários. E daí o interesse no processo de “Culling”.

Claro que nem todos os jogos usam a mesma intensidade de geometria, mas dado que a tendência é para o crescimento da complexidade geométrica, o “Culling” ganha cada vez mais interesse, uma vez que em malhas super densas começamos a falar de milhões de triângulos que são processados de forma desnecessária.



O que isso significa é que o pipeline geométrico clássico onde este gargalo linear existe se torna insustentável pelo crescente preço a pagar em processamento desnecessário.

A piorar a coisa, no pipeline geométrico clássico o processo é rígido. Dado o uso do index buffer, os dados de indexação necessitam de ter 16 ou 32 bits de tamanho, e um único valor de indexação aplica-se a todos os atributos do vértice ao mesmo tempo. Isto significa um aumento dos dado de geometria com o aumento da complexidade, e as opções para a compressão da geometria são limitadas.

Ora actualmente o “Culling” já existe. Mas por norma ele é feito por software, e abrange uma chamada de desenho completa, ou então por hardware, mas a nível das primitivas e apenas quando todos os vértices da primitiva já foram trabalhados pelos shaders. Por outras palavras, é possível poupar-se trabalho, eliminado vértices invisíveis, mas não a sua criação. 

Basicamente estas situações criam limitações aos criadores, pois certo tipo de operações criam problemas ao “culling” que pode eliminar mais do que o desejado, criando problemas visuais.

Tornava-se assim necessário algo novo, algo diferente, que alterasse este pipeline e permitisse um “culling” mais eficaz.

E assim surgem duas alternativas, os Primitive Shaders, criados pela AMD, e os Mesh Shaders, criados pela Nvidia. Ambas as meotodologias possuem vantagens e desvantagens, mas são criadas com o mesmo intuito, o de permitir um “culling” eficaz.



Vamos ver um pipeline de geometria clássico:

E o novo pipeline da AMD, com os seus Primitive Shaders:

Como se vê há aqui uma alteração radical. Os processos 304 e 306 são fundidos no novo 402, e os 310 e 312 substituídos pelo 404.



Processo 404 que por sua vez é bastante complexo, incluindo:

 

O processo essencial é o 464. É ali que descartamos logo à partida o que não é visível por estar por detrás, o que é descartado por estar fora do “frustrum”, e pequenos triângulos que sejam igualmente descartáveis.

Basicamente o processo da AMD é super eficaz, mas mantêm alguns dos vícios existentes, nomeadamente o processamento sequencial dos dados e o facto de a teselização criar problemas.



Os Mesh Shaders da Nvidia por sua vez também não são perfeitos, mas no entanto, apesar de outros pontos menos positivos, abordam aqui os dois pontos de cima onde a AMD falha, nomeadamente o processamento sequencial de dados e a flexibilidade no uso da tesselização.

Basicamente a Nvidia elimina a leitura sequencial (uma de cada vez) dos vértices e índices de vértices, ao criar os chamados “meshlets” pré construído (basicamente um grupo de 32 ou 64 primitivas). Esta metodologia permite melhorar ainda mais o “Culling” e modificar a geometria.

Basicamente, os Mesh Shaders podem ser considerados como superiores aos Primitive Shaders por serem mais rápidos e mais versáteis, apesar de no global ambos fazerem o mesmo.

E é aqui que surge o novo Geometry Engine.

Basicamente a Sony abordou ela mesma o problema, e criou uma alteração ao que a AMD faz. Pegou nos seus primitive shaders, que continua a usar como base, e alterou todo o sistema. Apesar de não se saber pormenores, o que é referido é que agora todo o pipeline de geometria está programável e sob controlo do programador. Caso o mesmo não deseje usar, ele funcionará por si de forma automática, mas caso deseje controlo refinado da geometria, pode-o fazer. A ideia da Sony foi eliminar todas as limitações dos Primitive Shaders, fazendo algo que superasse os Mesh Shaders, e permitisse a eliminação dos triângulos desnecessários logo no início do processo, evitando todo e qualquer processamento desnecessário.



Daí a chamada de atenção de Matt Hargett sobre o VRS.

Basicamente o que aqui é referido não é que o Geometry Engine substitui o VRS, ou que a PS5 não suporta VRS (o Red Gaming Tech afirma que sim, que o suporta). Mas que o VRS poupa ciclos, sim, mas operando sobre ainda muitos triângulos que não são visíveis. E que os ganhos obtidos pela remoção desses triângulos que o novo Geometry Engine consegue, são bastante superiores ao que o VRS oferece. Tudo isso sem a necessidade de prejudicar a qualidade de imagem, como se sabe o VRS faz.

Daí que perante isto não é de admirar que se fale que a AMD poderá incluir o Geometry Engine no seu RDNA 3.



15 Comentários
Antigos
Recentes
Inline Feedbacks
Ver todos os comentários
bruno
bruno
5 de Agosto de 2020 8:09

E dai dizerem que o GPU da PS5 sera um hibrido com caracteristicas RDNA3.

Nao e que seja RDNA 3, apenas e RDNA 2 com alteracoes proprietarias da Sony que a AMD acabara por incluir nos GPUs serie RDNA3.

Da mesma forma, ha rumores que apontam que a cache do dois CCX zen 2 presente na PS5 seja unica e nao separada (mais uma alteracao pedida pela Sony?) como nos chiplets Zen 2 no mercado. E dai dizerem que o cpu tem caracteristicas Zen 3 – nao e zen 3, e um zen 2 onde alteraram as caches de forma semelhante ao que,de acordo com rumores, pode surgir no Zen3. Mas os cores continuam zen 2.

bruno
bruno
Responder a  Mário Armão Ferreira
5 de Agosto de 2020 9:16

Pode ser… mas das duas uma, ou a Sony alterou a CU para isso o que implicaria uma alteracao proprietaria ao nivel das CUs e que provavelmente se extende a todo o GPU, ou ha uma unidade externa (cache scrubbers ou algo mais) que permite a CU ser repropositada para isso de forma tao eficiente. Digo isto devido aos rumores que so na RDNA3 veremos o mesmo nos GPUs AMD.

Na PS4 a sony colocou imensas ACEs precisamente para permitir abritariedade e distribuir o trabalho de compute pelas CUs dependendo da carga de cada uma. Logo para mim, nao faz sentido bloquear as funcoes tempest e Geometry Culling a CUs especificos, mas sim distibuir nos CUs diponiveis com base no que e possivel, quando e possivel. E preciso nao esquecer que o trabalho continua a ser sequencial.

Aproveitando, tens ideia das diferencas entre um SPU do cell e um CU da AMD, para alem da obvia maior capacidade deste ultimo em shaders e maior capacidade calculo?

Seria engracado um comparativo entre as features do SPU no Cell e depois o que tiveste no CU. Houve um artigo antigo, por volta de 2005/2006 em que Sony apresentou o Cell e ha comentarios na AMD que efectivamente apontam para que a linha fusion e mesmo o que a empresa fez com a GCN tenha nascido do que foi anunciado no Cell. E dai a Sony tr investido tanto no GPGPU – ja sabia ao que vinha e ja sabia como o usar.

Num aparte, outro rumor sobre a RDNA3:

https://wccftech.com/amd-radeon-rx-big-navi-rdna-2-gpu-november-launch-no-hbm2-tsmc-7nm-rumor/

RDNA3 podera permitir chiplet design no GPU. Curioso isto surgir agora… depois da patente da Sony nesse sentido.

Last edited 3 anos atrás by bruno
bruno
bruno
Responder a  Mário Armão Ferreira
5 de Agosto de 2020 10:11

A geometria e tipicamente tratada nas CUs. Sempre foi. Tu referes fazer o processo numa ou mais CUs. O que digo e que, se ha rumores que indicam que a AMD so podera introduzir isso na RDNA3, entao e porque a solucao vai alem do software puro e ha unidades de hardware sem as quais esse nivel de culling nao e possivel. O que? Nao sei.

Apenas refiro que podera ser uma alteracao nas CUs que lhes permitem fazer esse culling sem ser puro codigo, em conjunto com as outras alteracoes no sistema. E refiro que se assim e, entao ou a Sony reserva algumas em especifico… e so alterou algumas, ou colocou essa alteracao em todas. E este segundo caso parece-me mais provavel (digo o porque em baixo). Repara contudo que alterar a CU para fazer culling nao a impede, necessariamente, de continuar a fazer o que faz normalmente logo nao entendi a tua resposta.

Relativamente ao que dizes sobre as ACEs, isso eu sei e esta implicito. A questao nunca foi a presenca de ACEs, a questao foi o numero de ACEs que foi colocado. E o numero de ACEs tem a haver com a distribuicao de tarefas pelos CUs e a quantos CUs se pode enviar comandos compute. Muita gente nunca compreendeu isso. O que vi na esforco da Sony em colocar as 8 ACEs foi a intencao conseguir distribuir as tarefas pelas CUs (todas as CUs activas) conforme possivel e quanto possivel. No caso da Xbox com as duas ACEs, segundo tenho entendido estava limitada no numero de comandos mas tambem em quais CUs poderia usar para compute. Nesse sentido o que refiro que se o tempest e o geometry culling sao baseados em CUs no GPU… nao faz muito sentido trancar CUs para essas funcoes especificas, mas sim distribuir isso como as operacoes compute, isto e nas Cus disponiveis, quando disponiveis.

Se estiver errado por favor corrige-me.

O que referes do Cerny foi uso das SPUs e da sua capacidade calculo vectorial para fazer culling (isto revela que elas tambem lidavam com alguma da geometria). A APU da PS4 nesse sentido foi uma tremenda evolucao da PS3. Passaste de um nucleo generico (PPU), de oito nucleo dedicados a opracoes vectoriais (SPU) e de RSX com shaders fixos (nao me recordo de quantos) para 8 nucleos genericos e 18 unidades adicionais que funcionam como SPUs e shaders.

Exacto, A questao e: sera que esse hardware deve ser so usado para 8K. Sera que teremos Pro? Repara que a RX 5700 na qual o gpu anuciado pelo cerny e baseada e referida como uma boa solucao para 1080p. Nao 4K. E eu nao sei se as alteracoes ao input output melhoram a resolucao… podem melhorar frames (por segundo), mas sera que melhoram a resolucao?

E outra coisa ainda mais interessante. A patente refere nao so um GPU adicional… refer tambem alternativamente, uma APU. E se for APU… nao estaremos a falar de uma versao Pro.

bruno
bruno
Responder a  Mário Armão Ferreira
5 de Agosto de 2020 11:50

Espero que tenha.

By-mission
By-mission
5 de Agosto de 2020 14:02

É algo simplesmente fascinante…

Antes da revelação da Unreal Engine 5, a Sony estava encurralada o ” milagroso SSD que aumenta fps” ou como muitas diziam o ”PSSD5” agora vem a realidade…

É algo simplesmente fascinante…
_______________________________________________

Há artigos falando sobre a possibilidade de a Microsoft trazer o DirectStorage para PC, com o potencial de eliminar a sobrecarga do driver da GPU no futuro. E também há o Optane da Intel

esforço para colocar memória não volátil diretamente na DRAM com granularidade de cache.

Tim Sweeney @TimSweeneyEpic

Para os entusiastas de PC, o interessante da arquitetura PS5 é que é uma prova de existência de SSD de alta largura de banda Microsoft, Intel, NVIDIA, Intel e AMD para trabalharem juntas e fazerem isso? Veremos!

_______________________________________________

https://twitter.com/TimSweeneyEpic/status/1268385952713641986?s=20

Renaud
Renaud
5 de Agosto de 2020 15:03

Esse GE é de fato muito interessante. Mas o que eu gostaria de saber mesmo é sobre a probabilidade de o ps5 ser capaz de ter algo semelhante ao DLSS como apontou uma patente da Sony. Será que mesmo que não tenha nucleos dedicados para machine learning(supondo) é possível ser processado pelas unidades RDNA 2 com eficiência?

Shin (Playstation, Nintendo, Sony e Valve)
Shin (Playstation, Nintendo, Sony e Valve)
5 de Agosto de 2020 15:57

Em um futuro não muito próximo Geometry Engine substitui Vertex Pipeline.
Path Tracing subistitui Pixel Shader Pipeline.
Deep Learning substitui testes de rasterização e pós processamento no screen space stage.

Por motivo de carga o PathTracing é o último caminho enquanto DLA é gradativo, o pipeline está ficando cada vez mais automático e solúvel. Dream por exemplo ele já tem um pipeline de geometria programável que lhe permite colocar qualquer figura no motor com a densidade de detalhes quase ilimitada, na verde hoje a limitação é muito mais o tamanho dos dados que a capacidade de exibir eles.

Por isso que a geração procedural ao meu ver é tbm parte do futuro, No Man’s Sky por exemplo. Acho que os jogos precisam ser 50% proceduralmente gerado e 50% dos designers, hardware gera a estrutura, editor aplica mudanças. Ou seja, o futuro dos gráficos 3D não é ter centenas ou milhares de pessoas trabalhando 5 ou 6 anos em um game mas sim games gerados pela máquina e editado por uma equipe muito menor.

Carlos Eduardo
Carlos Eduardo
5 de Agosto de 2020 16:35

Em i/o está claro que a Sony de facto construiu uma solução magnífica (100x mais rápido que o PS4, uma loucura). SSD pcie gen4 com 12 canais e 6 níveis de prioridade, DMA personalizado, motores de coerência, hardware dedicado para descompressão, forte parceria com Rad Gaming Tools, etc..

Já na parte da GPU, embora sempre foi clara a questão do PS5 suportar a arquitetura RDNA 2, me parecia que a Microsoft havia investido melhor em features, VRS, mesh shaders, DirectML, Ray Tracing e tudo mais o que a Microsoft quis divulgar no seu glossário: https://news.xbox.com/en-us/2020/03/16/xbox-series-x-glossary/ .

Mas na medida em que tudo vai se esclarecendo, me parece cada vez mais que Mark Cerny e sua equipe fizeram um trabalho extremamente refinado no uso das features necessárias para seus objetivos, que nos parece ser uma consola extremamente performática e praticamente livre de gargalos diante do seu orçamento de construção, usando um Soc menor. A Geometry Engine juntamente com Cache Scrubbers me soam duas features de GPU que são a cereja no bolo de toda essa filosofia de optimização e extrair o máximo possível do hardware que está em mãos.

Isso é um pouco diferente do projecto do Xbox Series X, que foi construído sobre 2 princípios: muito mais poder bruto que o Xbox One X e boa acústica, uma consola silenciosa. Isso faz do Xbox Series X algo mais próximo de um PC high-end para os dias atuais. E ao mesmo tempo, faz do PS5 algo legitimamente digno do histórico de personalização de hardware em consolas, como sempre vimos desde o passado. A diferença é que ambos estão debaixo do mesmo conjunto de instruções do PC, no caso CISC x86, facilitando o desenvolvimento.

Mal posso esperar para ver o teardown do PS5.

Last edited 3 anos atrás by Carlos Eduardo
Carlos Eduardo
Carlos Eduardo
5 de Agosto de 2020 19:07

[OFF]

Playstation now no Brasil?

https://twitter.com/geronimo_73/status/1291079862346809345?s=20

Embora seja pouco provável que eu vá assinar, já que não joguei nem metade dos jogos que tenho, fico feliz pelo público brasileiro no geral.

Mais uma boa opção.

Sparrow81
Sparrow81
Responder a  Carlos Eduardo
5 de Agosto de 2020 19:46

Deve chegar em breve mesmo. Quem sabe junto com o ps5.

error: Conteúdo protegido