La CPU di PlayStation 3 impiegata seriamente con Folding@home

La CPU di PlayStation 3 impiegata seriamente con Folding@home

Folding@home è un programma medico realizzato dall'Università di Stanford per lo studio del folding delle proteine.

di pubblicata il , alle 16:01 nel canale Videogames
PlaystationSony
 
195 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
yossarian17 Marzo 2007, 18:26 #121
Originariamente inviato da: Criceto
Sì ma non esageriamo con questa storia dell'in-order!!
Ok, è meno efficiente, ma mica il processore va 10 volte meno!!!
Ho visto dei test dove i Cell della PS3 vanno mediamente la metà di un G5 di pari frequenza. Ma quest'ultimo ha più cache e soprattutto il doppio delle unità intere e FP, quindi il fatto che sia in-order conta fino ad un certo punto!! E0 semplicemente un core semplificato. Se ne mettono 2 vedi che alla fine è simile al G5.
Inoltre se l'architettura è stabile, o con JIT tipo LLVM, si può spostare l'ottimizzazione in fase di compilazione ed avere praticamente le stesse prestazioni (almeno in teoria) di una ben più complessa architettura out-of-order. Che poi è l'approccio utilizzato da Intel su Itanium.


non sempre è possibile spostare l'ottimizzazione a livello di compilatore; quando lo si può fare, in teoria il gap viene annullato; nella realtà, però, i chip IO risultano molto meno flessibili rispetto a quelli OoO e questo, in applicazioni di tipo GP è un aspetto da non sottovalutare.
Criceto17 Marzo 2007, 18:35 #122
Originariamente inviato da: yossarian
non sempre è possibile spostare l'ottimizzazione a livello di compilatore; quando lo si può fare, in teoria il gap viene annullato; nella realtà, però, i chip IO risultano molto meno flessibili rispetto a quelli OoO e questo, in applicazioni di tipo GP è un aspetto da non sottovalutare.


E comunque quanto incide alla fine? Hai dei numeri?
Da quelli che ho visto io non molto, almeno non necessariamente tutti imputabili all'architettura in-order.

Se la semplificazione architetturale permette un innalzamento della frequenze (come nel caso del Cell) che colma il gap di prestazioni, semplicemente si è scelto un approccio diverso al problema, più efficiente dal punto di vista n. transistor/prestazioni, quindi più economico da produrre, ma ugualmente efficiente dal punto di vista prestazionale.

Credo che questa sia stata la filosofia di IBM per il Cell.
^TiGeRShArK^17 Marzo 2007, 18:36 #123
Originariamente inviato da: Criceto
Sì ma non esageriamo con questa storia dell'in-order!!
Ok, è meno efficiente, ma mica il processore va 10 volte meno!!!
Ho visto dei test dove i Cell della PS3 vanno mediamente la metà di un G5 di pari frequenza. Ma quest'ultimo ha più cache e soprattutto il doppio delle unità intere e FP, quindi il fatto che sia in-order conta fino ad un certo punto!! E0 semplicemente un core semplificato. Se ne mettono 2 vedi che alla fine è simile al G5.
Inoltre se l'architettura è stabile, o con JIT tipo LLVM, si può spostare l'ottimizzazione in fase di compilazione ed avere praticamente le stesse prestazioni (almeno in teoria) di una ben più complessa architettura out-of-order. Che poi è l'approccio utilizzato da Intel su Itanium.

