TL; Risposta DR: le GPU hanno un numero di core di processore molto più elevato rispetto alle CPU, ma poiché ogni core GPU funziona in modo significativamente più lento rispetto a un core CPU e non ha le funzionalità necessarie per i sistemi operativi moderni, non è appropriato per eseguire la maggior parte dell'elaborazione quotidiana computing. 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 utilizzate solo per il rendering della grafica; con l'avanzare della tecnologia, il gran numero di core nelle GPU relative alle CPU è stato sfruttato sviluppando capacità computazionali per le GPU in modo che possano elaborare simultaneamente molti flussi paralleli di dati, indipendentemente da quali dati possano essere. Mentre le GPU possono avere centinaia o addirittura migliaia di processori stream, ognuna funziona più lentamente di un core CPU e ha meno funzioni (anche se sono Turing complete e possono essere programmate per eseguire qualsiasi programma che una CPU può eseguire). Le funzioni mancanti dalle GPU includono interrupt e memoria virtuale, necessari per implementare un sistema operativo moderno.
In altre parole, CPU e GPU hanno architetture significativamente diverse che le rendono più adatte a compiti diversi. Una GPU può gestire grandi quantità di dati in molti flussi, eseguendo operazioni relativamente semplici su di essi, ma non è adatta all'elaborazione pesante o complessa su un singolo o pochi flussi di dati. Una CPU è molto più veloce su base core (in termini di istruzioni al secondo) e può eseguire operazioni complesse su uno o più flussi di dati più facilmente, ma non può gestire in modo efficiente molti flussi contemporaneamente.
Di conseguenza, le GPU non sono adatte a gestire attività che non beneficiano in modo significativo o che non possono essere parallelizzate, comprese molte comuni applicazioni consumer come i word processor. Inoltre, le GPU usano un'architettura sostanzialmente diversa; si dovrebbe programmare un'applicazione appositamente per una GPU affinché funzioni, e sono necessarie tecniche significativamente diverse per programmare le GPU. Queste diverse tecniche includono nuovi linguaggi di programmazione, modifiche a linguaggi esistenti e nuovi paradigmi di programmazione che si adattano meglio all'espressione di un calcolo come operazione parallela che deve essere eseguita da molti processori di stream. Per ulteriori informazioni sulle tecniche necessarie per programmare le GPU, consultare gli articoli di Wikipedia sull'elaborazione dei flussi e l' elaborazione parallela .
Le moderne GPU sono in grado di eseguire operazioni vettoriali e aritmetica in virgola mobile, con le ultime carte in grado di manipolare numeri in virgola mobile a precisione doppia. Frame come CUDA e OpenCL consentono di scrivere programmi per GPU e la natura delle GPU li rende più adatti a operazioni altamente parallelizzabili, come nel calcolo scientifico, in cui una serie di schede di elaborazione GPU specializzate può essere una valida alternativa per un piccolo calcolare il cluster come nei supercomputer personali NVIDIA Tesla . I consumatori con GPU moderne che hanno esperienza con Folding @ home possono usarli per contribuire con i client GPU , che possono eseguire simulazioni di ripiegamento delle proteine a velocità molto elevate e contribuire più lavoro al progetto (assicurati di leggere le FAQin primo luogo, specialmente quelli relativi alle GPU). Le GPU possono anche consentire una migliore simulazione fisica nei videogiochi utilizzando PhysX, accelerare la codifica e la decodifica video ed eseguire altre attività ad alta intensità di calcolo. Sono questi tipi di attività che le GPU sono più adatte a svolgere.
AMD è all'avanguardia nel design di un processore chiamato Accelerated Processing Unit (APU) che combina core di CPU x86 convenzionali con GPU. Questo approccio consente prestazioni grafiche di gran lunga superiori alle soluzioni grafiche integrate nella scheda madre (sebbene non corrispondano a GPU discrete più costose) e consente un sistema compatto, economico con buone prestazioni multimediali senza la necessità di una GPU separata. Gli ultimi processori Intel offrono anche grafica integrata su chip, sebbene le prestazioni della GPU integrata competitiva siano attualmente limitate ai pochi chip con Intel Iris Pro Graphics. Mentre la tecnologia continua ad avanzare, vedremo un crescente grado di convergenza di queste parti una volta separate. AMD prevedeun futuro in cui CPU e GPU sono una cosa sola, in grado di lavorare insieme senza problemi sullo stesso compito .
Tuttavia, molte attività eseguite dai sistemi operativi e dalle applicazioni per PC sono ancora più adatte alle CPU e è necessario molto lavoro per accelerare un programma utilizzando una GPU. Dato che molti software esistenti utilizzano l'architettura x86 e poiché le GPU richiedono diverse tecniche di programmazione e mancano alcune importanti funzionalità necessarie per i sistemi operativi, una transizione generale da CPU a GPU per il calcolo quotidiano è molto difficile.