Se há algo que o mercado da tecnologia informática tem de peculiar é a contra-informação que existe, bem como a quantidade de informação que é passada ao utilizador de forma a confundir o mesmo. O mais chocante é que esta informação por vezes deriva de fontes das quais não devia derivar!
Um bom exemplo vem da Microsoft! Uma empresa com uma plataforma no mercado, que é o windows, e da qual milhões de pessoas dependem todos os dias deveria ser uma fonte credível de informação, mas no entanto tal como uma empresa que luta para ganhar uma posição no mercado a Microsoft inunda o mercado com dados na perspectiva que mais lhe convém, de forma a conseguir impingir o seu produto.
Vejamos a informação oficial lançada pela Microsoft comparativa da sua consola, a Xbox 360 para com a PS3.
O que se segue é informação oficial da Microsoft e não um texto escrito por nós. Note-se contudo que o mesmo foi traduzido, podendo perder parte do seu significado real.
Citando:
“Existem três aspectos críticos ligados à performance de uma consola:
A performance da unidade central de processamento (CPU).
– A arquitectura de CPU da Xbox 360 possui três vezes o poder de processamento genérico do Cell.
A performance da unidade Grafica de Processamento (GPU).
– O desing da Xbox 360 é mais flexivel e possui mais poder de processamento que o GPU da PS3
Largura de banda da memória.
– A largura de banda da memoria da Xbox é cinco vezes superior à da PS3.
Fim de citação:
Apesar de nenhum destes dados ser falso, a realidade é que são analisados numa perspectiva deturpada e com a única intenção de dar a entender uma realidade que não é verdadeira promovendo assim um produto (Marketing).
Gráfico 1 – Poder genérico de processamento
O primeiro gráfico realmente mostra que a Xbox possui o triplo da capacidade de processamento genérico da PS3. Tal deve-se ao facto de possuir três processadores genéricos a 3,2 Ghz. A PS3 possui um único processador genérico, igual aos da Xbox 360 quer a nível de características, quer de velocidade.
Programas de processamento genérico são programas feitos com código genérico que necessita de prever milhares ou mesmo milhões de possibilidades. Exemplos disso são um web browser, o word ou mesmo um sistema operativo. Aplicações deste tipo não executam o mesmo tipo de instruções de forma ciclica e necessitam de prever muitas funções independentes de acordo com o que utilizador faz.
Ora os jogos não são programas de processamento genérico. Qualquer livro básico de programação introduz o utilizador no conceito básico de loop. Um loop contêm toda a funcionalidade que um jogo executa a cada frame e lida com todos os acontecimentos que podem ocorrer no jogo. Um principio importante num loop de um jogo é exactamente o evitar ramos desnecessários uma vez que estes diminuem o tempo de execução . O paradigma de um jogo não é criar casos explicitos para tudo o que possa acontecer, mas programar a natureza das leis das diversas coisas e deixar os objectos interagir entre si de acordo com essa logica.
Este método automático e repetitivo tem de ocorrer para muitos objectos o que representa muita informação a lidar tratada com poucas linhas de código, e é exactamente o oposto do código genérico que usa pequenas quantidades de dados tratadas com muitas linhas de código.
Ora as consolas são computadores que são dedicados a jogos, e como tal, as instruções genéricas, apesar de necessárias não são as mais usadas ou necessárias. A prova mais relevante desse facto está no aparecimento ao longo dos anos de instruções SIMD, dado que o processamento 3D é uma das grandes aplicações para as instruções SIMD. O processamento de muitos vértices é uma operação lenta num CPU normal que teria de os processar individualmente em vez de conseguir processar vários em simultâneo. Por causa disso apareceram ao longo dos tempos instruções SIMD como o MMX, SSE, and 3DNow! de forma a acelerar o processamento 3D. Mesmo operações de filtragem de imagem como algumas que encontramos no Photoshop são melhor executadas em processadores vectoriais (capazes de realizar instruções SIMD). Inteligência artificial, física, geração de terrenos, animações, efeitos de partículas, etc, são operações que correm melhor nesse tipo de processadores. Ora a PS3 foi desenhada a pensar nos jogos e não em aproveitar um processador tradicional, uma vez que a PS3 não vai correr o Word ou programas similares. Desta forma, como auxiliares ao processador genérico a PS3 possui nada mais nada menos do que 7 processadores vectoriais a 3,2 Ghz cada um, e interligados entre si com um bus de interconecção de 4 anéis.
Por aqui facilmente se percebe que a comparação da Microsoft falha em todos os sentidos. Na realidade compara-se a capacidade de processamento genérico que equivale igualmente à capacidade de processamento total do processador da Xbox 360 com apenas um dos 8 processadores da PS3, o PPU, que é a unidade de processamento genérico. O poder de processamento total da PS3 é bastante maior do que o da Xbox 360, especialmente se considerarmos que as componentes acima referidas como a IA, física, etc são muito mais rápidas e capazes quando geradas nos SPU’s da PS3. Comparar apenas a capacidade de processamento genérico numa consola que dado ser feita para jogos apenas precisa de cerca de 20% de processamento genérico, beneficiando depois dos processadores dedicados vectoriais é quase como dizer que “o meu computador é melhor que o teu porque tem as teclas maiores” (com algum sarcasmo à mistura, claro).
Gráfico 2 – Capacidade de processamento em virgula flutuante
Vemos depois que a Microsoft acrescenta um segundo gráfico com a capacidade em virgula flutuante. Aqui a Microsoft reconhece a superioridade do Cell, mas mesmo assim dá dados errados. O que temos ali é a capacidade em virgula flutuante de ambos os sistemas, o tipo de processamento principal no 3D, mas como a legenda indica apenas se refere aos 7 Cells (e cujos valores me parecem baixos, mas não vou aprofundar essa questão). Parece a Microsoft esquecer aqui vários factores:
1º – O gráfico tal como está mostra a capacidade total de processamento em virgula flutuante da Xbox 360. No entanto não mostra a capacidade total da PS3 no mesmo tipo de processamento, pois apenas se refere aos 7 cells. O PPU, é igual a um dos processadores da Xbox e também pode fazer virgula flutuante. Assim o gráfico da PS3 deveria ser acrescido de mais uma fatia igual a 1/3 do gráfico da Xbox 360.
2 – Caso o processador da Xbox 360 estivesse 100% dedicado a virgula flutuante, poderia não ser possível executar a quantidade máxima indicada de código genérico. Assim, para um caso real certamente teríamos de descontar parte do poder de processamento apresentado no gráfico da Xbox. Já no caso da PS3 o PPU ao não estar incluído na análise trataria disso, o que significa que a PS3 não perderia a sua capacidade de cálculo.
Gráfico 3 – Capacidades gráficas
Temos ainda uma comparação entre as placas gráficas das consolas. E se aqui parece existir um equilíbrio, ele é ilusório. OS SPU’s da PS3 são de tal forma poderosos que podem lidar com tratamento gráfico sem abrandar o sistema. Assim estes podem ser utilizados para diversos fins, mas principalmente são usados para aliviar a placa gráfica de trabalhos desnecessários. Uma das sua capacidades é a análise prévia da imagem de forma a fazer um cálculo de occlusion culling, ou seja a análise daquilo que é visível e daquilo que se encontra tapado ou fora do ecrã. Este tipo de processamento alivia tremendamente a carga da placa gráfica que não necessita assim de fazer estes cálculos libertando a sua capacidade de processamento para outros efeitos. Os programadores da Imsoniac liberaram recentemente um PDF sobre métodos de tratamento gráfico nos SPU’s que permitem reduzir a complexidade dos shaders de forma a que a placa os possa fazer de forma mais eficiente. Assim, a comparação da Microsoft mostra como a comparação das placas só por si é ridicula. É que se no caso da Xbox 360 a placa terá de fazer o processamento gráfico sozinha, apenas com as ajudas básicas que existem no universo dos PC’s, a RSX da PS3 conta com uma valiosa ajuda dos SPU’s.
Esta realidade desmistifica igualmente a resposta sobre qual dos sistemas pode possuir melhores gráficos.
Gráfico 4 – Largura de banda
Finalmente vamos analisar o ultimo gráfico. Aqui a Xbox 360 reina suprema sobre a pobre da PS3 com uma largura de banda de 278,4 GB/s sobre apenas 48 na PS3.
Ora acontece aqui algo que não devia acontecer. A Microsoft mistura alhos com bogalhos! Falamos num caso de largura de banda entre dois componentes do sistema, mas no entanto não falamos da capacidade total da consola. De nada me adianta comparar o meu carro com outro dizendo que possuo o motor de um F1, quando na realidade o meu chassis e pneus são os de um smart.
Reparemos na estrutura da Xbox 360
Por aqui vemos exactamente do que estou a falar. A Xbox efectivamente possui uma largura de banda enorme entre a sua memória video dedicada de 10 MB e o seu chip de lógica que permite fazer Z-Buffer e Anti-aliasing. Mas de que adianta referir que temos uma largura de banda tremenda na memória vídeo dedicada de 10 MB quando no acesso à memória RAM apenas possuímos 22,4 GB/s?
E mais, esta largura de banda é a total disponível e tem de ser repartida entre o CPU e o GPU. Ora dado que o CPU tem uma largura de banda máxima de acesso à Ram de 21,6 GB/s (10,8×2), caso o CPU usasse tudo a que tem direito a placa gráfica ficaria com uns míseros 800 MB/s. Pior seria se a gráfica usasse a memória de forma a ser realmente eficiente, pois nesse caso não sobraria nada para o CPU. Verificamos aqui também que o SouthBridge liga também pelo mesmo canal, o que quer dizer que o simples INPUT/OUTPUT dos periféricos vai roubar largura de banda ao resto do sistema.
Já pelo diagrama da PS3 podemos ver que o CELL possui uma largura de banda dedicada de 25.8 GB/S ao passo que a placa gráfica possui ma largura de banda, igualmente dedicada de 22,4 GB/s (Os 48 GB aproximados que a Microsoft fala se somarmos os 2). No caso de qualquer dos sistemas necessitar de mais, eles encontram-se ligados entre si por uma largura de 15 GB/S no sentido Cell-RSX e 20 GB/s no sentido RSX-Cell, podendo ir buscar assim largura de banda por usar no outro bus.
Por aqui se vê que a arquitectura da PS3 é bastante mais eficiente e complexa, e se mostra que os números da microsoft são descontextualizados e um completo marketing. Se actualmente não vemos a superioridade da PS3 tudo se deve à sua arquitectura complexa que vai demorar alguns anos a ser dominada, um bocado à imagem do que aconteceu com a PS2.