Unidade de processamento gráfico
GPU, conhecido também como VPU ou unidade de processamento visual, é um tipo de microprocessador especializado em processar gráficos em computadores pessoais, estações de trabalho ou videogames. GPUs modernas manipulam gráficos computadorizados com eficiência e sua estrutura de processamento paralelo os tornam mais capazes neste tipo de trabalho que CPUs normais. Uma GPU normalmente é utilizada em placas de vídeo, mas versões simplificadas são integradas diretamente na placas-mãe o que é chamado de Acelerador Gráfico Integrado ou Placa de Vídeo Onboard.
Diferente dos aceleradores gráficos 3D anteriores, uma GPU incorpora as funções de iluminação e transformação de vértices (transform and lighting também conhecido como T&L), que antes eram efetuadas no processador central do computador, mais exatamente em seu co-processador aritmético (FPU, unidade de ponto flutuante). Seus antecessores efetuavam basicamente a aplicação de texturas em superfícies, e ao incorporar outra etapa do processamento de imagens, libera o processador central para outras funções. O primeiro GPU voltado para o uso doméstico foi o modelo GeForce 256. No entanto, alguns processadores especializados voltados para uso profissional em simuladores e computação gráfica já atendiam aos critérios. As duas maiores empresas que fabricam GPU's são AMD e nVidia, além da estadunidense Intel por meio de suas GPUs integradas em chipsets (com apenas aceleradores de mídia) e GPUs em placas de vídeo dedicadas.
Anos 80
Em 1983, a Intel disponibilizou o iSBX 275 Video Graphics Controller Multimodule Board para sistemas industriais baseados no padrão Multibus. Foi baseado no 82720 Graphics Display Controller e acelerou o desenho de linhas, arcos, retângulos e caracteres em bitmap. O carregamento de framebuffer via DMA também foi acelerado. Disponibilizado em 1985, o Commodore Amiga foi o primeiro computador pessoal a usar uma GPU. A GPU tinha suporte a desenho de linhas, preenchimento de áreas, e incluía um tipo de circuito chamado blitter, que acelerava o movimento, manipulação e combinação de múltiplos bitmaps. Também incluso existia um coprocessador de gráficos com seu próprio (e primitivo) set de instruções. Por causa disso e um tempo depois, muitos outros PCs requeriam que uma GPU lidasse com todos os aspectos de desenho.
Anos 90
Em 1991, a S3 Graphics introduziram o S3 86C911, que foi nomeado em homenagem ao Porsche 911, como uma indicação do aumento de desempenho prometido. O 86C911 trouxe também uma leva de limitações. Até 1995, todos os produtores de chips gráficos adicionaram suporte em aceleração 2D aos seus chips. Ao chegar essa época, esses chips de aceleração provaram ser melhores do que os caros coprocessadores de múltiplo-uso, e esses coprocessadores desapareceram do mercado. Durante os anos 90, a aceleração 2D continuou a evoluir. Conforme capacidades de manufatura aumentava, também aumentava o nível de integração dos chips gráficos. Interfaces de Programação de Aplicativos (APIs) adicionais começaram a chegar para uma variedade de tarefas, como a biblioteca de gráficos do WinG, da Microsoft, para Windows 3.x, e futuramente, sua interface para aceleração de jogos 2D no Windows 95 ou depois, DirectDraw.
Anos 2000
Com a OpenGL API e funcionalidade similar no DirectX, GPUs adicionaram sombreamento programável à suas capacidades. Cada pixel poderia ser processado por um programa que poderia incluir texturas de imagem adicionais como entradas, e cada vértice geométrico poderia ser processado por um programa curto antes de ser projetado na tela. NVIDIA foi a primeira a produzir um chip capaz de sombreamento programável, a GeForce 3 (nomeada NV20). Até Outubro de 2002, com a introdução da ATI Radeon 9700 (também conhecida como R300), o primeiro acelerador Direct3D 9.0, shaders de pixels e vertices podem implementar looping, e em geral foram rapidamente virando flexíveis como CPUs, e ordens de magnitude mais rápidas para operações com vetores de imagens.
GPUs modernas usam maior parte dos seus transístores para fazer cálculos relacionados com gráficos 3D. Eles foram inicialmente usados para acelerar o intenso trabalho de mapeamento de texturas e renderização de polígonos, mais tarde adicionando unidades para acelerar cálculos geométricos tais como a rotação e translação de vértices em diferentes sistemas de coordenadas. Recentes desenvolvimentos em GPUs incluem suporte para shaders programáveis, que podem manipular vértices e texturas com muitas das mesmas operações suportadas por CPUs, usando técnicas de interpolação e oversampling para reduzir aliasing. E já que maior parte dessas computações envolvem operações com matrizes e vetores, engenheiros e cientistas têm estudado o uso de GPUs para calculações não-gráficas. Junto com o hardware 3D, as GPUs de hoje incluem capacidades de aceleração 2D e capacidades de framebuffer (geralmente com um modo de compatibilidade VGA).
Decodificação de vídeo acelerado por GPU
A maioria das GPUs feitas desde 1995 têm suporte ao espaço de cor YUV e overlays de hardware, importantes para playback digital de vídeos, e várias GPUs feitas desde 2000 também suportam comandos primitivos do MPEG, tais como compensação de moção e iDCT. Esse processo de decodificação acelerada de vídeo, onde porções do processo de decodificação de vídeo e pós-processamento de vídeo são deixadas para o hardware da GPU, é comumente referido como "Decodificação de vídeo acelerado por GPU", "Decodificação de vídeo auxiliada por GPU", entre demais termos. Placas de vídeo mais recentes podem decodificar vídeos de alta definição na própria placa, tirando a pressão da CPU. Os APIs mais comuns para decodificação de vídeo acelerada por GPU são DxVA para Windows, e VDPAU, VAAPI, XvMC, e XvBA para Linux e sistemas operacionais UNIX. Todos, exceto XvMC são capazes de decodificar vídeos codificados com codecs MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Parte 2), MPEG-4 AVC (H.264 / DivX 6), VC-1, WMV3/WMV9, Xvid / OpenDivX (DivX 4), e DivX 5, enquanto XvMC é apenas capaz de decodificar MPEG-1 e MPEG-2.
Recentemente placas de vídeo incorporaram tecnologias para programação de propósito geral, como OpenCL e CUDA, servindo como um co-processador massivamente paralelo para cálculos intensivos, sendo essa técnica conhecida como GPGPU (general propose graphic processing unit). Placas de vídeo modernas incluem um grande número de núcleos de processamento, adequadas para além do processamento gráfico, a computação científica. Um exemplo é o projeto Folding@home, que implementa a capacidade de processamento de dinâmica molecular em GPU conseguindo um aumento de várias vezes no desempenho.
Capacidade de processamento
GPUs pela sua arquitetura massivamente paralela, possuem uma capacidade de cálculo muito superior a de um processador central, embora tal poder só seja aproveitado em problemas paralelizáveis a nível de dados, como multiplicação de matrizes, por exemplo. Tais processadores se chamam Stream Processors, ou processadores de fluxo numa tradução livre, e GPUs modernas contém até milhares deles. Uma placa de vídeo Radeon HD 8970, por exemplo, possui 2048 processadores de fluxo rodando a 1 GHz, tendo assim uma capacidade máxima teórica de aproximadamente 4 TeraFlops de precisão simples e 1 TeraFlop em precisão dupla.
Devido a sua natureza técnica e complexidade, diversos termos em inglês são utilizados para descrever as GPUs, entre as principais se encontram:


