Mark Cerny referiu sobre a maior velocidade de relógio da consola “Uma maré a encher levanta todos os barcos”. Agora Matt Hargett vem explicar quais são alguns desses barcos e as vantagens que isso traz.
Quando se olha para as consolas as pessoas só vêm Tflops… Isso foi muito bom na geração passada onde as consolas era tão semelhantes que a medida se aplicava.
Mas nesta geração as consolas estão tão personalizadas, tão alteradas, que os Tflops não vão dizer a verdade toda.
O maior exemplo já o tivemos com o SSD, que agora todos elogiam. Mas há outras questões no hardware da PS5 que vão ser um fator que pesará nas performances.
Mark Cerny tinha referido relativamente às maiores velocidades de relógio a seguinte frase:
Uma maré a encher eleva todos os barcos
Mas que barcos? Bem, o mais lógico é percebermos que os CUs processarão mais rápido, e consequentemente, no mesmo tempo, processarão mais, o que compensará a diferença de performances.
Mas não incluído nesse raciocínio está toda a pipeline gráfica clássica que fica para além da parte programável definida pelos CUs e medida pelos Tflops.
Ao termos o GPU mais rápido, essa componente será igualmente mais rápida, e isso não é contabilizavel em números de Tflops, mas vai ter um claro impacto nas performances. Um impacto cuja valor só poderemos saber com testes reais.
Mas há mais… A questão é que as caches de um sistema também aceleram quando se sobe a velocidade do GPU. E caches mais rápidas fazem toda a diferença… Tal como o SSD alimenta todo o sistema, as caches alimentam os processadores com os dados intermédios de cálculo, e sendo elas mais rápidas, os dados também são entregues mais rápidos e depois processados mais rápido.
Basicamente esta redução de tempos de entrega, ou latência. Com os dados entregues o próximo pedido pode ser feito, e isso permite assim aumentar o número de ciclos de pedidos.
Ora quando dos grandes ganhos na passagem do Zen para o Zen 2, a melhoria que mais contribuiu para o aumento de performance foi exactamente a redução do número de ciclos das caches. Ao se reduzir este número de ciclos necessário para as caches entregarem os dados, pode-se entregar mais dados de forma efectiva.
Ora ao termos agora aqui um outro elemento que vai no mesmo sentido, o de aumentar a entrega de dados de forma efectiva, mas pelo aumento das velocidades e redução das latências, teremos aqui ganhos de performance adicionais.
É isto que Matt Hargett, ex engenheiro principal de software da PS5, explica:
the “running the caches faster”/”more cache bandwidth” statement is only part of the story. what is the *latency* of those caches? one of the biggest boosts to Zen 2 IPC was cycle reductions of L2/L3 caches. 1 cycle here & there adds up when a 120fps frame render times are 8ms.
— Matt Hargett (@syke) June 9, 2020
Naturalmente não estamos aqui a falar de algo tão significativo como a redução dos ciclos que a AMD realizou, mas apenas de ganhos de 1 ou outro ciclo adicional aqui ou ali. Mas Matt dá um exemplo em que isso pode ser muito significativo, como por exemplo, quando se está a trabalhar com 120 fps, e o tempo de render é de apenas 8 ms por fotograma, esses ciclos extra trazidos pela maior velocidade do GPU e consequentemente das suas caches, podem fazer a diferença entre se conseguir o resultado final ou não.
Mas há mais.. e aqui entram novamente em jogo as alterações ao sistema de I/O da PS5, com os motores de coerência e os cache Scrubbers.
Basicamente o se passa é que se numa escrita de dados do CPU, do GPU ou do SSD houver falta de coerência, isso invalida a paginação das caches todas do sistema, tendo as mesmas de ser re-escritas, consumindo largura de banda.
É neste sentido que já publicamos aqui um artigo que explica como os cache scrubbers podem ajudar nesse sentido, poupando, teoricamente, até 59% da largura de banda de um sistema. Mas os motores de coerência são igualmente relevantes aqui para que os dados se adaptem às necessidades das caches dos diversos sistemas.
then we get into talking about cache coherency. if a memory write from CPU, GPU, SSD, etc invalidates cache pages everywhere else in the system, you’re wasting your bandwidth re-fetching. I think this core aspect of systems’ architectures will matter more than count CUs or clocks
— Matt Hargett (@syke) June 9, 2020
A metodologia clássica é a força bruta… mais largura de banda, mais performance e tudo isto se supera. Mas a PS5 usou outra forma mais subtil com o seu sistema de I/O. E como Matt refere, estes aspectos nucleares da arquitectura serão mais relevantes do que relógios ou CUs. Ou seja, mais uma referência a que os Tflops podem ser muito enganadores.
Basicamente o que Matt nos explica não é mais do que o que já conhecemos, e que já foi explicado por Cerny. Apenas é dito sobre outra vertente para percebermos outros possíveis ganhos. E naturalmente que os programadores poderão não se aperceber destes ganhos logo de inicio, pois é preciso tirar partido das coisas para elas se mostrarem, e isso implica programar para elas. Daí que nesta fase nem todos terão a real noção do que vale a PS5, especialmente se se limitarem a correr código standard e já existente, dependente da força bruta.
Dada a apresentação da PS5 hoje, quem sabe nos próximos dias não teremos mais dados para falar.