terça-feira, 29 de novembro de 2011

Entenda como funciona sua placa de Vídeo

Introdução
As placas de vídeo elas são usadas para gerar imagens que aparecem no seu monitor. Hoje em dia existem vários modelos para várias funcionalidades diferentes.


O que é uma GPU

A GPU (Graphics Processing Unit - Unidade de Processamento Gráfico), que também é chamada de chip gráfico, ela é responsavel por processar as imagens que são exibidas no monitor.
Tratando de GPU's existem uma grande quantidade de modelos disponível no mercado, algumas delas mais potentes, desenvolvidas especialmente para processamento de complexos gráficos 3D (para execução de jogos ou produção de filmes, por exemplo), até as mais simples, fabricadas com foco no mercado de computadores de baixo custo.
Existem muitos fabricantes de GPU's
mas as mais conhecidas são Nvidia, ATI e Intel mas as duas primeiras são as mais sofisticadas.
Mas vocês devem estar pensando, já vi varias marcas de Placas de vídeo como Asus, GigaByte, Zotac, Zogis entre outras, mas essas fabricas são responsáveis em criar as placas e não GPU's elas só vão determinar qual GPU, Memória de vídeo e conector usar.Por outro lado, é importante frisar também que GPUs podem estar embutidas diretamente em placas-mãe de computadores, sendo popularmente chamadas de "placas de vídeo onboard" neste casos.

Características de uma GPU
A GPU surgiu para "aliviar" o processador principal do computador (CPU) da pesada tarefa de gerar imagens. Por isso, é capaz de lidar com um grande volume de cálculos matemáticos e geométricos, condição trivial para o processamento de imagens 3D (utilizadas em jogos, exames médicos computadorizados, entre outros).
Para que as imagens possam ser geradas, a GPU trabalha executando uma sequência de etapas, que envolvem elaboração de elementos geométricos, aplicação de cores, inserção de efeitos e assim por diante. Essa sequência, de maneira bastante resumida, consiste no recebimento pela GPU de um conjunto de vértices (o ponto de encontro de dois lados de um ângulo); no processamento dessas informações para que elas obtenham contexto geométrico; na aplicação de efeitos, cores e afins; e na transformação disso tudo em elementos formados por pixels (um pixel é um ponto que representa a menor parte de uma imagem), processo conhecido com rasterização. O passo seguinte é o envio dessas informações à memória de vídeo (frame buffer) para que então o conteúdo final possa ser exibido na tela.
As GPUs podem contar com vários recursos para a execução dessas etapas, entre eles:

- Pixel Shader: shader é um conjunto de instruções utilizado para o processamento de efeitos de renderização de imagens. Pixel Shader, portanto, é um programa que trabalha com a geração de efeitos com base em pixels. Esse recurso é amplamente utilizado em imagens 3D (de jogos, por exemplo) para gerar efeitos de iluminação, reflexo, sombreamento, etc;

- Vertex Shader: semelhante ao Pixel Shader, só que trabalha com vértices em vez de pixels. Assim sendo, Vertex Shader consiste em um programa que trabalha com estruturas formadas por vértices, lidando, portanto, como figuras geométricas. Esse recurso é utilizado para a modelagem dos objetos a serem exibidos;

- Render Output Unit (ROP): basicamente, manipula os dados armazenados na memória de vídeo para que eles se "transformem" no conjunto de pixels que formará as imagens a serem exibidas na tela. Cabe a essas unidades a aplicação de filtros, efeitos de profundidade, entre outros;

- Texture Mapping Unit (TMU): trata-se de um tipo de componente capaz de rotacionar e redimensionar bitmaps (basicamente, imagens formadas por conjuntos de pixels) para aplicação de uma textura sob uma superfície.

Esses recursos são utilizados pelas GPUs em componentes cujas quantidades variam de modelo para modelo. Você viu acima, por exemplo, que há unidades para Vertex Shaders e unidades para Pixel Shaders. A princípio e dependendo da aplicação, esse esquema se mostra vantajoso. No entanto, pode haver situações onde unidades de um ou outro faltem, gerando um desequilíbrio que prejudica o desempenho. Para lidar com isso, vários chips gráficos mais atuais utilizam stream processors, isto é, unidades que podem assumir tanto a função de vertex Shaders quanto de Pixel Shaders, de acordo com a necessidade da aplicação.