E infatti si è visto il grossissimo successo di Itanium
scherzi a parte.
Per quanto si possa anche utilizzare l'approccio EPIC di Itanium (cosa di cui dubito fortemente sul cell) dovresti sapere che una CPU Out of Order è inerentemente + efficiente, per quante ottimizzazioni possa fare un compilatore.
Ora, che tu mi dica che esistano applicazioni in cui una cpu in order e out of order abbiano prestazioni del tutto comparabile nessuno lo mette in dubbio.
Ma immagina una situazione magari pesantemente multi-threaded con molteplici accessi alla memoria.
In quel caso semplicemente le prestazioni di una CPU in-oder crolleranno, perchè appena trova una banalissima istruzione che richiede accesso alla memoria (una semplice MOV che carichi un registro ad esempio) e il dato non si trova nè nella L1 nè nella L2, allora la CPU si ritroverà a perdere un centinaio di cicli di clock nell'attesa del dato, perchè NON può in nessun modo eseguire le istruzioni successive.
Una CPU out of order invece, a meno di problemi di dipendenze, può tranquillamente continuare il suo lavoro mentre attende che il dato venga caricato dalla memoria.
Da notare come il modello in-order si adatti particolarmente ad elaborazioni di flussi di dati, ed è principalmente per questo motivo che è stato adottato nel cell (Oltre ovviamente al risparmio derivato dall'architettura è semplificata).
Marko9117 Marzo 2007, 18:36 #124
Originariamente inviato da: ^TiGeRShArK^
Nessuno lo mette in dubbio.
Non certo in real-time però


http://www.multiplayer.it/forum/sho...;postcount=3474

Qualcuno usera' certamente in futuro (e qualcuno lo fa gia' ora..) le SPUs per rimuovere triangoli non visti, per fare progressive mesh, displacent mapping, etc.. e certamente daranno una bella mano a RSX ,ma gli SPE sono cosi' stupidamente veloci che probabilmente una singola SPU potrebbe tranquillamente macinare qualche milione di triangoli per frame senza neanche sbattersi piu' di tanto


nAo è uno sviluppatore italiano che lavora nei Ninja Theory, il team di Heavenly Sword.

Sul forum di Beyond3D ci sono tonnellate di informazioni su Ps3, scritte da svariati programmatori di Ps3 e Xbox360.
http://forum.beyond3d.com/forumdisplay.php?f=15

Questo thread è particolarmente interessante e non ci sono numeri teorici ma numeri reali. La tech demo a cui mi riferivo prima è stata realizzata in sole 2 settimane da 2 programmatori attraverso questo nuovo tool di sviluppo chiamato Edge.
http://forum.beyond3d.com/showthrea...9185&page=4
^TiGeRShArK^17 Marzo 2007, 18:38 #125
Originariamente inviato da: Criceto
E comunque quanto incide alla fine? Hai dei numeri?
Da quelli che ho visto io non molto, almeno non necessariamente tutti imputabili all'architettura in-order.

Se la semplificazione architetturale permette un innalzamento della frequenze (come nel caso del Cell) che colma il gap di prestazioni, semplicemente si è scelto un approccio diverso al problema, più efficiente dal punto di vista n. transistor/prestazioni, quindi più economico da produrre, ma ugualmente efficiente dal punto di vista prestazionale.

Credo che questa sia stata la filosofia di IBM per il Cell.

Che tipo di applicazione hai visto che si comportava in maniera pressochè equivalente tra Cell e Power PC?
Perchè, come ho detto prima, tale modello è utile soprattutto se utilizzato nell'analisi di flussi di dati (che è proprio l'utilizzo PRINCIPE del cell e per questo IBM ha scelto il modello in-order consentendo una maggiore frequenza per via della maggiore semplicità architetturale).
Criceto17 Marzo 2007, 18:41 #126
Originariamente inviato da: yossarian
non sempre è possibile spostare l'ottimizzazione a livello di compilatore; quando lo si può fare, in teoria il gap viene annullato; nella realtà, però, i chip IO risultano molto meno flessibili rispetto a quelli OoO e questo, in applicazioni di tipo GP è un aspetto da non sottovalutare.


Le architetture ooo sono necessarie sui PC perchè le implementazioni sono estremamente eterogenee e quindi chi fa il compilatore comunque non saprebbe per chi ottimizzare (Pentium III? Pentium IV? CoreDuo? Amd? Ecc). Ma di Cell ce n'è uno solo... almeno per ora e sicuramente per la PS3, quindi il lavoro dovrebbe essere più semplice e le differenze prestazionali minori.
^TiGeRShArK^17 Marzo 2007, 18:42 #127
Originariamente inviato da: Marko91

