Que surpresas ainda nos reservam os consoles ?

#Artigo Publicado por JotaLopes1, em .

Como em todas as gerações há evoluções. E a actual não é excepção! Mas de onde virão os ganhos no futuro que permitirão aumentar as performances ?

IMAGEaHR0cDovL21lZGlhcy5tZW5zcXVhcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEzLzA5L3hib3hfb25lX3ZzX3BzNDEuanBn

A história

A geração anterior é um exemplo daquilo que uma consola pode evoluir ao longo dos tempos. Se The Last of Us fosse mostrado no início da geração. certamente nem sequer as equipas que programavam para a Playstation 3 ou Xbox 360 na altura, acreditariam que o jogo estava efectivamente a correr numa das consolas para que estavam a programar.

IMAGEaHR0cDovL3MucHJvLWdtZWRpYS5jb20vdmlkZW9nYW1lci9tZWRpYS9pbWFnZXMvcHMzL3RoZV9sYXN0X29mX3VzL3NjcmVlbnMvdGhlX2xhc3Rfb2ZfdXNfMzIuanBn

No caso da Playstation 3 o caso era mais flagrante. O Cell era algo de novo, e bastante complexo de se programar, pelo que um jogo ao nível de The Last of Us não parecia apenas impossível, ele era, nessa fase inicial, efectivamente impossível.

Mas a realidade é que os ganhos nas performances não se deram só na Playstation. Apesar de a evolução ter sido maior na consola da Sony, à medida que os programadores conheciam mais e melhor os pontos fortes e fracos do difícil de programar Cell, a Xbox 360, apesar de mais acessível, também teve ganhos tremendos, e os jogos de final de geração eram em larga escala superiores aos que existiam na altura do seu lançamento.

http://blogs.c.yimg.jp/res/blog-9a-aa/gappu_k/folder/673660/09/25666409/img_0

Há basicamente dois grandes motivos para isso.

O domínio do hardware

Com um maior contacto com o hardware, torna­se possível conhecer o mesmo melhor. Sabendo quais os seus pontos fortes e os seus pontos fracos as equipas programam de forma a explorar ao máximo aquilo onde o hardware se revela mais capaz, minimizando o uso das partes onde este falha. Pode­se assim programar de forma a evitar­se os conhecidos gargalos que impedem que as performances máximas do sistema sejam atingidas.

Ambas as consolas irão beneficiar claramente do conhecimento dos pontos fortes e fracos das mesmas, uma vez que nesta aspecto todos os sistemas, com o tempo, são beneficiados por esta realidade.

A optimização de rotinas a novas técnicas de programação.

Como é fácil de se perceber, as consolas, dados os limites na sua performance, são as grandes responsáveis pela optimização de código e pelos grandes avanços em técnicas de programação que se revelam mais leves a nível de processamento, mas que apresentam resultados em tudo semelhantes às anteriores componentes mais antigas.

Basicamente trata­-se de aplicar à programação a constatação das performances do hardware, optimizado as rotinas para a melhor performance possível, bem como criando­se novas metodologias que exploram melhor a realidade das performances e forma de processamento do hardware.

IMAGEaHR0cDovL3d3dy50bWFnLml0L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE0LzA3LzEzNjkzNTIwNDNfMjFfMC5qcGc=

Aqui nesta situação acreditamos que a Xbox One possa ter mais benefícios. As limitações no seu hardware são superiores e a necessidade de novas técnicas que superem as limitações (como a dimensão da eSRAM) são uma realidade.

Aliás vemos já novas técnicas, como o Forward + a serem aplicadas na consola e diminuem tremendamente a necessidade de memória rápida, superando a limitação dos 32 MB.

IMAGEaHR0cDovL2ZpbGVzLml0cHJvcG9ydGFsLmNvbS93cC1jb250ZW50L3VwbG9hZHMvcGhvdG9zL3hib3gtc29jLWJsb2NrLWRpYWdyYW0tM19mdWxsd2lkdGguanBn

Resumidamente, ambas as consolas, mais do que os PCs onde a necessidade de optimização não é uma realidade dado o contínuo lançamento de hardware cada vez mais potente, terão os seus ganhos a advir destas duas situações.

São eles suficientes para ajudar a fechar o fosso entre as consolas e os PCs? Não! Mas permitirão obter melhores performances do que as vemos actualmente.

Mas há mais!

Há no entanto mais. As consolas foram pensadas para serem sistemas onde a interacção entre os seus componentes é superior à verificada nos PCs. Isso quer dizer que há muitas optimizações aplicadas às consolas que pura e simplesmente não existem nos PCs (ou não estão ainda aplicadas em larga escala). Falamos da memória unificada heterogénea, de optimizações adicionais para o uso do GPGPU, de partilhas e acesso mútuos às caches entre CPU e GPU, etc.

Estas situações são exclusivas das consolas, e quando devidamente usadas permitirão ganhos adicionais de performance.

Deveremos começar a ver estas situações exploradas de forma mais conveniente com a segunda geração de software para as novas consolas e que vira agora.

Os grandes ganhos

Mas os grandes nas performances das consolas nem advirão daí. Eles advirão do uso do GPGPU!

