TL;DR answer: As GPUs têm muito mais núcleos de processador do que as CPUs, mas como cada núcleo de GPU funciona significativamente mais lentamente do que um núcleo de CPU e não tem as funcionalidades necessárias para os sistemas operativos modernos, não são adequadas para efectuar a maior parte do processamento na computação diária. São mais adequados para operações de computação intensiva, tais como processamento de vídeo e simulações físicas.
GPGPU é ainda um conceito relativamente novo. As GPU foram inicialmente utilizadas apenas para renderizar gráficos; à medida que a tecnologia avançou, o grande número de núcleos nas GPU em relação às CPUs foi explorado através do desenvolvimento de capacidades computacionais para as GPUs, de modo a poderem processar muitos fluxos paralelos de dados em simultâneo, quaisquer que sejam esses dados. Embora as GPUs possam ter centenas ou mesmo milhares de processadores de fluxos, cada um deles corre mais lentamente do que um núcleo de CPU e tem menos funcionalidades (mesmo que sejam Turing complete e possam ser programadas para correr qualquer programa que uma CPU possa correr). As funcionalidades em falta nas GPUs incluem interrupções e memória virtual, que são necessárias para implementar um sistema operativo moderno.
Por outras palavras, as CPUs e GPUs têm arquitecturas significativamente diferentes que as tornam mais adequadas a diferentes tarefas. Uma GPU pode tratar grandes quantidades de dados em muitos fluxos, realizando operações relativamente simples sobre eles, mas não se adequa a um processamento pesado ou complexo num único ou em poucos fluxos de dados. Uma CPU é muito mais rápida por núcleo (em termos de instruções por segundo) e pode efectuar operações complexas num único ou em poucos fluxos de dados com maior facilidade, mas não pode tratar muitos fluxos em simultâneo.
Em consequência, as GPU não são adequadas para tratar tarefas que não beneficiam significativamente ou não podem ser paralelizadas, incluindo muitas aplicações de consumo comuns, tais como processadores de texto. Além disso, as GPUs utilizam uma arquitectura fundamentalmente diferente; seria necessário programar uma aplicação especificamente para uma GPU para que esta funcione, sendo necessárias técnicas significativamente diferentes para programar as GPUs. Estas diferentes técnicas incluem novas linguagens de programação, modificações das linguagens existentes e novos paradigmas de programação mais adequados para expressar um cálculo como uma operação paralela a ser realizada por muitos processadores de fluxo. Para mais informações sobre as técnicas necessárias para programar GPUs, consulte os artigos da Wikipedia em processamento de fluxo e computação paralela .
As GPUs modernas são capazes de executar operações vectoriais e aritméticas de ponto flutuante, com as mais recentes placas capazes de manipular números de ponto flutuante de dupla precisão. Estruturas como CUDA e OpenCL permitem escrever programas para GPUs, e a natureza das GPUs torna-as mais adequadas para operações altamente paralelas, como em computação científica, onde uma série de placas de computação especializadas em GPU pode ser um substituto viável para um pequeno cluster de computação como em NVIDIA Tesla Personal Supercomputers . Os consumidores com GPUs modernas e experientes no Folding@home podem utilizá-las para contribuir com clientes de GPU , que podem realizar simulações de dobragem de proteínas a velocidades muito elevadas e contribuir com mais trabalho para o projecto (não deixe de ler primeiro as FAQs , especialmente as relacionadas com GPUs). As GPUs podem também permitir uma melhor simulação física em jogos de vídeo usando PhysX, acelerar a codificação e descodificação de vídeo, e executar outras tarefas de computação intensiva. São estes tipos de tarefas que as GPUs são mais adequadas para executar.
AMD é pioneira no design de um processador chamado Accelerated Processing Unit (APU) que combina núcleos de CPU x86 convencionais com GPUs. Esta abordagem permite uma performance gráfica bastante superior às soluções gráficas integradas na motherboard (embora não corresponda a GPUs discretas mais caras), e permite um sistema compacto, de baixo custo e com boa performance multimédia sem a necessidade de uma GPU separada. Os mais recentes processadores Intel também oferecem gráficos integrados em chip, embora o desempenho competitivo da GPU integrada esteja actualmente limitado aos poucos chips com Intel Iris Pro Graphics. medida que a tecnologia continua a avançar, assistiremos a um grau crescente de convergência destas partes, outrora separadas. A AMD prevê um futuro em que a CPU e a GPU sejam uma só, capaz de trabalhar em conjunto na mesma tarefa .
No entanto, muitas tarefas executadas por sistemas operativos e aplicações PC são ainda mais adequadas às CPUs, sendo necessário muito trabalho para acelerar um programa utilizando uma GPU. Uma vez que tanto software existente utiliza a arquitectura x86, e porque as GPUs requerem diferentes técnicas de programação e faltam várias funcionalidades importantes necessárias para os sistemas operativos, é muito difícil uma transição geral de CPU para GPU para a computação diária.