Como tirar mais partido da sua placa gráfica

[dropcap]A[/dropcap] revolução provocada pelo crescente poder de processamento dos processadores GPU (Graphics Processing Unit) que estão no centro de todas as nossas placas gráficas mal se nota. Embora os utilizadores comuns tenham uma ideia geral de que quanto maior for a quantidade de memória interna ou a velocidade de relógio melhor é a placa, não fazem ideia de que estes componentes podem fazer muito mais do que dar-lhe gráficos rápidos e suaves quando está a jogar.

Na verdade, a informática profissional de alto desempenho que a GPU permite é um negócio multimilionário. Cerca de um quarto dos lucros de mil milhões de dólares da Nvidia vem de serviços “profissionais”. Outra palavra para super-informática, as aplicações específicas, como o rendering 3D e os modelos científicos, as render farms em rede são uma maneira pouco dispendiosa de criar potência de processamento quase sem limite.

Antigamente, para obter teraflops de potência de processamento, tinha-se de contratar os serviços de empresas como a IBM e a Cray, que criavam grandes supercomputadores com refrigeração criogénica. Mas agora conseguem-se quase os mesmos resultados com equipamentos que se encontram em qualquer loja informática graças ao grande avanço do software.

 

A matemática

Em última análise, os jogos 3D não passam de matemática na forma de transformações matriciais. As funções GPU precisam é de funcionar ao mesmo nível de um processador de aplicação mais geral. Isto limita as aplicações até que as capacidades de conditional branching destes processadores se tornem mais comuns. Já está a acontecer, mas muito lentamente.

No lado do software, a maioria dos programas que podem usar os GPU suporta todas as placas gráficas.

Com a excepção das Nvidia CUDA, a diferença principal é a capacidade de trabalho de cada placa e, por conseguinte, a sua velocidade máxima. Nalguns casos é bem possível que uma placa gráfica mais antiga não esteja à altura de um processador mais recente, mesmo que os nossos testes tenham indicado que mesmo uma Nvidia 6600 GT manhosa se tenha portado relativamente bem.

CUDA

Vamos então indicar que programas pode arranjar para fazer uso da sua placa. Para começar, tem o WinZip, que tem aceleração OpenCL para comprimir e descomprimir ficheiros com aumentos na ordem dos 20-30 por cento na velocidade.

Uma das utilizações originais, e que continua a fazer-se usando este hardware, é a decifração de encriptação e de palavras-passe. Dê uma vista de olhos a www.crark.net. Este programa, que funciona através da linha de comandos, de aspecto complicado é um decifrador de palavras-passe RAR de primeiríssima água que usa o GPU para aumentar 20 vezes a velocidade dos ataques para decifrar a palavra-chave que está a bloquear o acesso. No seu modo de benchmark, as verificações às palavras-passe passaram de 283 por segundo para 4281 por segundo. Poderá não ser coisa de grande utilidade, mas mostra bem as possibilidades desta combinação de hardware e software. Se quiser uma coisa um pouco mais fácil de utilizar, pode experimentar o programa de recuperação de palavras-chave Parallel Recovery .

Outro programa que já usa o poder do GPU há muito tempo é o [email protected]. Foi uma aplicação de processamento em rede para a descodificação de proteínas que ficou famosíssima por ter sido a primeira a poder ser usada em sistemas com o processador Cell usado na consola PlayStation 3.

 

Utilizações práticas

O primeiro programa com alguma utilidade real foi o Musemage, um processador de imagem escrito especificamente para fazer uso da aceleração GPU. É rapidíssimo e pode aplicar filtros, efeitos e manipulações de imagem a tempo real. Um programa de uma rapidez incrível, é interessante ver como uma pequena carga na GPU resulta num aumento tão extraordinário ao desempenho do programa. Por exemplo, ajustar os níveis de blur apenas dá uma carga de 5% ao GPU.

Para o GIMP está para vir uma tecnologia chamada GEGL, que faz o mesmo mas não será totalmente implementada até à versão 2.10. Falou-se em ser parcialmente implementada em certos filtros para 2.8 RC1, mas por enquanto ainda não está disponível.

As grandes marcas também já começam a prestar atenção à aceleração de processamento através dos processadores gráficos. A Adobe já a incluiu no Photoshop e Premiere, e a Sony no programa de montagem de vídeo Vegas Movie Studio 11. Há também uma série de ferramentas de codificação a usar ao máximo o GPU. Falaremos no Freemake abaixo, para codificação vídeo usando a tecnologia CUDA da Nvidia e DXVA, mas o CyberLink Media também é excelente.

Finalmente, pode dar uma enorme aceleração ao rendering de programas de modelação 3D. Explicamos abaixo como usar a poderosa combinação gratuita mas poderosa do blender e do LuxRender para um rendering de imagens 3D fotorrealistas. Mesmo com aceleração de GPU, o ray-tracing é uma tarefa árdua, mas com resultados que valem a pena. Um problema com o rendering, é que nem todas as operações podem ser efectuadas exclusivamente com cálculos dos GPU.

 

Codificação de vídeo com a ajuda do GPU

 

 

 1. Freemake

gpu_1

Disponível gratuitamente em www.freemake.com, o Fremake Video Converter usa a tecnologia CUDA da Nvidia e a aceleração por hardware genérica através de DXVA. Quando o instalar, lembre-se de não instalar o adware que o acompanha, que é muito. A aceleração por hardware está activada por omissão, assim, só precisa de lá pôr um ficheiro de vídeo para converter.

 

 2. Configure e já está

