Porque motivo o balanceamento de um sistema é relevante, e nesse aspecto o SSD pode fazer a diferença.

Tal como tudo na vida, sempre que o trabalho depende de um conjunto de elementos, o mais lento será sempre o factor limitativo.

Quando olhamos para uma equipa de estafetas de, por exemplo, 4x 100 metros, temos de ter a noção que ter o atleta mais rápido do mundo na equipa, ajudará, mas que tal não garantirá a vitória. Afinal há mais 3 elementos que irão ter de fazer a sua parte. E há igualmente a qualidade na passagem do testemunho. Caso a mesma não ocorra na melhor das situações, haverá direito à perda de valiosos segundos.

Nos sistemas informáticos a coisa funciona um pouco da mesma forma. A máquina processa usando vários elementos em simultâneo, e o rendimento global da mesma ficará sempre dependente do rendimento do conjunto. Este é o motivo pelo qual o balanceamento de um sistema se torna relevante, ao ponto de ele poder garantir performance que de outra forma é inacessível.

Há várias situações que são nossas conhecidas que demonstram isso. Vamos ver algumas:

Por norma, o elemento mais capaz de um sistema é o GPU. Ele é o elemento mais definidor dos resultados, e daí o interesse em ter o mesmo a debitar o máximo da sua capacidade.



Mas a questão é: Como sabemos se ele está a debitar o máximo que pode?

Imaginemos uma consola imaginária. Tal como as actuais consolas ela usaria um sistema x86, com um GPU que não interessa definir, e um CPU que seria equivalente a um Ryzen 5 2400G.

O jogo era optimizado ao máximo… e obtínhamos 64 fps no mínimo, e 97 fps no máximo. Um jogo que poderia perfeitamente ser bloqueado nos 60 Hz.

Será que este sistema estava devidamente balanceado para este GPU? Eventualmente, dentro do hardware que ali estava, ele poderia estar. Mas o certo é que isso seria um balanceamento limitativo, um balanceamento que se tinha limitado a optimizar o hardware existente para funcionar o melhor possível.

Ora a construção de uma consola não é apenas isso. Basicamente não há uma escolha de um CPU, um GPU, uma RAM, um disco, etc, etc, e depois junta-se tudo e tenta-se optimizar o conjunto.

Se fosse isto, não havia a necessidade de vários anos de preparação do sistema, criação de hardware e testes e testes consecutivos.



Basicamente numa consola tenta-se ter isso, mas muito mais. Tenta-se escolher um GPU que não fique sub aproveitado pelo CPU. um CPU que puxe ao máximo pelo GPU, uma memória que alimente convenientemente tudo isso, e um disco que seja capaz de manter a qualidade desejada.

É este equilíbrio, que nunca é perfeito, que demora anos. É por isso que são desenvolvidos sistemas específicos, que são testados, optimizados, que lhes são inseridas tecnologias, muitas delas que ainda não existem no mercado, que se gastam milhões e milhões em desenvolvimento. Para garantir que o produto final, quando no mercado, e se devidamente utilizado, pode perfeitamente ir mais longe do que um sistema com performances equivalentes que não sofra as mesmas optimizações.

Não fosse isso, bastava montar-se um PC, usando peças já disponíveis. Ficaria certamente bem mais barato de desenvolver.

Ora no sistema de cima, vamos agora dar um nome ao GPU. E ele passaria a ser uma GTX 1080 Ti.

Sabendo-se que o processador era o Ryzen 5 2400G, será que o sistema estava bem balanceado?



Claro que não!

O CPU

Vamos trocar esse processador por um Core i7-8700k e ver o que acontece!

E o que vemos é que os FPS passam para 105 fps mínimo, e 147 fps máximo. Ou seja, com uma GTX 1080 TI, a escolha do Ryzen estava mal feita. Ou o processador teria de subir, ou o GPU teria de descer. Mas tal como estava, o sistema não estava equilibrado, uma vez que o cliente estava a pagar por um GPU caro que nunca iria usar a 100%

Para informação, estes valores que usei em cima, são reais. São de testes no PC do Battlefield 5. E esses testes estão aqui:



Como vemos, a GTX 1080 Ti só começa a apresentar valores perto do seu real potencial a partir dos Core i7-7700K. A mudança de CPU é essencial para o equilíbrio.

A realidade é que o sistema, tal como estava com o Ryzen 5 2400G e uma GTX 1080 Ti seria bem mais caro do que o mesmo sistema com, por exemplo uma AMD RX 580. Mas devido às limitações do CPU, provavelmente os resultados não seriam muito diferentes.

Ou seja, para uma consola com essas especificações, esse segundo hardware seria melhor escolha. Permitiria um sistema com performances semelhantes, mas muito, muito mais barato. Acima de tudo seria um sistema bem mais equilibrado e balanceado.

