Quando a PS5 foi anunciada, a confusão foi imediata. O termo Continuous Boost usado por Cerny foi imediatamente confundido com os Boost Clocks do PC, e eis que surge a ideia que a PS5 não conseguiria sustentar por muito tempo as suas performances. Tal não é o caso pois as duas coisas são diferentes, e vamos explicar em quê! E pelo caminho falaremos do smartshift.
Nota: As explicações que se seguem são relativamente simplificadas no sentido de tornar a explicação acessível a todos.
Os Boost Clocks
Uma caracteristica que foi anunciada para Processadores e que se tornou um standard no PC foram os boost clocks. Tanto usados nos CPUs como nos GPUs esta metodologia basicamente permite que um processador entre num modo de overclock sustentado acima da sua velocidade base normal.
Mas esse overclock, apesar de sustentado não pode ser mantido por muito tempo. Basicamente este overclock serve para que se regularize performances em situações de maior uso do processador(es), não criando quebras de performance, mas não é verdadeiramente uma performance que seja tomada de forma permanente em conta pelo GPU que continua a adaptar-se aos jogos baseado naquilo que é a sua velocidade de relógio base.
Basicamente os boost clocks apareceram para trazer os overclocks para as massas. Sendo este um processo que envolve o aumento das velocidades de relógio, e eventuais ajustes à voltagem para manter o Processador estável, esta é uma operação perigosa para quem não sabe o que está a fazer. Os Boost clocks basicamente fazem-no de forma automática e segura.
A questão é que o utilizador não escolhe a velocidade de boost. A única velocidade que tem garantida é a base! De resto, quando o sistema se apercebe que poderia ganhar com mais ciclos, ele vai fazer uma verificação da temperatura do chip. E caso a térmica esteja dentro dos valores pré definidos, ou seja, se houver margem térmica para o overclock, ele eleva-se a uma das velocidades de Boost. Pode ser a máxima, pode ser outra qualquer. Tudo vai depender da margem térmica e inclusive da temperatura ambiente!
O tempo em que está em Boost tambem vai depender de dois factores. Da necessidade do boost, e da margem térmica. Se um deles não estiver disponível, o processador regressa à sua velocidade base.
Como percebem, esta situação tem depois outras implicações. Dado que a térmica é directamente proporcional aos consumos de energia, e estes dependem da conjugação da velocidade com a ocupação do processador , estas situações de boost podem acontecer por tempos indeterminados quando a carga do processador é baixa, ou por curtos espaços de tempo quando ela é alta. Por exemplo, se um jogo apenas utilizar um dos núcleos do CPU, o boost provavelmente pode ser mantido sempre. Mas quantos mais usar, ou seja, quanta mais ocupação se der ao hardware do processador, maiores são as probabilidades de ele poder actuar por pouco tempo.
Basicamente, como se percebe, esta situação implica que os relógios do processador não estejam bloqueados, pois somente dessa forma ele pode alterar a sua velocidade.
E assim funcionam os Boost Clocks.
O Continuous Boost
O termo Boost surge de uma associação ao caso anterior… As velocidades de relógio serem variáveis.
A diferença aqui é que, como o nome indica, o Boost é contínuo. Ou seja, não vai variar conforme a margem de temperatura.
Isso acontece pelo facto que a PS5 usa um sistema em que os consumos energéticos são bloqueados. E isso quer dizer que a temperatura máxima que os processadores podem atingir fica fixa.
Desta forma a velocidade de relógio base, aquela a que o processador vai funcionar garantidamente bem, passa a ser a mesma que a velocidade máxima de boost. E isto garante que o Boost é continuo!
Mas se é assim, porque se usa o termo Boost? Isto não é basicamente bloquear as velocidades num valor mais alto?
Na realidade não! O boost continua a existir, mas apenas funciona ao contrário!
Se no caso dos Boost Clocks o processador sobe a velocidade de relógio quando precisa de mais, descendo-a quando não precisa de mais do que o normal, aqui a coisa funciona de forma diferente.
Aqui o processador não sobe a velocidade quando precisa de mais, uma vez que ela tem a sua base no máximo. O que acontece é que ele desce a sua velocidade quando não precisa, voltando-a a colocar nos valores base quando volta a precisar.
Pode parecer uma questão de semântica, mas não é. E não o é porque ao contrário do caso anterior, aqui há a margem térmica para se manter as velocidades continuamente no máximo, sendo que as velocidades só descem se não forem mesmo precisas (peço desculpa pela colocação da seta na imagem de baixo não ser exactamente debaixo da barra, mas ao desenhar a imagem não deixei margem para isso).
E isso porque ao se bloquear os consumos energéticos, bloqueia-se a térmica.
Mas para se usar este esquema, que até permite alcançar velocidades de relógio maiores uma vez que não há margens de segurança para cima no caso de o sistema aquecer, dado que aqui o processador garantidamente não aquece devido consumos bloqueados, perde-se a margem em caso de um aquecimento causado por um factor inesperado ou incontrolado.
E é aqui que entram as frases de Cerny relativamente ao downclock que tanto confundiram tanta gente. Porque se um sistema que se limite a estar bloqueado na velocidade, ao não esticar as velocidades de relógio ao limite tem margem para sobreaquecer, este sistema de Continuous Boost, ao esticar as velocidades de relógio ao máximo não o pode fazer. E caso aconteça uma situação não prevista, situações raras na vida das consolas, mas que podem eventualmente acontecer pontualmente, e que num caso de velocidades bloqueadas levariam o sistema a sobreaquecer, aqui neste caso o sistema tem de reagir de outra forma… fazendo um downclock.
No entanto, dado que o aumento de consumo energético sobe exponencialmente com a velocidade, basta uma descida de um par de pontos percentuais na velocidade para se consumir poupar 10% no consumo de energia, e como tal descer as temperaturas para valores normais. Isto significa que, em caso de descontrolo, uma mera redução de 50 Mhz colocará o sistema de novo nos eixos.
E assim funciona o Continuous Boost.
O que é o Smartshift?
Com um sistema como o de cima, com velocidades variáveis, e controlo de consumos energéticos, ficam reunidas as condições para poder entrar em jogo o sistema Smartshift da AMD.
Basicamente para percebermos como este sistema funciona há que ter em conta que temos de estar perante um APU, ou seja um chip único onde os consumos e a térmica, são avaliadas pelo silício todo, e não pelas partes constituintes.
Isso quer dizer que a gestão de energia e térmica é feita pela globalidade do APU e não pelo CPU e GPU como partes separadas.
Ora num sistema normal, como acontece com a nova Xbox, a nível de energia, o que temos é o seguinte:
Basicamente há uma energia dedicada do CPU e uma energia dedicada ao GPU. Cada um opera de acordo com a energia que tem disponível!
Passar esse consumo de energia, seja num ou noutro componente, levará o APU a sobreaquecer. De notar porém que por norma o CPU nunca é o problema, sendo que este está sempre no GPU uma vez que os seus consumos são muito mais elevados.
Mas no caso da PS5, isso não acontece assim!
Primeiro porque já vimos que a PS5 não pode sobreaquecer. Se alguma vez ela passar o limite num daqueles casos que acontecem um par de vezes ao longo de uma geração (e como já referido, por norma o GPU é quem o pode fazer), a PS5 poderá ter de fazer um downclock para manter os consumos dentro do estimado e a térmica sob controlo.
Mas aqui entra em jogo a tecnologia Smartshift da AMD. Para evitar ao máximo que esse downclock aconteça.
Imaginemos então que o GPU entraria numa dessas raras situações e passaria o seu limite de energia.
Por norma ele faria downclock, mas com o Smartshift isso não funciona assim!
Antes de fazer downclock o sistema vai analisar o que o CPU está a fazer, e verificar se ele está a usar a sua quota de energia.
Se isso acontecer, o GPU não tem outra alternativa senão efectuar o downclock.
Mas e se o CPU não estiver a usar a sua energia toda?
Bem, basicamente o Smartshift o que faz é passar a energia não usada do CPU para o GPU, permitindo que este calcule a sobrecarga não estimada sem que o APU como um todo passe a sua quota energética e térmica.
Ora como podemos ver no gráfico, o GPU fica com a energia do CPU. E dessa forma pode calcular a carga de trabalho extra.
Basicamente com esta metodologia, ajustada ao milésimo de segundo, é possível não só evitar-se o passar-se as energias previstas, como ainda obter-se uma ganhos de performance face a um sistema igual (mesma velocidade de relógio e Tflops), com velocidades de relógios fixos. O exemplo da AMD é de cerca de 10%. A Nvidia, com a sua tecnologia equivalente Max-Q refere valores de ganho máximos da mesma ordem.
Naturalmente que esta situação vai criar confusão a alguns… mas se a PS5 tem um limite de 10.28 Tflops, como é que ela pode processar mais 10%? E se processa mais é porque antes não estava nos 10.28 Tflops!
A dúvida é compreensível… mas lá está… Tflops é uma medida teórica de performance. E passo a dar um exemplo para que se perceba.
Imaginemos um sistema com velocidades de relógio fixas. Pode ser a Xbox série X!
A sua performance é calculada multiplicando o número de CU por duas instruções por ciclo, pela velocidade de relógio por 64 stream shaders em cada CU!
Assim temos: 52*2*1825*64? = 12 147 200 ou 12,15 Tflops!
Mas olhando para a formula, o que é que lá está que depende da carga de trabalho que o GPU está a realizar?
Nada! Zero! E isto mostra como os Tflops enganam!
Se arrancarem a consola e a puserem nos menus sem arrancar ou fazer nada: Quantos Tflops tem? 12,15. Quantos estão a usar? Basicamente 0 (Zero)
Agora arrancam um pequeno jogo Indie: Quantos Tflops tem? 12,15. Quantos estão a usar? Um par deles!
Basicamente como veem, o fixar a velocidade de relógio apenas nos indica a máxima performance teórica do GPU. Mas não o rendimento que tiram desses Tflops, algo que depende da ocupação do GPU. Os 12.15 Tflops Xbos One, ou os 10.28 da PS5, são o valor que o GPU, com a velocidade no máximo e ocupação no máximo, poderiam alcançar!
Mas nunca nada, mas mesmo nada usa um GPU ao máximo! Isso é uma medida teórica! Isso implicaria que todas as unidades de cálculo do GPU estivessem a ser usadas a 100%, e com a velocidade no máximo. E isso nunca acontece!
E foi exactamente por não acontecer que surgiu o GPGPU, a capacidade de processamento genérico dos GPUs. Basicamente uma unidade paralela que usa as unidades de processamento do GPU quando elas estão sem fazer nada.
Com o GPGPU foi possível tirar-se muito mais partido das unidades de cálculo, elevando a capacidade real de saída para algo bem mais perto da capacidade máxima teórica do GPU. E isto porque com os mesmos Tflops passou-se a calcular muito mais, dado que o GPGPU permitiu melhorar o uso máximo desse valor teórico.
Mas permitiu leva-lo ao máximo? Não! Não permitiu! Mesmo com o GPGPU há sempre momentos em que os processadores estão sem calcular. E as performances máximas teóricas continuam a ser isso mesmo… teóricas.
Ora como explicamos, essa parte “morta” do GPU, chamemos-lhe assim, varia com a intensidade do uso. E o que esta tecnologia permite é tirar um pouco mais de partido da capacidade máxima teórica do GPU ao permitir um uso adicional que aproxima a saída real do GPU 10% mais dos Tflops máximos teóricos disponíveis.
E isto é o que faz o smartshift.