Em geral, é possível saber detalhes que descrevem a utilização desses e de outros recursos na GPU de sua placa de vídeo no manual desta ou no site do fabricante. Também é possível fazer uso de programas que fornecem essas informações, tal como o gratuito GPU-Z, para Windows.

Clock da GPU
O que é isso? Ora, se a GPU é um tipo de processador, então trabalha dentro de uma determinada frequência, isto é, de um clock. De maneira geral, o clock é um sinal de sincronização. Quando os dispositivos do computador recebem o sinal de executar suas atividades, dá-se a esse acontecimento o nome de "pulso de clock". Em cada pulso, os dispositivos executam suas tarefas, param e vão para o próximo ciclo de clock.

A medição do clock é feita em hertz (Hz), a unidade padrão de medidas de frequência, que indica o número de oscilações ou ciclos que ocorre dentro de uma determinada medida de tempo, no caso, segundos. Assim, quando um dispositivo trabalha à 900 Hz, por exemplo, significa que é capaz de lidar com 900 operações de ciclos de clock por segundo. Repare que, para fins práticos, a palavra kilohertz (KHz) é utilizada para indicar 1000 Hz, assim como o termo megahertz (MHz) é usado para indicar 1000 KHz (ou 1 milhão de hertz). De igual forma, gigahertz (GHz) é a denominação usada quando se tem 1000 MHz, e assim por diante. Com isso, se uma GPU tem, por exemplo, uma freqüência de 900 MHz, significa que pode trabalhar com 900 milhões de ciclos por segundo (essa explicação foi tirada deste artigo sobre processadores).

Assim sendo, quanto maior a frequência de uma GPU, melhor é seu o desempenho, pelo menos teoricamente, já que essa questão depende da combinação de uma série de fatores, como quantidade de memória e velocidade do barramento, por exemplo. Isso indica que clock é uma característica importante, todavia, o usuário não precisa se preocupar tanto com ela, mesmo porque, em placas de vídeo mais recentes, determinados componentes podem trabalhar com frequências diferentes da utilizada pela GPU em si, como as unidades responsáveis pelo processamento de shaders, por exemplo.

GDDR - memória de vídeo
Outro item de extrema importância em uma placa de vídeo é a memória. A velocidade e quantidade desta pode influenciar significantemente no desempenho do dispositivo. Esse tipo de componente não difere muito das memórias RAM que são tipicamente utilizadas em PCs, sendo inclusive relativamente comum encontrar placas que utilizam chips de memória de tecnologias DDR, DDR2 e DDR3. No entanto, placas mais avançadas e atuais contam com um tipo de memória específica para aplicações gráficas: memórias GDDR (Graphics Double Data Rate).

As memórias GDDR são semelhantes aos tipos de memória DDR, mas são especificadas de maneira independente. Basicamente, o que muda entre essas tecnologias são características como voltagem e frequência. Até o fechamento deste artigo no InfoWester era possível encontrar cinco tipos de memórias GDDR: GDDR1 (ou apenas GDDR), GDDR2, GDDR3, GDDR4 e GDDR5.

Trabalhando com tensão de 2,5 V e frequência de até 500 MHz, a memória GDDR1 (que é praticamente o padrão DDR) foi até que foi bastante utilizada, mas logo perdeu a preferência para memórias GDDR3 (ao menos nas placas mais avançadas). O tipo GDDR2 teve pouca utilização, sendo empregado quase que exclusivamente nas linhas GeForce FX 5700 Ultra e GeForce FX 5800 da NVIDIA, pois embora trabalhe com frequências de até 500 MHz, sua tensão é de 2,5 V, resultando em um grande problema: calor excessivo.

As memórias GDDR3 surgiram como uma solução para essa questão porque trabalham com tensão de 1,8 V (podendo em alguns casos trabalhar também com 2 V) e aliam isso com maior velocidade, pois trabalham com 4 transferências de dados por ciclo de clock (contra duas dos padrões anteriores). Sua frequência, em geral, é de 900 MHz, mas pode chegar a 1 GHz. Tecnicamente, são semelhantes às memórias DDR2.