Ora o que isto nos mostra é que um GPU potente não é o único ponto de interesse. O CPU conta igualmente para as performances do sistema. Ter um grande GPU e um CPU que não o alimenta não garante melhores performances do que num sistema com pior GPU mas com um CPU devidamente adequado a ele. E isto independentemente dos Tflops envolvidos, uma medida que apenas nos mede a performance bruta teórica.

Nos casos de cima, os vários testes do Battlefield, o GPU é o mesmo… Os Tflops são os mesmos! A capacidade ou balanceamento do sistema para chegar ao rendimento máximo é que não é igual.



E esta situação não se aplica apenas ao CPU e ao GPU… Aplica-se com absolutamente todos os elementos do sistema. Algo que pelo que tenho lido nos comentários não parece ser uma consciência colectiva.

A memória (largura de banda)

Apesar de o CPU ser o factor mais limitativo, a memória também toma um papel preponderante. E o motivo é simples: É ela quem fornece a largura de banda, ou seja, é ela quem define a quantidade de dados que podem ser transmitidos pelo sistema entre os vários componentes. E naturalmente chegar mais informação e mais rápido, permite evitar tempos mortos no processamento em que, de outra forma se estaria à espera de dados.

Para percebermos a total relevância da RAM temos de bloquear um sistema, alterando apenas a RAM para vermos a diferença. Naturalmente que sistemas mais rápidos depois necessitarão de mais largura de banda do que sistemas mais lentos. Mas aqui vamos pegar num sistema fraquinho e limitado. Um Intel Pentium G4560, a correr o GTA V no seu GPU interno!

Claro que aqui estamos perante um sistema muito limitado, mas perfeitamente capaz, que vai crescer pouco com o aumento da largura de banda por isso mesmo.

Este sistema consegue perfeitamente correr o GTA 5, como podem ver em baixo (de notar que há aqui uma escolha muito variada de configurações de forma a se obter a performance).



Ora este sistema a correr o jogo com os parâmetros de defeito do jogo para a configuração High, obtém os seguintes valores:

No gráfico podemos ver três valores. O primeiro (em baixo) é o sistema original. O de cima (meio) é exactamente igual, mas com um sistema limpo, isto é, desligando tudo no windows que são serviços supérfluos, mas que consomem CPU e memória).

Já o valor de cima mostra os resultados com o mesmo sistema optimizado, mas perante a mudança da RAM para o máximo suportado pelo sistema. E vemos que, em média, esta pequena mudança na memória, traz um ganho médio na ordem dos 10%.



Percebam assim, que num GPU bem mais exigente, a trabalhar num nível de detalhe de topo e como jogos dos mais recentes, a largura de banda estar devidamente optimizada para ele se revela algo extremamente relevante. E não só para ele, mas igualmente para o CPU, para que este não deixe de poder debitar igualmente sem gargalos, e assim alimentar o GPU.

Daí que, apesar de parecer menor, a relevância da performance da RAM é extrema. Sem estar devidamente bem equilibrada, o CPU e o GPU sofrem, e as performances caem!

Mas agora uma pergunta: Será que uma largura de banda devidamente optimizada pode trazer gráficos melhores?

Aqui, até agora, falamos da largura de banda como permitindo ao GPU melhorar performances. E claro que mais performance representa mais cálculo, e assim sendo mais gráficos. Isso é consensual!

Mas a pergunta que pretendo fazer vai mais longe… Pode um sistema devidamente alimentado ter melhores gráficos que um outro mais potente, e pior alimentado pela RAM?



Aqui é que está aquilo que pode ser uma grande surpresa para alguns… mas sim, pode!

Se bem se recordam, em 2014 falamos sobre as ROPS do GPU e a forma como estas ficam limitadas pela largura de banda. Basicamente um sistema ser limitado pela capacidade de cálculo dos Raster Operators do seu GPU, ou pela incapacidade da memória em os alimentar.

Por exemplo, relembrando o caso da PS4:

Uso de shaders 8 bits:

PS4 – 32 ROPS – 800 Mhz*32*4=102 GB/s – A consola, ao contar com 176 GB/s de largura de banda, não fica limitada pela memória neste tipo de processamento, ficando apenas limitada ao que as ROPS podem processar.



Uso de Shaders 16 bits:

PS4 – 32 ROPS – 800 Mhz*32*8=204 GB/s – A consola não pode levar as suas ROPs ao máximo, uma vez que a largura de banda de 176 GB/s não é suficiente para as alimentar.

Se imaginarmos uma outra consola PS4, exactamente igual, mas com 410 GB/s de largura de banda, o que víamos é que esta não estaria limitada da mesma forma no uso de shaders 16 bits. Aliás ela não estaria sequer limitada com shaders de 32 bits. E apesar de as suas ROPs não debitarem mais por isto, a realidade é que os resultados dos seus shaders podiam ser visualmente muito mais atractivos. Ou seja, graficamente superiores!

