View Single Post
Old 05-07-2008, 11:12   #108
Mercuri0
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 4414
CPU vs GPU

GPU: tante unità aritmetiche semplici, bandwidth esagerato
CPU: branch prediction, superscalare, unità aritmetica complessa, ottima gestione della cache.

Round 1:
GPU
Test:"Cambia la luminosità di una immagine da 10 Mps"

"Fatto!"

CPU:
Test:"Cambia la luminosità di una immagine da 10 Mps"

"Cambio al pixel 1
Cambio al pixel 2
Cambio al pixel 3
....
Cambio al pixel 1.032.312
...
uff uff
...
Cambio al pixel ...."
etc

Nonostante i clock molto più alti della CPU, la GPU può processare tutto in parallelo.


Round 2:


GPU:
Test:"Se a è diverso da b, vai a c altrimenti prosegui"

"Emm.. scusa dov'è esattamente che devo andare?"
"A c, se a è diverso da b"
"Sicuro, si?"
"Si, altrimenti prosegui"
"Altrimenti che?... dai non farla difficile!"
...
...
"Senti, se ti ricambiassi la luminosità all'immagine di prima?"

CPU:
Test:"Se a..."

"Fatto!"
"Ehi!, ma devo ancora finire la domanda!"
"Potenza del branch prediction, cocco!"

Sulle "decisioni" la GPU entra in crisi e possono rallentare completamente le sue operazioni. Le CPU sono anni che vengono ottimizzate per far quello.

Verdetto:
calcoli e algoritmi complessi su un "ristretto" insieme di dati->CPU
calcoli e algoritmi "semplici" su un grande insieme di dati->GPU.

Nota di colore:
Processore ARM
Test:"Se a..."

"Vado a c."
"Ehi!, ma devo ancora finire la domanda!"
"Zi, ma il compilatore mi ha fatto la soffiata di andare a c"
__________________
flìckr

Ultima modifica di Mercuri0 : 05-07-2008 alle 11:24.
Mercuri0 è offline   Rispondi citando il messaggio o parte di esso