Sony: nessuno sfrutterà mai PlayStation 3 al 100%

Netta dichiarazione di Phil Harrison in un'intervista a MTV: impossibile sfruttare pienamente l'hardware della console.
di Rosario Grasso pubblicata il 19 Dicembre 2006, alle 17:44 nel canale VideogamesSonyPlaystation
80 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoInchinatevi tutti!!!!
Per caso è lo stesso che a suo tempo disse: "L'hardware ps2 è talmente potente che potrebbe far girare in real time star wars episode I"
anche se non sono un fanboy dell'una o dell'altra console,anche se a me delle console non frega nulla,anche se per quel che mi concerne potrebbero eliminarle dalla faccia della terra senza problemi,ritengo che la sony a questo giro non abbia saputo convincere,la qualità e la resa grafica della sua strabiliante console lascia molto a desiderare.....e mi meraviglio del fatto che ci sia nvidia dietro a quella gpu......
......ma comunque i boccaloni se ne compreranno a palate,e la ps3 finirà per avere più successo di tutte le altre console messe insieme,schiacciando la concorrenza..........semplice no?????
Direi che hai riassunto in termini molto diretti ciò che credo pressappoco anch'io.
Meno male che ho il mio caro e fido Pc e sto ad osservarli mentre cadono nelle pallonate raccontate dai comici a libro paga Sony(come questo Harrison), e mi faccio 4 risate.
La frase si presta a molte interpretazioni.
Cmq chi sa se ha contato anche la comunità open source tra gli sviluppatori:
Linux su PS3
Quanti utenti linux ci sono tra gli utilizzatori di PS3?
Certo è che si ha già un bel po' di software a disposizione in questo modo.
Ben venga PS3 se apre una nuova sfida
Ciao.
Detto così è come se bastasse aggiornare il drive della x700 per avere una x1950 nuova fiammante...
Se poi hanno fatto una console che nessuno sfrutterà mai al 100% non mi sembra una cosa di cui vantarsi..o non ne faranno mai più perchè questa è eterna (COMPLIMENTI!), oppure quando sarà obsoleta ci saranno ancora giochi che non la sfruttano....
Prima di sparare idiozie ti sei informato? il punto di vista prettamente tecnico l'hai valutato tu ?
L'ultima volta che ho sentito il mio prof a lezione lodare l'architettura della ps2 mentre ci spiegava il funzionamento dell' emotion engine non mi sambrava ne parlasse male...
naturalmente prima poniti in un contesto storico, riflettendo su in che anno sara' stata prgettata...
In che modo poi quantificate che per esempio Gears of War sfrutta un 30% dell'XBOX 360? La sfrutta eccome e anche un bel po'...
Ma avete mai programmato qualcosina che assomigli a un videogame? Si arriva a dei punti che non si può piu semplificare niente e quindi si è al 100% o al max al 99% della potenza utilizzabile.
Tu riesci a programmare qualcosa in grado di sfruttare appieno la capacità di calcolo teorica di un processore? Magari farlo con Cell! (ma anche coi quadricore, se per questo)
In che modo poi quantificate che per esempio Gears of War sfrutta un 30% dell'XBOX 360? La sfrutta eccome e anche un bel po'...
Ma avete mai programmato qualcosina che assomigli a un videogame? Si arriva a dei punti che non si può piu semplificare niente e quindi si è al 100% o al max al 99% della potenza utilizzabile.
il fatto è che prima di parlare bisognerebbe informarsi un pò...... magari documentarsi.......
--------------------------------------------------------------------------------
Programmare su piattaforma Xbox 360
Il sistema operativo non utilizza il core ‘0’, ma usa circa il 3% della potenza del core ‘1’ e il 3% del core ‘2’, quindi il 98% della potenza dei tre core rimane libera e utilizzabile dalle applicazioni videoludiche. Programmare per 360 è abbastanza semplice e diretto grazie alla quantità di memoria principale condivisa, alla dimensione della cache L2 e al fatto che le informazioni passano molto facilmente e velocemente attraverso i differenti threads dell’applicazione con l’uso dei puntatori.
Tipicamente un’applicazione viene inizialmente sviluppata utilizzando un solo thread di un core, poi, una volta sviluppata l’appz, il tutto viene segmentato per utilizzare più core e possibilmente anche più threads hardware per ogni core. Il modo più semplice per operare questa segmentazione è quello di assegnare il codice di controllo del gioco e l’AI ad un core e il codce di rendering grafico ad un altro core. Non appena il codice dell’AI è stato eseguito vengono inviate al core di rendering grafico e informazioni per processare il frame successivo. Quindi il codice di rendering grafico eseguito sul secondo core va a creare il frame corrente mentre simultaneamente l’AI esegue il codice necessario al frame successivo.
Segmentare il codice ulteriormente comincia ad essere molto più difficile. Lo sviluppatore deve anzitutto determinare dove potrebbero formarsi dei colli di bottiglia. Se questi si verificano all’interno del codice AI, dovrà accertarsi che possa essere attuata una processazione parallela (per esempio in un gioco racing, potrebbe essere possibile che il programma principale processi l’AI di 5 auto e un altro core processi l’AI di altre 5 auto sula tracciato contemporaneamnte). Se il collo di bottiglia si verifica invece nel codice della grafica, allora è possibile assegnare parte del codice di rendering in parallelo ad un altro core.
Quando un programma è suddiviso su tre core, uno dei core è attivo per il 100% del tempo mentre gli altri due possono risultare attivi per poco tempo (10%, 20%, 50%, etc.). In tal caso è richiesta maggior segmentazione sul core occupato al 100%, quindi può essere aggiunto un nuovo thread hardware a uno dei core meno attivi per gestire 2 processi allo stesso tempo. Una volta saturati tutti i threads hardware disponibili, se è necessaria una ulteriore segmentazione, possono essere istanziati dei threads software (che sono comunque meno efficienti di quelli hardware) fino a che anche quel core non raggiunge il 100% dell’occupazione.
Una volta che tutti e 3 i core hanno un’utilizo prossimo al 100% saranno stati raggiunti il massimo frame rate, la massima sofisticatezza e dettaglio grafico. Se l’AI propone frames più velocemente di quanto la GPU non possa processarne (massimo 60 fps a 720p o 30 fps a 1080i), possono essere aggiunti ulteriori dettagli.
Programmare su piattaforma PS3
Programmare per PS3 è molto più difficile di quanto non lo sia su Xbox 360. In un certo senso PS3 è stata progettata in modo simile ai sistemi multi processore utilizzati in ambiti specifici, per esempio al NASA Ames Research Center. Il concetto si basa sul principio che vede un enorme quantità di dati matematici che si ripetono e che possono essere processati in parallelo o sequenzialmente ma spezzettati (per esempio un core moltiplica due array di 10000 numeri e poi passa l’array risultante a un altro core che opera divisioni sui singoli elementi dell’array e ne passa il risultato a un altro core che provvederà ad atre operazioni sui dati e così via; dopo che il primo core ha terminato l’operazione, acquisisce nuovi dati e prosegue su questi con la stessa operazione.
Così come avviene per Xbox 360, anche qui l’applicazione viene inizialmente sviluppata utilizzando il core PPE. A questo punto sarebbe lecito pensare che la PS3 (come la 360) sia in grado di segmentare il codice assegnando a un core il codice di controllo dell’AI e ad un altro il codice di rendering grafico. Questo non è possibile! Dal momento che il codice vero e proprio di un’applicazione si attesta sui 100 MB e che la memoria di ciascun SPE è di soli 256KB solo 1/400 del codice totale può essere depositato nella memoria di uno SPE. Inoltre poiché in uno SPE non c’è capacità di branch prediction (http://it.wikipedia.org/wiki/Predizi...le_diramazioni) , le diramazioni andrebbero fatte il più piccole possibili. Pertanto il programmatore deve trovare codice che sia inferiore ai 256KB (incluso lo spazio necessario per i dati) prchè questo possa essere eseguito in parallelo.
Se assumiamo che lo sviluppatore sia in grado di individuare sufficienti segmenti di codice tali per cui tutti e 6 i core SPE vengano utilizzati, adesso dovrà prodigarsi per bilanciare il carico di lavoro tra i cores. Come con Xbox 360, non è detto che i core siano sempre occupati ma è possibile che alcuni o tutti vengano utilizzati solo in minima parte. Aggiungere nuovi thread hardware non è possibile dal momento che ciascun core dispone di un solo thread hardware e agiungere threads software sarebbe probabilmente controproducente vista la memoria limitata. A questo punto l’unica opzione possibile è quella di uno schema che vede il core PPE trasferire nuovo codice agli SPE attraverso DMA, una volta terminate le operazioni sulla tranche di dati precedenti. Questa è ovviamente una procedura che richiede parecchio tempo.
Conclusioni
Ho seri dubbi sul fatto che molti sviluppatori programmeranno sui core SPEs della PS3: la complessità è enorme, i tempi di sviluppo sono molto lunghi e c’è un’elevata probabilità di sviluppare software buggato. Sospetto che Gears of War stia già sfruttando le potenzialità del sistema multiprocessore ma che stia solo usando il 50% della potenza realmente disponibile. Alla luce di ciò e di quanto detto sopra mi riesce difficile immaginare che un gioco PS3 possa risultare migliore di uno per Xbox 360.
Riferimenti esterni:
http://dpad.gotfrag.com/portal/story/35372/?spage=1
http://www.hardcoreware.net/reviews/review-348-1.htm
http://en.wikipedia.org/wiki/Synergi...cessor_Element
http://en.wikipedia.org/wiki/Xenos
http://arstechnica.com/cpu/03q1/ppc970/ppc970-2.html
Anche in questo caso, non abbiamo affatto certezza che si tratti di una testimonianza super partes. Possiamo però constatare che chi ha scritto questo articolo è comunque persona competente in materia e che ha portato a sostegno della propria tesi dati tecnici documentati. Il tempo darà ragione a Sony o a Microsoft.
__________________
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".