TL;DR risposta: Le GPU hanno molti più core di processore rispetto alle CPU, ma poiché ogni core di GPU gira molto più lentamente di un core di CPU e non ha le caratteristiche necessarie per i sistemi operativi moderni, non sono adatte per eseguire la maggior parte dell'elaborazione nel computing quotidiano. Sono più adatti per operazioni ad alta intensità di calcolo come l'elaborazione video e le simulazioni fisiche.
GPGPU è ancora un concetto relativamente nuovo. Le GPU sono state inizialmente usate solo per il rendering della grafica; con l'avanzare della tecnologia, il gran numero di core nelle GPU rispetto alle CPU è stato sfruttato sviluppando capacità di calcolo per le GPU in modo che possano elaborare molti flussi paralleli di dati simultaneamente, indipendentemente da quali siano i dati. Mentre le GPU possono avere centinaia o addirittura migliaia di stream processor, ognuna di esse è più lenta di un core di CPU e ha meno funzionalità (anche se sono Turing complete e possono essere programmate per eseguire qualsiasi programma che una CPU può eseguire). Le caratteristiche che mancano alle GPU includono gli interrupt e la memoria virtuale, che sono necessari per implementare un sistema operativo moderno.
In altre parole, le CPU e le GPU hanno architetture significativamente diverse che le rendono più adatte ai diversi compiti. Una GPU può gestire grandi quantità di dati in molti flussi, eseguendo su di essi operazioni relativamente semplici, ma non è adatta a un'elaborazione pesante o complessa su uno o pochi flussi di dati. Una CPU è molto più veloce su base per-core (in termini di istruzioni al secondo) e può eseguire più facilmente operazioni complesse su uno o pochi flussi di dati, ma non è in grado di gestire in modo efficiente molti flussi contemporaneamente.
Di conseguenza, le GPU non sono adatte a gestire compiti che non beneficiano in modo significativo o non possono essere messi in parallelo, comprese molte comuni applicazioni consumer come i word processor. Inoltre, le GPU utilizzano un'architettura fondamentalmente diversa; per il loro funzionamento sarebbe necessario programmare un'applicazione specifica per una GPU, e per programmare le GPU sono necessarie tecniche significativamente diverse. Queste tecniche diverse includono nuovi linguaggi di programmazione, modifiche ai linguaggi esistenti e nuovi paradigmi di programmazione che sono più adatti a esprimere un calcolo come operazione parallela che deve essere eseguita da molti stream processor. Per ulteriori informazioni sulle tecniche necessarie per programmare le GPU, vedere gli articoli di Wikipedia su stream processing e parallel computing .
Le moderne GPU sono in grado di eseguire operazioni vettoriali e aritmetiche in virgola mobile, con le ultime schede in grado di manipolare numeri in virgola mobile a doppia precisione. I framework come CUDA e OpenCL permettono di scrivere programmi per le GPU, e la natura delle GPU le rende più adatte ad operazioni altamente parallelizzabili, come nel computing scientifico, dove una serie di schede di calcolo GPU specializzate può essere un valido sostituto per un piccolo cluster di calcolo come nei NVIDIA Tesla Personal Supercomputer . I consumatori con GPU moderne che hanno esperienza con Folding@home possono utilizzarle per contribuire con GPU clients , che possono eseguire simulazioni di piegatura delle proteine ad altissima velocità e contribuire al progetto con più lavoro (assicurarsi di leggere prima le FAQs , specialmente quelle relative alle GPU). Le GPU possono anche consentire una migliore simulazione fisica nei videogiochi utilizzando PhysX, accelerare la codifica e la decodifica video ed eseguire altri compiti ad alta intensità di calcolo. Sono questi i tipi di compiti che le GPU sono più adatte a svolgere.
AMD è all'avanguardia nella progettazione di un processore chiamato Accelerated Processing Unit (APU) che combina i core convenzionali x86 della CPU con le GPU. Questo approccio consente prestazioni grafiche di gran lunga superiori alle soluzioni grafiche integrate nella scheda madre (anche se non può competere con le più costose GPU discrete), e permette un sistema compatto, a basso costo, con buone prestazioni multimediali senza la necessità di una GPU separata. I più recenti processori Intel offrono anche una grafica integrata su chip, anche se le prestazioni competitive delle GPU integrate sono attualmente limitate ai pochi chip con Intel Iris Pro Graphics. Man mano che la tecnologia continua a progredire, vedremo un crescente grado di convergenza di queste parti un tempo separate. AMD prevede un futuro in cui CPU e GPU siano un tutt'uno, in grado di lavorare insieme senza soluzione di continuità sullo stesso compito .
Ciononostante, molti compiti eseguiti dai sistemi operativi dei PC e dalle applicazioni sono ancora più adatti alle CPU, e molto lavoro è necessario per accelerare un programma che utilizza una GPU. Poiché molti software esistenti utilizzano l'architettura x86 e poiché le GPU richiedono tecniche di programmazione diverse e mancano diverse importanti caratteristiche necessarie per i sistemi operativi, una transizione generale da CPU a GPU per il computing quotidiano è molto difficile.