Uma GPGPU de propósito geral (GPGPU) é uma unidade de processamento gráfico (GPU) que executa cálculos não especializados que normalmente seriam conduzidos pela CPU (unidade de processamento central). Normalmente, a GPU é dedicada à renderização gráfica.
GPUs são usadas para tarefas que antes eram do domínio das CPUs de alta potência, como cálculos físicos, criptografia/descriptografia, cálculos científicos e a geração de moedas cipto, como Bitcoin. Como as placas gráficas são construídas para paralelismo massivo, elas podem diminuir a taxa de cálculo até mesmo das CPUs mais poderosas para muitas tarefas de processamento paralelo. Os mesmos núcleos de shader que permitem que vários pixels sejam renderizados simultaneamente podem processar de forma similar vários fluxos de dados ao mesmo tempo. Embora um núcleo de shader não seja tão complexo quanto uma CPU, uma GPU high-end pode ter milhares de núcleos de shader; em contraste, uma CPU com vários núcleos pode ter oito ou doze núcleos.
Há um foco maior nas GPGPUs desde que o DirectX 10 incluiu shaders unificados em suas especificações de núcleo de shader para o Windows Vista. Linguagens de nível superior estão sendo desenvolvidas o tempo todo para facilitar a programação de cálculos na GPU. Tanto AMD/ATI quanto Nvidia têm abordagens à GPGPU com suas próprias APIs (OpenCL e CUDA, respectivamente).
A história das GPUs de uso geral>br> A GeForce 3 da Nvidia foi a primeira GPU que apresentou shaders programáveis. Naquela época, o objetivo era tornar os gráficos 3D rasterizados mais realistas; os novos recursos da GPU permitiam transformações 3D, mapeamento de bump, mapeamento especular e cálculos de iluminação. A GPU 9700 da ATI, a primeira placa DirectX 9 com capacidade se aproximava da flexibilidade de programação das CPUs, embora poucos cálculos de propósito geral tivessem sido feitos na época. Com a introdução do Windows Vista, em conjunto com o DirectX 10, foram especificados núcleos de sombreamento unificados como parte do padrão. O novo potencial da GPU demonstrou uma performance que aumenta várias ordens de magnitude sobre os cálculos baseados em CPU.
p>b>GPGPUs e o futuro da computação gráficabr> GPUs que foram originalmente desenvolvidas para acelerar o 3D rasterizado (pois o raytracing era muito caro em termos de cálculo) ultrapassaram a performance das CPUs para gráficos pré-renderizados raytraced. Embora o raytracing ainda não seja utilizado em jogos, tem havido demonstrações em tempo real. Os avanços das GPGPUs significam que num futuro não muito distante, os gráficos de computador devem ser capazes do mesmo tipo de geometria e iluminação intensiva que os filmes 3D.