Resposta da TL; DR: As GPUs têm muito mais núcleos de processador que as CPUs, mas como cada núcleo de GPU é significativamente mais lento que um núcleo de CPU e não possui os recursos necessários para os sistemas operacionais modernos, eles não são adequados para executar a maior parte do processamento no dia a dia. Informática. Eles são mais adequados para operações de computação intensiva, como processamento de vídeo e simulações de física.
GPGPU ainda é um conceito relativamente novo. As GPUs foram usadas inicialmente para renderizar apenas gráficos; À medida que a tecnologia avançava, o grande número de núcleos nas GPUs em relação às CPUs era explorado pelo desenvolvimento de recursos computacionais para GPUs, para que eles pudessem processar muitos fluxos de dados paralelos simultaneamente, independentemente de quais sejam esses dados. Embora as GPUs possam ter centenas ou milhares de processadores de fluxo, cada uma delas é mais lenta que o núcleo da CPU e possui menos recursos (mesmo se o Turing estiver completo e puder ser programado para executar qualquer programa que a CPU possa executar). Os recursos ausentes das GPUs incluem interrupções e memória virtual, necessárias para implementar um sistema operacional moderno.
Em outras palavras, CPUs e GPUs têm arquiteturas significativamente diferentes que as tornam mais adequadas para tarefas diferentes. Uma GPU pode lidar com grandes quantidades de dados em muitos fluxos, executando operações relativamente simples neles, mas não é adequada para processamento pesado ou complexo em um ou poucos fluxos de dados. Uma CPU é muito mais rápida em uma base por núcleo (em termos de instruções por segundo) e pode executar operações complexas em um único ou poucos fluxos de dados com mais facilidade, mas não pode lidar com muitos fluxos simultaneamente.
Como resultado, as GPUs não são adequadas para lidar com tarefas que não se beneficiam significativamente ou que não podem ser paralelizadas, incluindo muitos aplicativos de consumo comuns, como processadores de texto. Além disso, as GPUs usam uma arquitetura fundamentalmente diferente; seria necessário programar um aplicativo especificamente para uma GPU para que ela funcionasse, e são necessárias técnicas significativamente diferentes para programar as GPUs. Essas diferentes técnicas incluem novas linguagens de programação, modificações nas linguagens existentes e novos paradigmas de programação que são mais adequados para expressar uma computação como uma operação paralela a ser executada por muitos processadores de fluxo. Para obter mais informações sobre as técnicas necessárias para programar GPUs, consulte os artigos da Wikipedia sobre processamento de fluxo e computação paralela .
As GPUs modernas são capazes de executar operações vetoriais e aritmética de ponto flutuante, com os últimos cartões capazes de manipular números de ponto flutuante de precisão dupla. Estruturas como CUDA e OpenCL permitem que programas sejam gravados para GPUs, e a natureza das GPUs os torna mais adequados para operações altamente paralelizáveis, como na computação científica, onde uma série de placas de computação GPU especializadas pode ser um substituto viável para um pequeno cluster de computação como nos supercomputadores pessoais NVIDIA Tesla . Os consumidores com GPUs modernas com experiência no Folding @ home podem usá-los para contribuir com os clientes da GPU , que podem executar simulações de dobra de proteínas em velocidades muito altas e contribuir com mais trabalho para o projeto (leia as Perguntas frequentes)primeiro, especialmente aqueles relacionados a GPUs). As GPUs também podem permitir uma melhor simulação física em jogos de vídeo usando o PhysX, acelerar a codificação e decodificação de vídeo e executar outras tarefas intensivas em computação. É nesse tipo de tarefa que as GPUs são mais adequadas para a execução.
A AMD é pioneira em um design de processador chamado Unidade de Processamento Acelerado (APU), que combina núcleos de CPU x86 convencionais com GPUs. Essa abordagem permite um desempenho gráfico muito superior às soluções gráficas integradas à placa-mãe (embora não correspondam às GPUs discretas mais caras) e permite um sistema compacto e de baixo custo com bom desempenho multimídia, sem a necessidade de uma GPU separada. Os processadores Intel mais recentes também oferecem gráficos integrados no chip, embora o desempenho competitivo da GPU integrada atualmente esteja limitado a alguns chips com o Intel Iris Pro Graphics. À medida que a tecnologia continuar avançando, veremos um grau crescente de convergência dessas partes que antes eram separadas. AMD prevêum futuro em que a CPU e a GPU sejam únicas, capazes de trabalhar juntas na mesma tarefa .
No entanto, muitas tarefas realizadas pelos sistemas operacionais e aplicativos de PC ainda são mais adequadas para as CPUs, e muito trabalho é necessário para acelerar um programa usando uma GPU. Como muitos softwares existentes usam a arquitetura x86 e como as GPUs exigem diferentes técnicas de programação e faltam vários recursos importantes necessários para os sistemas operacionais, é muito difícil uma transição geral da CPU para a GPU para a computação cotidiana.