|
Senior Member
Iscritto dal: Sep 2002
Città: Orizzonte degli eventi
Messaggi: 22732
|
[PS3 Engine] CELL + nVIDIA RSX
Visto che nell'altro thread si era andati troppo OT, riporto qui il post del Signor Londay prelevato dal forum di mondoXBOX
Quote:
Ciao a tutti io credo di non aver bisogno di presentarmi il mio Nick è in tutta la rete c'è chi mi critica ma anche chi mi stima ..
Premetto che sono un possessore di una Xb360 comprata 2 volte e cambiana per 3 volte "la prima" ...
Bella console senza ombra di dubbio chiunque dica il contrario è come minimo un pò incompetente...
Veniamo ora a quello che mi ha dato la volontà di iscrivermi cioè il discorso
PS3 è difficile da programmare ?
PS3 non doveva avere solo Cell come processore senza GPU ?
Quanto costa e come riusciranno a ovviare ai presunti problemi ?
Rispondo cosi:
un algoritmo grafico che su di un processore a 3.4 Ghz genera 24 milioni di vertici al secondo su Cell lo stesso identico algoritmo non ottimizzato per cell genera 589 milioni di vertici ... quindi general purpose o no S-FPU o D-FPU cambia molto poco poichè cell se ottimizzato a dovere raggiungerebbe oltre 4 miliardi di vertici al secondo ... ricerce condotte dal M.I.T. e non da gente che fa hotdog...
Non si può non riconoscere le difficoltà che una nuova tecnologia come questa "architettura PS3 / cell+RSX / purtroppo comporta ma in progettazione lo hanno capito senz'altro bisogna vedere quanto ci mettono i developer "e quanti siano disposti parlando di developer di terze parti fatta eccezione per il team NINJA di tecmo" a intraprendere una strada davvero difficile perchè insomma comporta tantissimi workaround "raggiri" per fare cose che magari sono di una estrema semplicità .. Microsoft in questo ha sia enormi e smisurati meriti ma anche demeriti in egual misura o forse ancora maggiore poichè ha abituato le community di developer ad avere la pappa pronta e cosi facendo li ha si "figurativamente" permesso di esprimere i propri progetti con una semplicità estrema ma dall'altro lato ha anche limitato in maniera paurosa lo sfruttamento degli hardware...
Cell può essere utilizzato in 3 modi differenti per grafica "e chi più ne a ne metta"
1: Può accelerare in maniera spaventosa i calcoli delle geometrie e i calcoli volumetrici
2: può accelerare codice che normalmente grava troppo su GPU perchè bisogna compilare con troppa roba per ottimizzarla in modo tale che non si sprechi troppa potenza di calcolo per fare cose che cell farebbe a occhi chiusi
3: può tramite specifici kit essere integrato come processore o pipeline all'interno di RSX "detto semplicisticamente, molto semplicisticamente"
Il discorso purtroppo e che fino ad oggi il metodo di sviluppo convenzionale su architetture Multicore era avere un compilatore e alcuni algoritmi che "SOLI" ottimizzavano il workflow "La distribuzione dei dati" tra i vari core... ed una logica di prefetch si occupava di "correggere" gli errori e il parallelismo...
questa cosa su Cell invece "deve essere gestita e preventivamente imposta dal developer" ecco la loro difficoltà,in verità non sanno fare il loro lavoro.. e Sony ha implementato Playstation EDGE per permettere "la simulazione di COME" il developer "DOVREBBE" programmare la distribuzione dei dati ai vari processori "SPE" all'interno di cell ed ovviamente altre cose come monitorare il residuo sfruttabile dell'architettura
Purtroppo se da un lato è vero che è possibile sviluppare con semplicità estrema nel modo convenzionale "cioè come in passato o cmq su processori non come Cell" dall'altro arrivano i limiti poichè non è possibile per un processore convenzionale l'utilizzo al 100% . Cell cambia questa cosa ma purtroppo si deve capire come utilizzarlo "più che altro si deve lavorarci e non lamentarsi" visto che la logica e la filosofia di programmazione e completamente e radicalmente cambiata... i tool e le piattaforme come Playstation EDGE daranno un incredibile boost alle performance e alle ottimizzazioni per la piattaforma PS3 .
Cell ha la possibilita di rendersi componente integrata di RSX...
Io credo che Cell avrà il compito di "elaborare e accelerare" preventivamente i dati fornendoli ad RSX già pronti , cosi facendo RSX sgraverà il suo workflow di oltre il 40% il che vuol dire una potenza ineguagliabile perchè i calcoli che davvero inpegnano verranno già elaborati da cell
Lo scopo è permettere il rendering direttamente da XDR che alla velocità di carico / elaborazione / scarico di cell vuol dire avere sempre a disposizione questi 256 Mb in qualsiasi momento , senza contare le unità ACU in ogni SPE
che sono 512Kb con blocchi indipendenti di 128KB x 4 e canali bi-direzionali tra ogni SPE e da ogni SPE quindi ogni SPE puo "prelevare" i dati già elaborati e "ri-elaborarli" .. teoricamente bisognerebbe prendere come esempio una pipeline a 8 stadi indipendendi formata da veri e propri processori con DMA , Cache, Bus indipendenti e supporto Multithreading a 64bit... "detto sempre molto semplicemente"
i 256 Mb della GDDR3 verranno utilizzati come "semplice deposito ad elevata banda" poichè potrebbe essere necessario ricalcolare alcuni elementi della scena che magari non richedono un canale cosi veloce...
In definitiva cell non è un processore che ha una data funzione e quindi usi quella e basta Cell è davvero quello che si dice "programmare" un processore
se non sei capace Cell vale quanto un 486 fermo restando la sua straordinaria potenza ...
considera che un codice ottimizzato per cell permette oltre 4 miliardi di vertici...
Veniamo ad un confronto diretto...
Quanto segue l'ho già ripreso e riscritto in altri forum dove era successa la stessa identica cosa cioè gli utenti "casual" non riuscivano a spiegarsi il XKè 360 fosse "apparentemente" migliore graficamente..
Metterò a confronto l'hardware PS3 con quello 360 soprattutto dal punto di vista architetturale e prestazionale... ci vorra esperienza per poter comprendere quanto segue quindi buona rilettura.
Il processore CELL:
Il processore "CELL" dispone di 1 unità centrale chiamata PPE "Power Processing Element" Questo singolo componente "core" puo calcolare da solo
12 valori in floating point per ciclo di clock ad una velocità di 3.2Ghz quindi
:12x3.2=38.4 Gflops al secondo
Il processore XENON "cpu centrale di 360" dispone di 3 elementi PPE "ANCHE Sè NON SONO IDENTICI" quindi il solo processore centrale di 360 è in grado di calcolare: 12x3x3.2=115.2 Gflops al secondo
Ora veniamo all'elemento che in CELL è più importante ed innovativo cioè parliamo degli SPE "Sinergistyc Processing Element"
Cell disponde di 8 di questi "SPE" 1 di questi è dedicato alla decodifica AUDIO ed 1 altro è "riservato a ridondanza e sistema operativo" ne rimangono quindi 6 per l'elaborazione. Ogni SPE è in grado di calcolare 8 valori in floating point per ciclo di clock quindi : 8x3.2=25.6
25.6 Gflops x 7 spe= 179.2 Gflops
ora non dimentichiamo che abbiamo a disposizione anche la potenza di elaborazione del "PPE" che è pari a 38.4 gflops quindi ne ricaviamo un totale di : 217.6Gflops Ora sè è vero che questo calcolo viene fatto tenendo conto dell'utilizzo al 100% di questi elementi è anche vero che questo discorso è più fruibile su PS3 che su 360 quindi già qui siano in netto vantaggio a favore di PS3..
Passiamo ad RSX e XENOS le "Graphics processing Unit" delle 2 console rispettivamente Playstation3 ed Xbox 360 .
PS3 > Nvidia RSX:
Capace di un elaborazione pari a 1882 Gflops al secondo .....
contro i 742 Gflops di XENOS...
Come esempio prendiamo in considerazione il numero degli shader
che nel processore RSX sono pari a 56 , mentre nello XENOS sono 48
Molti non sanno che già in questo caso questi shader non possono essere confrontati, poiche' compiono operazioni differenti, sia nella tipologia che nella quantita' neanche le ROP possono essere paragonate perchè è vero che quelle dell'RSX sono piu' lente ma devono svolgere un lavoro molto meno pesante sè confrontate con la "pessima" architettura da volgare PC con qui è stata realizzata xbox360 ed il processore XENOS
Rsx:
24 pixel shader
4 vertex shader
128 bit di bus
22,4 Gb/s di banda passante "che poi non è nemmeno corretto dichiararlo cosi"
8 rops "invece che 16 nella versione NV50, più avanti verrà spiegato il xkè"
550 Mhz Core clock
256mb di GDDR3 a 700Mhz, possibilità di accesso ai 256 Mb del Cell, non so con che velocità la ram del CELL è a 3.2Ghz
Classe g70/71. Supporto totale alle Dx 9.0c/L e SM 3.0 , SM3.0+/4
L'RSX, deriva dall'NV50 castomizzato appositamente, dunque possiede 48 P-Shader raggruppati a coppie in 24 P-Pipeline. Possiede inoltre 8 VertexShader.
Il totale delle ALU e' di 96 (ogni shader e' fisicamente composto da due ALU, viste come una sola logica) e una mini-ALU per shader. Dunque sono 96(P-Shader)+8(Vshader)=104+48(mini-Alu).
Dispone di 8 ROP (rasterizzatori, ovvero, unita' che operano sull'immagine finita, gli applicano eventuali forme di post-processing, tipo AA ed in alcuni casi HDR e li "disegnano" a schermo), le quali non si occupano dell'HDR (nella PS3), che e' deputato alla P-Pipline. Avere piu' ROP con quella RAM video, non servirebbe a nulla, in quanto non possono lavorare con la XDR.
L'RSX puo' fare ogni tipo di operazione anche dalla XDR (volendo anche il rendering), questa porta altri 25,6GB/s (64bit*3,2Ghz/8bit=25,6GB/s), lavorare con questa memoria richiede piu' cicli, dunque e' probabile che nVidia/Sony, abbia inserito un maggior quantitativo di cache, (196KB, molte di più dell'NV50), proprio per compensare le latenze maggiori. Questo giustificherebbe anche il numero di transistor, che dovrebbe essere inferiore a quello dell'NV50, dato che non include le logiche dedite al pure-video ed 8 ROP (che sono integrate nel DIE).
I 48 Shader generici di XENOS sono appunto "unificati", il che significa che sono tutti uguali ed Il loro compito mutera' (ogni 4 clicli di clock), a seconda delle richieste, tra vertici e pixel.
Dunque XENOS dispone di 48 shader (anche in questo caso, 96 ALU, perche' fisicamente doppie), in luogo dei 56 dell'RSX (152ALU e mini).
Ovviamente, il paragone, se pur numericamente ora corretto, resta COMPLETAMENTE inutile. Non e' il numero di Shader che fornisce la potenza d'elabolrazione, ma la capacita' specifica delle unita' di calcolo, che li rendera' migliori o peggiori a seconda del compito che gli sara' richiesto.
Ad esempio:
il caricamento di una texture, sull'RSX occupera' parte delle risorse dalla P-Pipeline, ma potra farne fino a 24 per ciclo,
nello XENOS, sono gratuite (gestite da uan logica indipendente), ma limitatamente al numero di 16 contro le 24 di RSX
Quanto alla banda di memoria tanto cantada dalla ATI per la loro EdRam, i 256GB/s, riguardano solo la comunicazione delle ROP con l'eDRAM, entrambi contenuti nel daughter DIE, che e' separato dal resto della VPU ed e' connesso ad essa tramite un canale molto piu' lento, ma pur sempre rapido (32GB/s) "dove RSX in questo caso copre oltre 35GB/s sia in entrata che contemporaneamente in uscita"
L'eDRAM implementata nello XENOS e' molto piccola, non puo' contenere un FrameBuffer medio (una 720p AA4X, occupa 28MB), dunque non puo' fare da memoria d'immagazzinamento, non potra' contenere il Vbuffer, né le texture o qualunque altro dato che non sia prettamente relativo al FrameBuffer stesso, questo errore fù fatto nella progettazione di Playstation2 "difatti avevano solo 4mb" solo che si parlava del 1999 solo che al tempo di PS2 proprio errore non lo era viste le risoluzione di quel tempo...
nel caso di 360 "XENOS" tutto i dati provengono dalla DDR, che deve soddisfare sia le richieste dello XENOS che dello XENON (questo e' solo uno dei maggiori limiti della console xbox360).
Non disponendo di un'eDRAM abbastanza grande "cioe 10MB", lo XENOS ha bisogno di svuotarla in continuazione (cio'è trasferire nella memoria principale i dati) e riempirla piu' volte per ogni frame, dunque, dividerla in tessere, ma questo comporta un piccolo scotto da pagare, ovvero, tutti i poligoni compresi in piu' di una tessera, dovranno essere ricalcolati ad ogni frame, il che comporta un aggravio del peso delle geometrie sia per XENOS che per XENON, mediamente compreso tra il 20 e l'80% nel caso di sole 3 tessere (vi sono metodi alternativi, con il memexport ed il predicated tilling che pero', richiedono molte più risorse e quindi XENON avrà difficoltà xkè non eccelle per nulla in questo senso). Nel caso dell'accoppiata RSX / CELL questo non avviene assolutamente poichè il framebuffer puo anche essere di 512mb e non solo di 10mb... senza nessun aggravio , senza contare che CELL potrebbe decidere in alcune circostanze di programmazione di "chiedere ad RSX" ulteriore potenza di calcolo per renderizzare un immagine... General Purpose Graphics Processing Unit
Esempio:
lo XENOS e' DX9+, gli SM sono praticamente dei 4.0, ma non e' DX10, manca totalmente di una tipologia di shader detta (Geometry) che RSX grazie al processore CELL puo generare tranquillamente prendendosene carico ... e quindi arrivare ad essere DX10..
Sorvolando sui numeri errati "di cui ormai in rete è pieno per screditare Sony che dovremmo ringraziare per aver prodotto tale hardware"
c'e' da aggiungere una cosa.
L'RSX non sara' utilizzato come una VPU da PC cioe come si fà su XENOS in 360, i giochi dedicati alla PS3, utilizzeranno molto meglio le risorse e le distribuiranno maggiormente. un esempio puo essere un AA che fa parte dell'engine, non richiedera' assolutamente tutta quella banda di memoria che richiede su 360 (ove e' una cosa aggiunta e forzata in un secondo momento), né pesera' cosi' tanto (calcolera' solo il necessario).
Un HDR fatto nella P-Pipeline di RSX, sara' molto piu' bello come risultato (32 bit, contro i soli 10 dello XENOS) e potra' gravare sui P-Shader, che sono decisamente il punto di forza di RSX e il punto più debole di XENOS
Dunque non e' corretto parlare di flessibilita' maggiore o minore, ma di utilizzi differenti dove RSX e stralargamente superiore a quel rottame di XENOS e dove cell è nettamente superiore a quel rottame di XENON
Dichiarazioni in merito alla programmazione e difficoltà economiche
Tradotto da me "a grandi linee" questo articolo su PS BLOG "intervista fatta da GAMEPRO
http://blog.us.playstation.com/2007/...o-develop-for/
PS3 è davvero cosi difficile da programmare confronto ad altri hardware ? quanto costa in realtà ?
Bella domanda , in realtà la cosa è talmente complessa da spiegare che in definitiva non è possibile, L'elevato costo lo si ha sia su PS3 che su 360 che su PC il discorso che il processore CELL permettendo molta più fisica , grafica di più alto livello , Effetti di illuminazione ed un suono eccellente ed altre cose inevitabilmente DEVE necessariamente esserci un costo maggiore proprio per arrivare a sfruttare queste caratteristiche extra , quqesto non vuol dire necessariamente che PS3 costa più di programmazione vuol dire solo che bisogna lavorarci di più e più ore di lavoro comportano un costo maggiore...
Middleware come havok e altri tools di sviluppo per grafica vengono appositamente personalizzati per ovviare alla difficolta che hanno le unità SPU di Cell, questo non vuol dire che i programmatori dovranno reinventarsi tutto da capo.
Playstation EDGE è messo a disposizione gratuitamente per ogni developer proprio per ovviare alla carenza di conscenza sull'utilizzo delle unità SPU di cell
che si occuperanno di grafica , animazione, fisica, e tutto quello che sta intorno ... 360 è un altra macchina con hardware decisamente meno performante ma più facile da utilizzare .. le SPU non sono dei comuni processori come possono essere le PPU , sono il compromesso tra le performance e la versatilità . Se un progetto viene iniziato su 360 dovrà necessariamente essere ri-scritto per poter essere adattato a PS3 poichè le 2 architetture sono troppo differenti e nulla hanno in comune...
Venendo al discorso di Xbox live.. Microsoft mette a disposizione delle librerie standard per il supporto al gioco online , Sony invece lascia interamente tutto il lavoro a piacere degli sviluppatori ovviamente questo comporta un ulteriore lavoro...
http://blog.us.playstation.com/2007/...o-develop-for/
In quando al bluray e al suo successo
http://www.gamestar.it/showPage.php?..._articolo.html
Mie considerazioni finali:
La storia si ripeterà senz'altro come è accaduto con la perfetta architettura di Dreamcast e l'eccellente rapporto qualità prezzo verso PS2 dove si presentavano le stesse identiche problematiche di PS3 che sono state AMPIAMENTE superate e lo si è visto in 8 anni di vita "e tutt'ora vende" di PS2 ... Una tecnologia realmente rivoluzionaria comporta necessariamente un inpegno maggiore.
PS: non risponderò ad altre domande... quanto scritto è più che sufficente.
XBL: Daxxas2k4
PSN: Londay-danny-lew
PCN: Danny lewmann
MSN: [email protected]
BLOG: http:\\playstationknowledge.splinder.com
BLOG: http:\\xboxknowledge.splinder.com
|
Così potremo commentarlo senza andare OT, e sarebbe interessante se intervenissero anche persone altamente qualificate come Londey e magari nAo
__________________
AMD Ryzen 7 9800X3D | Arctic Liquid Freezer 3 420 | ASUS ROG Strix X870E-e | 2x16GB DDR5 6400 CL30 G.Skill | Zotac NVIDIA GeForce RTX 5090 Solid | Seasonic Prime 1,3Kw Titanium | Kingston Fury Renegade 2Tb + SSD vari | Lian li o11 Dynamic Evo XL | ASUS PG42UQ | Razer DeathAdder V3 + Atlas + Huntsman V3 Pro TKL + Leviathan V2 Pro + Blackshark v2 pro (2023) | Synology DS423+ 3x8TB WD Red Pro | MacBook Air 2022 | AVM 5690 Pro |
|