gpu_2

Só precisa de arrastar o vídeo para a interface e seleccionar uma das opções predefinidas na parte de baixo da janela. O nosso vídeo vai ser codificado para um tablet Android, por isso escolhemos a opção mp4, Add your preset para nos abrir diversas opções. Começámos por definir a resolução do aparelho, que seria 1280 x 720 ou 800 x 480.

3. A Intel intervém…

gpu_3

O problema actual da codificação de vídeo GPU é que a Intel criou a tecnologia Quick Sync. Trata-se de hardware dedicado para a conversão de multimédia incluído no processador. Não faz sentido pôr a funcionar a GPU com uma tarefa que o processador pode já fazer, e nem sequer é mais rápido. Se a sua CPU for Intel Sandy Bridge ou posterior, escolha usá-la.

 

Blender

1. O download

gpu_4

Comece por transferir o Blender de www.blender.org. Vá para a secção de downloads, saque a versão de 64 bits e instale-a. O LuxRender, que é acelerado por GPU, pode ir buscar-se em www.luxrender.net. Descarregue e instale também a versão de 64 bits. Também deverá instalar a versão de 64 bits do Microsoft Visual C++ 2008 de bit.ly/Xw2YLC ou a de 32 bits em bit.ly/12sVp7X.

 

2. A mistura

Não vamos entrar nos pormenores do programa, pois poderia escrever-se um livro só para aprender a configurar-lhe a interface. Vamos acrescentar o LuxBlend como extensão de rendering externa. Clique em “File”, “User preferences”. Seleccione o separador “Addons” e depois clique no botão “Install addon”, que fica na parte de baixo da janela. Encontre o ficheiro LuxBlendXX_64bit algures na directoria Programas/Luxblend. Seleccione-o e clique em “Install”.

 

3. Luxor

gpu_5

A extensão que permite ao Blender enviar trabalhos de rendering ao LuxRend está instalada, mas agora temos de a activar. Em “User Preferences”, “Addons”, seleccione à esquerda as categorias de rendering e depois seleccione a caixa Render:LuxRender. Pode levar uns segundos a registar. Depois vá ao separador “System” e, no canto inferior esquerdo, seleccione como default a opção “OpenCL”.

 

4. Definição do Blender

gpu_6

Da barra Info no topo, abra o menu de queda central que mostra os motores de rendering disponíveis e seleccione “LuxRender”. À direita muitos dos menus da interface alterar-se-ão. Abra o separador “Render” e defina o path para o local onde o LuxRender foi instalado em Programas. Desloque até encontrar “LuxRender render settings”. Em “Rendering Mode” seleccione “Hybrid Path”.

 

5. O GPU

Certifique-se de que tem seleccionado “Use GPUs”. A barra abaixo permite-lhe escolher qual o dispositivo OpenCL que quiser usar se tiver mais do que uma GPU ou um processador capaz de OpenCL. Agora desloque-se para cima e clique no botão “Render”. Se tudo estiver a correr bem, o LuxRender aparecerá, fazendo o rendering a um cubo, muito lentamente.

 

6. Já está

gpu_8

Já pode começar o seu rendering com aceleração GPGPU. O Blender é um programa complexo, mas o LuxRender tem lições para os principiantes em bit.ly/X5ndwG, em que a tarefa principal é mesmo orientar-se nesta interface tão complexa. Um truque: mantenha CTRL premida e clique nas âncoras dos cantos para arrastar os painéis.

 

Obtenha mais da GPU

 

1. Caps Viewer

gpu_10

Disponível em www.ozone3d.net/gpu_caps_viewer, vale a pena ter este programa para quando mexe no GPU. Não faz exactamente falta, mas se quiser ajustar ou comparar sistemas e software que correm software acelerado com GPGPU, tem uma série de informações e de testes que pode utilizar. O separador inicial mostra a carga e a temperatura actuais da GPU, com benchmarks em baixo.

 

2. SmallptGPU

gpu_11

Este programa tem mais interesse histórico que outra coisa, mas ainda é um bom teste para o desempenho do GPU. O SmallptGPU foi o software de testes original que validou o GPU como maneira de acelerar o rendering ray tracing. Fica ao lado da versão só de CPU – SmallptCPU. É uma sala que contém esferas, onde se podem acrescentar vários efeitos de iluminação e ambiente.

 

3. LuxMark

gpu_12

A validação final do LuxRender foi o LuxMark, um teste de benchmarks de GPGPU que foi feito para ver como um sistema de rendering funcionava em diversos sistemas de OpenCL e CUDA. Permitiu à equipa recolher uma série de resultados de testes no mundo real e uma comparação por onde as pessoas podem verificar as suas velocidades de GPGPU. Arranje uma cópia em www.luxrender.net/wiki/LuxMark.

 

4. Fragmentarium

gpu_13

Não podíamos esquecer os fractais. Pode obter o Fragmentarium clicando aqui. Trata-se de um explorador de fractais muito interessante que usa completamente o GPGPU para criar fractais em 3D. Lance-o, escolha “Octobulb” do menu de queda da direita e clique em “Apply”. É um pouco complexo, mas vale a pena mexer-lhe, quanto mais não seja para ver umas imagens espantosas.