Basicamente podemos dizer que actualmente nem sequer os elementos mais básicos da computação por GPGPU estão completamente dominados. O GPGPU está a ser usado, mas a programação do mesmo está numa fase muito embrionária, e como tal demorará ainda algum tempo até começarmos a ver algoritmos devidamente eficientes e optimizados, em vez da aplicação de múltiplos níveis de força bruta.

A computação assíncrona ( como eu já trouxe uma news falando sobre ) suportada por ambas as consolas, mas que até agora pouco foi usada pois os jogos possuem como base o DirectX 11 que não a suporta convenientemente, irá permitir um melhor uso do GPU misturando com o máximo de efeito o processamento gráfico e genérico, mas no entanto nem será daí que advirá grosso da melhoria das performances. Será isso sim, como já referido, da melhoria da qualidade e performance dos algoritmos.

IMAGEaHR0cDovL3d3dy5leHRyZW1ldGVjaC5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTMvMDUvQU1ELUFDRS5qcGc=

O molho secreto

Analisando o hardware da AMD e o advento do DirectX 12, qualquer pessoa que nos acompanhe terá já percebido uma realidade. As placas da AMD à vários anos que poderiam suportar um API como esse, ao passo que as da Nvidia… nem por isso!

As placas da AMD sempre foram muito mais avançadas do que aquilo que era visível, mas no entanto as suas capacidades adicionais estavam dormentes ao não terem o apoio de um API capaz. E essa situação forçou inclusive a AMD a lançar o seu próprio API, o Mantle!

IMAGEaHR0cDovL3d3dy5wY21hbmlhcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvQXNzaW5jcm9uYTVBTUQuanBn

A questão é que mesmo com o DirectX 12, há ainda muitas características das placas gráficas AMD que, por não serem genéricas e não estarem a ser suportadas igualmente pela concorrência, terão suporte muito reduzido no DirectX 12, ou nem sequer serão usadas. Mas que no entanto não deixam de estar lá no hardware, podendo ser exploradas pelas consolas, trazendo ganhos consideráveis...

Podemos ver algumas dessas características referidas nesta apresentaçao.

De acordo com os fóruns do Beyond 3D, e com Sebbbi, o nome pelo qual é conhecido nesses fóruns Sebastian Aaltonen, o programador gráfico principal da Redlynx, talvez um dos exemplos mais relevantes se

prenda com as operações "cross lane" que a AMD suporta e que não se encontram previstas no DirectX 12, e que, segundo o mesmo, fornecem grandes ganhos de performance a GPUs mais "primitivas".

Ora no PC apenas o Open CL 2.0 permite o uso dessas operações, e esse API não é usado por nenhum jogo. Há também suporte por parte do Open GL 4.4, mas apenas com livrarias específicas para o hardware GCN, o que quer dizer que não são suportadas por mais nenhum GPU. E por esse mesmo motivo, essas características ficam fora do DirectX 12 (quem sabe não serão suportadas no Vulkan).

IMAGEaHR0cDovL2ltYWdlcy5hbmFuZHRlY2guY29tL2RvY2kvNzE2MS9TUElSNS5wbmc=

Ora nas consolas, mais cedo ou mais tarde essas características vão começar a ser usadas, e os ganhos poderão ser bastante razoáveis pois os PCs terão de usar uma metodologia mais lenta em vez destes atalhos e acelerações que são específicas da arquitectura GCN.( Também já trouce uma news falando a respeito ) E tal permitirá às consolas uma vantagem em alguns algoritmos sobre o PC, que requererá, mais uma vez, e mesmo possuindo um API de baixo nível, hardware superior para performances idênticas.

Conclusões

As actuais consolas não são exemplos de potência, e mesmo com os PCs ainda a usarem APIs de alto nível, a sua performance não se aproxima da dos PCs topo de gama.

Com o DirectX 12 e a introdução, pela primeira vez na história, de um API de baixo nível nos PCs, o fosso irá aumentar ainda mais!

IMAGEaHR0cDovL2Jsb2dzLm1zZG4uY29tL2Nmcy1maWxlc3lzdGVtZmlsZS5hc2h4L19fa2V5L2NvbW11bml0eXNlcnZlci1ibG9ncy1jb21wb25lbnRzLXdlYmxvZ2ZpbGVzLzAwLTAwLTAxLTIwLTcyLWltYWdlcy8xODU0LmRpcmVjdHgxMnY1LnBuZw==

Mas isso não impede que as consolas ainda possuam alguns trunfos na manga, e os ganhos de performance irão aparecer.

O hardware fixo, equipas de programação dedicada e a existência de optimizações específicas no seu hardware, com o uso total do mesmo, serão os trunfos que aparecerão do lado das consolas, e que lhes permitirão aumentar as performances face ao que apresentam atualmente.

Se isso chegará para diminuir o fosso para o PC? Já o dissemos… não! Mas cremos que mais relevante do que isso é o saber-­se que ainda teremos muitas a boas surpresas das performances das atuais consolas desde que as equipas se dediquem devidamente ao seu hardware.

JotaLopes1
JotaLopes1
Publicações em Destaque