De notar que isto não é no entanto uma limitação da PS4, mas apenas uma demonstração teórica. Não há nenhum caso onde os shaders saturem a largura de banda, e nem sequer nenhum caso onde os shaders sejam todos do mesmo tipo. Mas é um bom exercício teórico para se perceber limites e perceber até que ponto a largura de banda pode ajudar a melhorar o grafismo.

O disco

O elemento até hoje mais negligenciado é o disco rígido. E isto porque os jogos são feitos para processar ambientes fechados onde apenas a informação que está na memória é usada. O disco serve assim apenas para ir refrescando esse conteúdo com novos dados.



A grande questão é que, cada vez mais, os jogos são de mundo aberto. E as limitações dos discos em fornecer grandes quantidades de dados são cada vez mais notórias.

Os programadores tem vindo a desenvolver várias técnicas que limitam o processamento ao que está no campo de visão do jogador, (com um extra de cada lado para prever movimentos rápidos e dar tempo ao sistema de ir processando o resto), e isto no sentido de optimizar a pouca informação que o disco fornece para a zona que o jogador efectivamente necessita.

Mas a realidade é que o disco não é muito diferente da memória. Quando usado em jogos de mundo aberto, onde este faz streaming da informação, ele deixa de ser uma mera unidade de armazenamento para fazer o papel da RAM. Ou seja é ele que fornece a informação do mundo à RAM, que por sua vez a fornece ao GPU. Basicamente, o que isto significa é que a quantidade, e qualidade do que ali é apresentado depende daquilo que o disco consegue fornecer.

Este é aliás um dos motivos pelos quais os discos apareceram nas consolas. Os leitores de Blue-ray não possuem a capacidade de leitura necessária para fornecer dados em quantidade suficiente para as necessidades dos sistemas actuais. E daí o uso dos discos, que permitem elevar isso para valores impensáveis pelos leitores de BD. Basicamente esta capacidade de fornecimento de dados é a que define a qualidade gráfica que o GPU pode processar para o mundo, a qualidade da geometria, a velocidade a que o jogador se pode mover (porque o sistema tem de limitar essa velocidade para garantir que tem tempo para receber os dados e os processar) e muito mais.

Ora a colocação dos SSDs, e quando mais rápidos, melhor, vem colmatar aqui um problema naquele que é o elemento mais lento do sistema. O SSD vai permitir ganhos na ordem das várias dezenas de vezes nas capacidades de transferência de dados. Basicamente isso vai garantir que a memória está constantemente alimentada, e que o GPU vai conseguir usar toda a sua performances no processamento de mundos abertos. Tal como vimos o mesmissimo GPU a debitar mais devido ao aumento do CPU, poderemos ver o mesmo GPU a debitar mais devido ao aumento da velocidade de recepção de dados do Disco. No fundo a situação não é muito diferente, pois como perceberão, o GPU só pode processar o que lhe chega, mesmo que tenha performance para mais. Mais uma vez ficaremos perante um caso onde, com os mesmos Tflops, poderemos ter rendimentos completamente diferentes.



Conclusões

O fascinante na nova geração acaba por ser um pouco isto. Tal como o nosso leitor Shin tem vindo a dizer, esta geração não será uma geração como a anterior. Será uma geração onde o balanceamento da consola poderá ter mais relevância do que a performance bruta em si. Trata-se de criar uma geração onde se garante que o poder existente pode ser facilmente explorado totalmente a 100% do tempo, e não de ter mais poder de processamento. Os aumentos brutais que vamos ter na largura de banda e na velocidade do disco impõem isso mesmo. Um sistema menos balanceado, mesmo que com mais Tflops, poderá não ser o que obtém melhores performances.

Este é aliás o motivo pelo qual escrevo esta artigo. Sobre as novas consolas, e de oficial, conhecemos apenas uma caixa, a da Xbox Série X. Tudo o resto é especulação, com rumores para todos os gostos.

Agora o que é certo é que perante as novidades que esta geração trará, não podemos ignorar que o balanceamento será fulcral. Ele pode virar os pratos da balança!

Daí que sobre as novas consolas há muito ainda que se saber, e muito ainda que se discutir. E mesmo quando soubermos performances em Tflops não saberemos tudo. Especialmente agora que o Ray Tracing aparece à mistura, e onde a eficiência e uso de recursos no processamento do mesmo será igualmente fulcral.

Daí que muito se fala, muito se diz. Mas tal como em todos os artigos anteriores, refira-se: Sem se saber absolutamente tudo sobre as futuras consolas, não saberemos verdadeiramente nada. Se na anterior geração, era fácil ver que os Tflops  seriam o elemento diferenciador, aqui há novos factores que nos dizem para ter cuidado com isso. Porque o balanceamento de uma consola pode aproximar ou afastar mais os valores que os Tflops aparentemente indicam.



error: Conteúdo protegido