Memórias GDDR4, por sua vez, são parecidas com memórias DDR3, lidam com 8 transferências por ciclo de clock e utilizam tensão de apenas 1,5 V. Além disso, empregam tecnologias como DBI (Data Bus Inversion) e Multi-Preamble para diminuir o "delay", isto é, o tempo de espera existente na transmissão de dados. No entanto, sua frequência permanece, em média, na casa dos 500 MHz, devido a sua "suscetibilidade" a problemas de ruído (interferências). Por esse motivo, essa tecnologia de memória GDDR tem aceitação baixa no mercado.

Em relação às memórias GDDR5, esse tipo suporta frequências semelhantes e até ligeiramente maiores que as taxas utilizadas pelo padrão GDDR3, porém trabalha com 8 transferências por ciclo de clock, aumentando significantemente seu desempenho. Além disso, também conta com tecnologias como DBI e Multi-Preamble, sem contar a existência de mecanismos que oferecem melhor proteção contra erros.

As memórias GDDR3 e GDDR5 são as mais utilizadas no mercado, sendo esta última comumente encontrada em placas de vídeo mais avançadas da ATI.

E quanto de memória minha placa de vídeo deve ter? Se você está se fazendo esta pergunta, saiba que, ao contrário do que muita gente pensa, nem sempre mais é melhor. Isso porque determinadas aplicações (jogos, principalmente) podem lidar com até certa quantidade de memória. Após isso, a memória restante não é utilizada.

O ideal é procurar placas que ofereçam recursos compatíveis com as necessidades atuais, inclusive em relação à memória. No momento em que este artigo era escrito, era bastante comum encontrar placas com 512 MB e modelos mais avançados com essa quantidade em 1 GB. De modo geral, quanto mais avançada for a GPU, mais memória deve ser utilizada para não comprometer o desempenho.

Mas note que não é de muita valia ter uma quantidade razoável de memória e, ao mesmo tempo, um barramento de memória baixo. Barramento (bus), neste caso, corresponde às trilhas de comunicação que permitem a transferência de dados entre a memória e a GPU. Quanto maior o barramento, mais dados podem ser transferidos por vez. Placas de baixo custo utilizam barramentos que permitem transferência de, no máximo, 128 bits por vez. No fechamento deste texto, placas mais sofisticadas trabalhavam com pelo menos 256 bits, já sendo possível encontrar modelos "top de linha" com bus de 512 bits.

Em placas-mãe que contam com chip gráfico (onboard), a memória de vídeo é, na verdade, uma parte da memória RAM do computador. Na grande maioria dos casos, o usuário pode escolher a quantidade de memória disponível para esse fim no setup do BIOS. Alguns modelos de placas-mãe também incluem memória de vídeo embutido, mas são menos comum.

Para conseguir disponibilizar placas de vídeo mais baratas, fabricantes também lançaram modelos que, mesmo não sendo integrados à placa-mãe, utilizam memória de vídeo própria e também parte da memória RAM da máquina. Duas tecnologias para isso são a TurboCache, da NVIDIA e HyperMemory, da ATI. Se você se preocupa com o desempenho de seu computador, deve evitar esse tipo de dispositivo.

Finalizando
Com os dados presente nesse post você terá como escolher a sua placa de vídeo.
Se você quer uma placa de vídeo para jogar jogos leves, ver vídeos, coisas casuais que não possa exagerar muito processamento uma placa de baixo custo será mais que suficiente!

Antes de encerrar, uma "curiosidade importante": de certo modo, CPUs e GPUs são dispositivos bastante semelhantes, mas como estes últimos lidam constantemente com imagens em 3D, são mais preparados para lidar com processamento paralelo. Acontece que essa capacidade não é útil só em jogos ou em geração de gráficos 3D. Há uma série de outras aplicações que podem se beneficiar disso.

Arquitetura de uma placa
A indústria criou tecnologias específicas para facilitar o uso das GPUs mais recentes em atividades não relacionadas diretamente ao processamento gráfico. Duas delas são a OpenCL e a CUDA. A primeira é ligada à entidade que mantém o padrão OpenGL. A segunda foi desenvolvida pela NVIDIA para funcionar com seus chips e se destaca por permitir o uso de instruções em linguagem C, embora adaptações também permitam o uso de Java, Python e outras. De acordo com a NVIDIA, a tecnologia tem sido utilizada em pesquisas científicas e ferramentas de análise do mercado financeiro, por exemplo.

Nenhum comentário:

Postar um comentário