mi sfugge l'attinenza del post che hai linkato con quello che ti chiedevo sul radiosity in real-time
nAo è uno sviluppatore italiano che lavora nei Ninja Theory, il team di Heavenly Sword.

Lo so
Partecipò lungamente anke lui alla discussione di diverso tempo fa sul Cell, insieme a me, Yossarian, Cdimauro, Fek (programmatore della LionHead) e tanti altri che non ti sto a nominare che non finiamo +
Sul forum di Beyond3D ci sono tonnellate di informazioni su Ps3, scritte da svariati programmatori di Ps3 e Xbox360.
http://forum.beyond3d.com/forumdisplay.php?f=15

Questo thread è particolarmente interessante e non ci sono numeri teorici ma numeri reali. La tech demo a cui mi riferivo prima è stata realizzata in sole 2 settimane da 2 programmatori attraverso questo nuovo tool di sviluppo chiamato Edge.
http://forum.beyond3d.com/showthrea...9185&page=4

tnx x i link
ora gli do un'okkiata
yossarian17 Marzo 2007, 18:45 #128
Originariamente inviato da: ^TiGeRShArK^

Le latenze del Cell, se confrontate con quelle di una GPU hanno latenze + elevate dato che il Cell non è affatto pensato per essere utilizzato come una pipeline grafica, e infatti è strutturalmente poco adatto.
Ma qui non so precisamente tutti i dettagli di una pipeline grafica e immagino che yossarian ci potrà illuminare molto di +.. io dal canto mio immagino che manchino registri temporanei in maniera sufficiente e che soprattutto la quantità di unità di calcolo del Cell è molto inferiore rispetto a quella delle moderne GPU.
(Basti pensare all'elevatissimo numero di pixel pipeline presenti nelle schede odierne..mi pare che siano in un numero BEN superiore a 7 )


un chip multithreaded prevede non solo più unità di immagazzinamento dati (registri e cache interne), ma anche circuiti logici di trasmissione e di controllo più complessi. In ogni momento, il controller deve essere "informato" della situazione dell'elaborazione per ogni singola alu, in modo da poter intervenire in caso di rischi di stallo (quindi deve esserci un continuo scambio di informazioni tra alu e controller).
^TiGeRShArK^17 Marzo 2007, 18:50 #129
Originariamente inviato da: yossarian
un chip multithreaded prevede non solo più unità di immagazzinamento dati (registri e cache interne), ma anche circuiti logici di trasmissione e di controllo più complessi. In ogni momento, il controller deve essere "informato" della situazione dell'elaborazione per ogni singola alu, in modo da poter intervenire in caso di rischi di stallo (quindi deve esserci un continuo scambio di informazioni tra alu e controller).

mmmm..
questo mi ricorda il ring-bus di R520.... o sbaglio?
Criceto17 Marzo 2007, 18:51 #130
Originariamente inviato da: ^TiGeRShArK^
Che tipo di applicazione hai visto che si comportava in maniera pressochè equivalente tra Cell e Power PC?
Perchè, come ho detto prima, tale modello è utile soprattutto se utilizzato nell'analisi di flussi di dati (che è proprio l'utilizzo PRINCIPE del cell e per questo IBM ha scelto il modello in-order consentendo una maggiore frequenza per via della maggiore semplicità architetturale).


La metà di un G5 a parità di frequenza, non proprio equivalente.

Questo: http://www.geekpatrol.ca/2006/11/pla...3-performance/
Ma ora non funziona.
E' un benchmark sotto Linux con decine di test...
Le differenze sono molte in un verso o nell'altro a seconda del test, ma il risultato è quello...
Lo stesso bench su un MacPro (Xeon 2.66 Ghz, credo) dava risultati circa 4 volte superiori, da cui è evidente perchè Apple è passata a quelli...
Ovviamente testa solo la PPE del Cell, visto che non include codice per le SPE.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^