Apesar de a base da arquitetura das consolas, e consequentemente CPUs e GPUs, serem a mesma, a realidade é que o que existe nos dois lados é bem diferente.
Uma situação que não me canso de repetir aqui é que as pessoas quando fazem comparações entre o hardware de uma consola e o hardware de um PC, ignoram realidades que fazem toda a diferença.
Vamos lá a ver: Se eu pegasse Num GPU e num CPU PC, sem qualquer alterações, ou seja de prateleira, e criasse uma consola com eles, a comparação entre esse hardware e o mesmo hardware no PC poderia ser feita. Mas mesmo aí a coisa não seria batatas por batatas e laranjas por laranjas.
O se criar uma consola, mesmo que o hardware fosse standard, há sempre uma alteração radical face ao PC. O facto que estamos ali bloqueados a um hardware que é único!
Isso pode parecer não ter significado… mas na realidade, só esse facto, faz toda a diferença do mundo.
Num exemplo muito terra a terra, imaginem que eu venho aqui ao planeta terra e escolho uma pessoa.
Agora vou clonar essa pessoa, e terei milhares de cópias iguais a essa pessoa. Irei comparar esta situação como uma consola.
Por outro lado, eu venho aqui à terra, e pego em 100 pessoas diferentes. Clono também essas pessoas, mas a realidade é que apesar de ter clones delas, tenho 100 pessoas diferentes. E vamos comparar isto com o PC.
Agora eu chego à minha pessoa (consola), e digo-lhe: Preciso que me vás buscar ali um caixote a esta morada.
A pessoa vai! E todas elas me vão fazer exatamente a mesma coisa, de forma igual, pois todas tem as mesmíssimas capacidades.
Mas se fizer o mesmo o lado das pessoas (PC), a situação vai ser bem diferente.
Primeiro, mesmo que todas vão, elas vão a velocidades diferentes, e com performances diferentes. Mas o pior +e que eu posso dar a ordem e algumas delas não a entenderem porque falam línguas diferentes! Ou então algumas não podem fazer da mesma forma porque a religião não deixa, ou porque tem problemas nas costas.
Basicamente no caso das minhas pessoas (PC), eu terei de ter o cuidado de dar os comandos tendo em conta o menor dos denominadores. E daí para cima os outros poderão fazer melhor, mas só assim garanto que todas fazem.
Esta situação não existe nas consolas. Porque sabemos à partida com o que contar, e todos farão igual!
Mas podemos fazer mais. Se a nossa pessoa (consola) é boa a correr, eu posso-lhe pedir que corra! Mas nas pessoas (PC) como posso fazer isso? Correr todas correm, mas não o fazem todas da mesma forma. Basicamente, mais uma vez terei de ter em conta a realidade de todos. E se alguém não puder correr, porque não tem essa possibilidade, terei de arranjar um método de dar a ordem que seja universal e todos possam cumprir.
O que se passa aqui é que terei de recorrer a algo que se chama de Layers de abstração. Basicamente quando se dá uma ordem, ela tem de ser analisada e transformada em algo universal que todos possam fazer. Uns mais rápido, outros mais lentos, mas todos poderão fazer.
E infelizmente o processamento desse tipo de situações gasta recursos na máquina, o que quer dizer que, retornando ao hardware, mesmo que o PC possua exatamente o mesmo hardware da consola, pelo facto de estar a correr software PC universal, não terá nunca as mesmas performances.
Mas depois há outras situações. Vamos imaginar que a pessoa da consola está numa cadeira de rodas. E a pessoa do PC é um atleta capaz de todas as proezas. Estamos aqui a tentar comparar a consola a um hardware topo de gama!
Ora a pessoa na cadeira de rodas naturalmente que não vai nunca poder competir diretamente com o atleta. Mas… nas descidas… ela é mais rápida! Porque tem rodas!
Ora se os jogos forem concebidos a pensar nas especificidades das consolas, o que normalmente acontece nos jogos First Party, que os otimizam ao máximo para o hardware, a conversão para PC vai exigir um hardware bastante mais capaz para poder fazer a mesma coisa. E isto apenas pelo simples facto de o hardware ser único.
Mas isto não é tudo, pois se já vimos que ter um software optimizado para o hardware, e que ganha com o facto de o hardware ser único, é uma vantagem, temos depois as ferramentas de optimização.
Basicamente as consolas, por serem hardware único, podem ser analisadas ao pormenor , sabendo-se que partes do hardware estão a ser usadas, e em que medida. Nesse sentido acontece aquilo que se chama uma programação hibrida para as consolas. Basicamente, traduzindo isto em miúdos, as consolas saem com settings que não são exatamente nenhum dos settings gráficos existentes para PC. Ou seja, não são low, nem medium, nem high, nem very high, nem ultra. Apesar de, de jogo para jogo, e de criador para criador, podermos ter settings mais altos ou mais baixos face aos máximos do PC, a realidade é que o que temos nas consolas não se equivale exatamente a nenhum dos settings gráficos do PC. E isto porque se a consola não dá mais RT, pode dar mais rasterização, se não dá mais shaders, pode dar mais pixels, etc, etc.
Basicamente o nível de utilização do GPU alcança um nível que não se consegue alcançar num PC, e mais uma vez, isso faz com que o hardware PC necessário para fazer igual, suba.
Mas se até agora vimos uma comparação hardware por hardware (ou seja, o mesmo hardware em ambos os lados), a realidade é que isso não existe. O hardware das consolas, mesmo tendo uma base comum, não é igual ao hardware que encontramos no PC.
A realidade é que desenvolver um GPU para uma consola não passa por pegar em hardware e usa-lo. O hardware é totalmente customizado, e optimizado na sua criação de forma a ter não só melhores performances, como também, e mais importante que o resto, ter melhor rendimento.
O rendimento interno de um GPU faz toda a diferença. Um GPU de 10 Tflops aproveitado a 90% rende 9 Tflops. Mas um de 12 aproveitado a 70% só rende 8,4 Tflops.
Para este rendimento temos de ter um API de baixo nível, e o mais baixo possível, e isso já vimos que só se consegue quando o hardware é único, logo não podemos comparar o API de uma PS5 com o DirectX do PC (A Xbox tem uma versão melhorada). Apesar de ambos se denominarem APIs de baixo nível, na realidade estão em patamares completamente diferentes. E desde que devidamente utilizado, o API da PS5 consegue que se obtenham resultados fantásticos.
A questão depois é que um API de baixo nível é mais afastado da linguagem humana, e isso implica que a facilidade de uso cai, pelo que o domínio deste API requer prática com a consola.
Mas o rendimento não vem só do API. Vem também das alterações ao hardware.
Pegando nas alterações mais conhecidas da PS5, vamos ver o que foi implementado para melhorar a eficiência da consola.
Ausencia de Check-In
Quando os dados são lidos de um media de armazenamento, os dados não se encontram diretamente usáveis. Basicamente os dados são lidos para a RAM onde são trabalhados de forma a se tornarem utilizáveis. Uma vez utilizáveis, os mesmos são movidos para os endereços de RAM finais, onde aí sim, estão em condições de serem usados.
Este tratamento engloba, entre outras coisas, descompressão de dados, que terá de ser feita ou pelo CPU ou pelo GPU. No caso de ser pelo GPU é mais rápido, mas isso não evita que os dados uma vez descomprimidos tenham de dar entrada na RAM, já descomprimidas, gastando uma largura de banda superior ao que aconteceria se entrassem comprimidos.
A questão é que na PS5, os dados entram na RAM prontos a serem usados. Isto quer dizer que o SSD na prática pode ser utilizado como se fosse RAM. Uma RAM com menor velocidade, mas mesmo assim RAM pois os dados entram na memoria Viva sem necessitarem de tratamento, descompressão ou uso de largura de banda, e prontos a usar, poupando-se assim processamento, salvando-se largura de banda, uso de RAM, e poupando-se ciclos de relógio que podem ser usados em outra coisa.
Descompressão por hardware
Como Linus da Linus Tech descobriu à força, nem um Threadryper de 64 núcleos consegue descomprimir um fluxo de 5 GB/s comprimido nas taxas que o Kraken oferece, sem prejudicar tremendamente a sua performance. A PS5 faz isso graças a um descompressor hardware.
O PC resolveu mais recentemente esse problema com o uso do Direct Storage, mas a realidade é que mesmo assim há utilização de recursos. Gasta-se largura de banda, RAM do GPU, e recursos do GPU. A situação é quase imperceptível em sistemas melhores, mas não deixa de ser uma realidade que entre 0 e qualquer outra coisa a diferença é sempre uma realidade.
Cache Scrubbers
Os cache Scrubbers são algo que pura e simplesmente não existe no PC.
O que fazem os Cache Scrubbers?
Bem, numa máquina normal o que acontece é que as caches são cheias para o processamento, e o seu conteúdo só é trocado quando o processamento da integra do seu conteúdo está realizado. Isto acontece devido a que a limpeza das caches é um processo penoso a nível de ciclos de relógio, pelo que se evita ao máximo mexer nas mesmas.
O problema surge quando acontece o que se chama de um cache miss. Se os dados que foram enviados para a cache, contando serem usados, não se confirmarem, e for necessário outro dado não presente, o que acontece mais vezes do que se desejaria, há a necessidade de se proceder à troca do conteúdo da cache, pagando-se a penalização em ciclos de relógio para este processo (que podem variar entre os 800 a 1000 ciclos se for necessário recorrer à RAM. Se for apenas à cache L2 a coisa pode rondar os 100 ciclos.). Se tivermos em conta que podem ocorrer largos milhares de cache misses por segundo, percebem que esta situação penaliza tremendamente a performance do GPU, cujo rendimento efetivo cai face aos Tflops anunciados.
A ideia dos cache Scrubbers é resolver esse problema. Basicamente eles permitem aceder à cache a qualquer altura, e trocar os dados que já foram processados por novos. Isto impede a necessidade de se trocar todo o conteúdo da cache, podendo-se trocar apenas o necessário. Segundo um estudo académico que publiquei aqui em 2020, os cache Scrubbers podem reduzir o impacto dos cache misses em 50%, aumentado tremendamente a eficiência interna do GPU.
Conclusões
Resumidamente, um GPU de consola não só usa um software que lhe tira mais rendimento, como vê código optimizado para as suas especificidades, e tem ainda melhorias internas que lhe melhoram a eficiência.
Ignorar isto e fazer comparações diretas ao hardware PC é tapar o sol com uma peneira. A coisa não é bem assim, seja no GPU, seja no CPU, o rendimento das consolas é mais alto.
Isto torna as consolas melhores que o PC? Não! Há sempre forma de se adquirir hardware PC mais capaz e melhor que uma consola. E isso é inegável! Agora o que se pretende aqui deixar percebido não é que as consolas são melhores que o PC. É que o hardware das consolas bate acima da sua cintura, obtendo performances que superam o que o hardware equivalente de PC faz. E é por isso que hardware mais potente se revela necessário para fazer o que estas fazem.
Agora, o rendimento da consola vai depender de quem a usa, e do domínio que essa pessoa ou equipa possuem sobre o hardware, sendo que muitas vezes, muitas equipas, se limitam a converter os seus jogos de PC para a consola usando a versão de alto Nível do API da PS5, e ignorando as especificidades do seu hardware para optimização, com resultados maus na consola. E consequentemente que, da mesma forma que, num caso podemos ver a PS5 a ser batida por um GPU modesto, outros casos há onde GPUs bem melhores não fazem grande diferença.
Acho curioso você nao falar que a GPU do PS5 Pro esta sendo subutilizada por aquele Ryzen 2 a 3.8Ghz com 8 MB de L3.
Troquemos ela por um Ryzen 5 9600 que tem 6 núcleos e não 8, pra vermos a mágica acontecer. 5.4Ghz e 32 MB de L3. Os 50% de vantagem virariam 70% ou mais.
Nada gargala mais uma GPU que um CPU que não a acompanha.
Seus quase 600 GB/s de banda de memória já estão otimos.
Mas sei porque fizeram isso. Por facilidade com compatibilidades.
Nem com quase todos os jogos tendo modo 60fps com resolução inferior, logo sendo GPU “garagalo”, nem a realidade, faz os caras pararem com esse papo de “cpu gargalo”
Principalmente, nem um artigo dizendo o que o PS5 tem de diferente do PC para diminuir o uso da CPU serve para encerrar esse papo de “cpu gargalo”
Deixa eu adivinhar, uns anos atrás vc estaria aqui falando de “clock variável” e como na verdade o PS5 é “9TF” assim como hoje fala do tal “CPU gargalo” que não tem base nenhuma em realidade, apenas no “eu quero acreditar”
Vinte anos do mesmo papo… em 2008 vc estaria aqui escrevendo como “blu ray é ruim para jogos” e que “tem que gravar várias vezes no disco o mesmo dado pq o BR é lento” o “gargalo do blu ray no PS3” LOL
O teu problema é pensares em modos PC.
Num sistema informático um CPU limita um GPU quando o número de draw calls solicitado não consegue ser aguentado pelo CPU.
Qual é este limite? Não sabes pois não há software de análise de ocupação ao hardware que consiga dar um valor único dado que todos CPUs de PC tem cachês diferentes, velocidades de relógio diferentes, núcleos diferentes, arquiteturas diferentes, inseridos em sistemas com RAM diferente, Chipset diferente, etc.
Os APIs de baixo nível, a vantagem que tem é que as draw calls passam a ser muito mais básicas e isso permite ao CPU debitar muito mais. Foi esse o princípio por detrás do Vulcan, do DX12, etc.
Mas esses APIs não são verdadeiramente de baixo nível. E não são porque pelos mesmos motivos que não há um software de análise de sistema completamente eficaz, como o que refiro em cima, estes APIs pela diversidade de hardware, também não conseguem ir ao metal.
E nesse sentido, logo aí morre a comparação do CPU da PS5, que por acaso nem é um Ryzen 2 normal, mas sim costumizado, com o suposto equivalente PC.
Dizendo tu que és programador, quer-me parecer que nunca programaste num nível mais profundo, explorando o hardware, pois se o fizeste deverias conhecer esta realidade do PC, mesmo que não conheças a das consolas.
Ora nas consolas esse software de análise de ocupação do sistema tambem existe. E quem tem o melhor dos melhores é a Sony. Um software que, pelo facto de o hardware ser único, é capaz de te fornecer a ocupação de cada um dos componentes do sistema. Algo que pode não servir de muito a programadores que não queiram optimizar o seu código, para uso de outras partes do GPU, mas que fornece à Sony os dados de uso do hardware da sua consola.
E o que ela viu foi que o seu CPU aguentava com este GPU, aumentado apenas em 10% a performance.
Sim, a Sony não meteu ali um GPU à sorte. O GPU foi desenvolvido especificamente para a consola. Criado à medida para o hardware e garantido que a totalidade do hardware tem as capacidades suficientes para o que se pretende.
Daí que se dizer que o CPU limita o GPU é algo que nem tu podes dizer que acontece, nem eu posso dizer que não acontece. Agora o que posso dizer é que o sistema tem as performances para o qual foi concebido. Nem mais… Nem menos. Pois é por isso que se gastam milhões a desenvolver estas peças e não se usam peças de prateleira.
Ainda por cima dizes um grande disparate, pois os 50% são o que as ROPS debitam a mais. Mesmo um CPU 50x mais rápido não consegue alterar essa realidade.
Da mesma forma, o RT 3x mais rápido depende apenas das TMUs e da largura de banda. O CPU não é tido e nem achado.
A resolução sim, teria impacto no CPU se os FPS se mantivessem. Mas como por norma nas consolas ao aumentares os FPS a resolução cai (daí o PSSR para compensar), o impacto no CPU é, muito pequeno, podendo até este ficar menos ocupado, e daí o aumento de apenas 10%.
Deixa os jogos novos falarem, Mário. Quando se precisar de uma 4080 ou mais pra bater a pro em todos os jogos ele vem com a narrativa que determinado jogo está mal otimizado no PC. É SEMPRE A MESMISSÍMA ENCHEÇÃO DE SACO!
Em média, como o John Romero disse, precisas de um hardware 30% superior no PC para igualar uma consola.
A questão da Pro, que pode alterar isso, é que o seu RT é baseado no RDNA 4, e como tal muito mais comparável ao da NVidia.
Eu gostava de ver 2 jogos de um estudio Sony na consola para mostrar a evolução, mas pelo andar da coisa, se virmos 1 de cada um, será uma sorte.
Uma CPU de Q4 de 2024 contra uma de Q2 de 2019.
Vamos Mário. Não tá difícil aceitar que é verdade que o Pro renderia mais.
Recorrendo ao GPT, apenas porque ele gosta de explicações longas, e aparentemente o que eu estou a dizer não te chega.
—
Estás a perguntar se um CPU melhorado sempre resulta em ganhos de desempenho na GPU. A resposta é: depende do tipo de gargalo (bottleneck) que existe no sistema.
Como o CPU influencia a GPU?
A GPU processa gráficos, mas depende do CPU para fornecer os dados necessários (posições, físicas, IA, etc.). Se o CPU for lento, a GPU pode ficar subutilizada, esperando por novas instruções.
Quando um CPU melhor traz ganhos?
1. Jogos CPU-dependentes (como simuladores, estratégia, mundo aberto): Um CPU mais rápido pode permitir que a GPU trabalhe mais, aumentando os FPS.
2. Jogos em altas taxas de FPS (144Hz, 240Hz): Aqui, um CPU mais forte reduz bottlenecks, garantindo que a GPU possa renderizar mais frames.
3. Multiplayer e processamento em segundo plano: Jogos com muitos jogadores online, NPCs e física exigem um CPU forte para evitar quedas de desempenho.
Quando o CPU não faz diferença?
1. Jogos GPU-limitados (gráficos ultra em 4K, Ray Tracing): Aqui, a GPU é o fator principal. Melhorar o CPU não aumenta FPS se a placa já estiver no limite.
2. Quando já tens um bom equilíbrio: Se o CPU e a GPU já estão bem ajustados (por exemplo, um Ryzen 7 5800X com uma RTX 3080), trocar o CPU pode trazer poucos ganhos.
Queres saber como isso afeta um hardware específico que estás a usar ou a considerar?
—
Uma PS5 pro melhoraria com a troca do seu CPU para um Ryzen 5 9600?
—
Não necessariamente. A PS5 Pro foi projetada para ter um equilíbrio entre CPU e GPU, e trocar apenas o CPU por um Ryzen 5 9600 não garantiria um aumento significativo de desempenho.
Razões para isso:
1. A arquitetura da PS5 é otimizada – O CPU e a GPU trabalham juntos dentro do mesmo SoC (System on Chip), e o software da consola já está ajustado para esse hardware.
2. O GPU é o fator principal na maioria dos jogos – A PS5 Pro já tem um foco maior no desempenho gráfico. O bottleneck costuma ser a GPU, não o CPU.
3. Compatibilidade e software – Consolas não permitem trocas de hardware como num PC. Mesmo que fosse possível, o firmware e os jogos são feitos para o chip original, então um novo CPU poderia não ser reconhecido corretamente.
Se o objetivo for mais FPS ou melhor desempenho, o principal ganho da PS5 Pro virá da sua GPU melhorada, do FSR (upscaling da AMD) e da possibilidade de rodar jogos a 4K com maior fluidez.
—
Agora acrescento que esse CPU nunca funcionaria melhor na PS5 porque o software distribui o seu trabalho por 8 nucleos e isso é feito manualmente e não de forma automática, para total optimização. Nesse sentido 6 núcleos nem sequer funcionariam.
Sinto necessidade de repetir mais uma vez. Parem de olhar para as consolas como PCs. Elas não são PCs, e muito daquilo que são realidades no PC não se aplicam aqui.
Já bastou a vergonha da DF no início da geração a fazer isso e a meter os pés pelas mãos de forma muito pouco benéfica para a sua imagem.
Mais um excelente artigo Mário, que explica o que muitos defensores de um PC para jogos não querem entender quando dizem que basta a placa tal para ser equivalente a determinada consola. Mas depois percebem que só a placa custa 2/3 x mais para fazer igual comparativamente a uma consola. Quando corre pior num PC é falta de optimização e quando é o contrário o PC é melhor, 2 versões diferentes para justificar o investimento.