L’interesse per le future console va sempre di più aumentando, e ciò è perfettamente lecito considerato che sono passati ormai più di 4 anni dall’introduzione della XBox 360, prima a essere arrivata fra quelle dell’attuale generazione.
Le voci e le speculazioni più consistenti riguardano la PlayStation 4, per alcuni motivi: il primo è che, con l’arrivo sul mercato del primo modello da parte di Sony, tale è stato il successo che PlayStation è diventato, di fatto, sinonimo di console. Il secondo riguarda il sostanziale flop del progetto PS3 di Ken Kutaragi, che ha relegato questa console a fanalino di coda rispetto al Wii (inaspettato dominatore) e al rivale “diretto” (la 360).
I risultati ben al di sotto delle aspettative sono frutto di scelte, a mio parere, alquanto discutibili: una CPU (Cell) difficile da programmare e troppo sbilanciata verso lo stream processing, una GPU (RSX) tecnologicamente vecchia e limitata, memoria non unificata e col sistema operativo che ne riserva per sé una fetta consistente, assenza di scaler adeguato, integrazione del costoso (ma lento) lettore Blu-Ray, integrazione dell’hard disk (per migliorare la velocità di lettura dei dati), retrocompatibilità PS2 a fasi alterne (prima completa, poi parziale, e infine del tutto assente).
Tutto ciò comporterà per Sony uno sforzo notevole per recuperare consensi e, soprattutto, mercato con la prossima console che dovrà sfornare. Di questa, come dicevo, circolano già da tempo rumor, dei quali si è già parlato lo scorso anno anche qui su Appunti Digitali, grazie a un articolo di Alessio Di Domizio, incentrato sulla possibile adozione di Larrabee al posto di una GPU di casa Nvidia (come per RSX).
La scelta di Larrabee a livello puramente teorico sarebbe quella ideale, in quanto questo microprocessore rappresenta la fusione di due elementi che finora sono sempre stati distinti: CPU e GPU. Poiché in una console devono esserci entrambi, un solo chip che svolga entrambe le funzionalità presenterebbe notevoli vantaggi: architettura unificata (non si deve imparare a programmarne due, magari estremamente diverse) e conosciuta (basata su x86 e relative estensioni SIMD), scheda madre con un layout molto più semplice ed economico, miglior calibrazione dei carichi di lavoro, e non ultimo (e non indifferente) l’eliminazione dello scambio dei dati che ha caratterizzato finora l’interazione fra CPU e GPU (portando all’uso di appositi bus e/o collegamenti punto-punto; quindi altri colli di bottiglia e costi).
Il rovescio della medaglia è rappresentato dal fatto che questa soluzione è ancora immatura (addirittura la prima incarnazione è stata di recente soppressa da “mamma” Intel), costosa (chip enorme da produrre) e probabilmente anche molto dispendiosa in termini energetici (per lo stesso motivo). Inoltre, e per com’è strutturata, a mio modesto avviso non presenterà ottime prestazioni né come CPU né come GPU.
Faccio un piccolo excursus sull’utilizzo dell’ISA x86. Il vantaggio è sicuramente notevole perché si tratta di un’architettura conosciutissima, utilizzatissima, e per la quale oltre a eserciti di programmatori e montagne di software esistono compilatori di eccellente qualità. Lo svantaggio è che il costo della sezione di decodifica può essere più o meno elevato a seconda del target dell’implementazione.
Per Larrabee, secondo me, rappresenta uno svantaggio, perché il decoder incide non poco (un singolo core è abbastanza semplice, fatta eccezione per la sezione SIMD) e il suo costo si va a moltiplicare per ogni core. Il che, quindi, comincia a far lievitare notevolmente il numero di transistor e il loro consumo (non è un caso che le GPU moderne facciano uso di unità RISC dedicate, anche se in numero nettamente più elevato).
L’adozione di Larrabee avrebbe, quindi, comportato anche l’eliminazione del cavallo di battaglia di Sony: il famigerato Cell che tanto ha fatto discutere negli ultimi anni. Come ho commentato nell’articolo di Alessio, rinunciare a Cell significherebbe un vero e proprio bagno di sangue. In primis perché vorrebbe dire buttare via gli ingenti investimenti, quando invece si dovrebbe capitalizzarli dopo lo sforzo iniziale di progettazione e produzione. In secondo luogo, e ben più importante, è il fatto che gli sviluppatori di titoli per PlayStation 3 hanno sputato sangue (e anche soldi, ovviamente) per acquisire know-how su come sfruttare decentemente questa CPU, per cui dovrebbero ricominciare da zero.
Personalmente ero, quindi, orientato a eliminare la possibilità dell’utilizzo di una CPU diversa per la futura PlayStation 4: decisamente controproducente per i motivi esposti, oltre che una palese ammissione del fallimento di questo ambizioso progetto (come giustamente faceva notare Alessio), che avrebbe dovuto portare Cell ovunque, perfino nei PC, nelle intenzioni dei numerosi fanatici che l’hanno visto come il nuovo Santo Graal.
Ricordo che all’epoca (2004-5) c’era perfino gente che aveva scommesso una cena sulla sua adozione da parte di Apple, pronosticando addirittura un Mac Mini con questa CPU entro il 2006. Fortunatamente non si sono giocati mogli o fidanzate, perché ovviamente Apple aveva valutato Cell prima di passare agli odiati x86 di Intel, trovando che le sue prestazioni in ambito “desktop” (che poi è il mercato in cui opera) fossero decisamente scarse.
Conferme arrivate da test (per quanto limitati) fatti quando la PS3 è finalmente arrivata ed effettuando qualche prova (usando una distribuzione Linux) con risultati piuttosto eloquenti: mediamente inferiori a un Power Mac G5 (architettura sostanzialmente compatibile con quella dell’unità PPE integrata in Cell, tranne per il supporto al multithreading in hardware, che è assente) a 1,6Ghz (modello base nonché più scarso di tutta linea).
Successivi test hanno mostrato un quadro anche peggiore (fatta eccezione per la banda verso la memoria; esito scontato confrontando i due sistemi da questo punto di vista), confermando tra l’altro il decadimento prestazionale dell’architettura POWER / PowerPC lavorando a 64 bit (1000 = prestazioni del Power Mac G5 a 1,6Ghz).
Questo non significa che Cell non sia un buon processore, ma semplicemente che il suo ambito applicativo non è quello general purpose che è tradizionale appannaggio delle soluzioni desktop (e spesso anche server), quanto quello del calcolo parallelo e distribuito, dove presenta eccellenti prestazioni se gli algoritmi sono in grado di sfruttare per bene gli 8 (7 nelle versioni presenti nella PS3) coprocessori dedicati (le ben note unità SPE), opportunamente istruiti e/o pilotati dalla PPE (che funge sostanzialmente da loro controllore).
E’ perfettamente naturale, lecito e logico pensare, quindi, di poter continuare a sfruttare questo suo punto di forza nella futura PS4, anche per quanto già affermato in precedenza. Le mie idee sono, però, cambiate in seguito alla lettura dell’n-esima notizia riguardo a possibili alternative che Sony starebbe valutando per sostituire Cell. Questo non tanto per la notizia in sé (visto che ne circolano da tempo, anche se questo un po’ lascia pensare), ma per lo spunto di riflessione che mi ha offerto sull’argomento.
Concordo sui costi di produzione e le difficoltà che ha comportato il progetto (anche alla luce del fatto che, pur di risparmiare sui costi, Sony ha volutamente tagliato logica di ridondanza dall’enorme chip, confidando nella bontà delle rese del processo produttivo, rivelatesi poi disastrose), ma si tratta di problemi che ormai dovrebbero essere retaggio del passato, grazie all’affinamento delle tecnologie.
Il motivo per me è un altro, e mette in discussione proprio le capacità di calcolo di tipo streaming. Sembrerà paradossale, ma a mio avviso Cell non sarebbe più appetibile proprio su questo fronte. Per capirlo è necessario comprendere prima il dominio applicativo di questa CPU, in che modo lavora (e dovrebbe lavorare se fosse ancora una volta impiegato), e confrontarlo con le innovazioni tecnologiche che ci hanno recentemente investito e domineranno anche in futuro.
Grazie alle sue intrinseche qualità questo microprocessore viene pesantemente utilizzato per il calcolo della fisica, la manipolazione della geometria della scena (incluso il tessellation tanto di moda adesso), l’illuminazione, il post processing (spesso utilizzato per mascherare la scarsa risoluzione adottata in alcuni giochi; GTA 4 e Ghostbusters ne sono evidentissimi esempi), ma anche l’animazione e lo skinning, e perfino alcune forme di intelligenza artificiale e ricerca di percorsi (se opportunamente programmate).
Gli appassionati che seguono l’evoluzione tecnologica avranno già capito dove voglio arrivare: sono ambiti in cui le GPU moderne sono diventate particolarmente abili e a maggior ragione lo saranno in futuro, con la tendenza a integrare sempre più funzionalità per allargare il campo applicativo di quello che ormai in gergo viene denominato GPGPU computing.
Non credo, pertanto, di sbagliare se affermo candidamente che le GPU hanno sostanzialmente e metaforicamente fagocitato Cell. Detto in altri termini, affidandosi alle GPU di oggi vengono meno i presupposti per cui questo progetto è nato, e per il quale Sony, in particolare, ha investito ingenti risorse.
Citando le GPU mi ricollego a quanto affermato in precedenza: in una console è a dir poco ovvio che CPU e GPU debbano essere presenti (se non fisicamente distinte, per lo meno a livello concettuale; Larrabee permettendo). La GPU ha rappresentato per Sony, ma soprattutto per gli sviluppatori, un’altra croce. Oltre a essere basata su un’architettura vecchia (non è presente nemmeno il supporto hardware all’HDR), le prestazioni non sono esaltanti, per cui, ove possibile, i programmatori hanno cercato di scaricare su Cell un po’ del suo lavoro.
E’ chiaro che con la PS4 si pone nuovamente il problema della scelta della GPU da adottare, ed è altrettanto evidente che Sony dovrebbe dotarla di una GPU decisamente più moderna, se non vuole nuovamente rimanere al palo, introducendo magari un altro collo di bottiglia. GPU moderna equivale, però, a un elemento che, come dicevo, ormai si sovrappone a Cell quanto a funzionalità e campo applicativo.
Per continuare a tenere Cell si potrebbe pensare di scaricargli parte del lavoro, come si fa già adesso per aiutare RSX (perché l’esigenza è concreta), e… stressando ancora i programmatori (da coder ovviamente non lo condivido nella maniera più assoluta; poi i costi di produzione dei giochi moderni sono già abbastanza elevati e aumentarli non giova né alle software house né agli utenti finali).
Pertanto è molto meglio pensare a una nuova CPU multicore, coi core aventi un’architettura “tradizionale”, delegando alla nuova GPU i massicci calcoli paralleli. CPU e GPU moderne / diverse farebbero tornare nuovamente a galla il problema della retrocompatibilità, ma Sony ha già dimostrato che, volendo, può mettere una pietra tombale anche su questa funzionalità, per cui non vedo particolari resistenze in proposito.
Certo, lo spreco sarebbe enorme ed esplicita l’ammissione del fallimento del progetto ma, come si suol dire, il re è già nudo: che altro avrebbe da perdere? Soprattutto continuare a sbagliare per coprire i precedenti errori e pur di non ammettere di avere avuto torto è da stupidi. Gli errori di valutazione li commettono tutti (questa mia riflessione potrebbe anche rivelarsi del tutto sbagliata), e non cambiare idea di fronte ai fatti e ai tangibili cambiamenti non è segno d’intelligenza né di maturità.
A Sony sarebbe dovuta bastare la lezione della PS2, che aveva anch’essa un hardware progettato male e per il quale i programmatori hanno dovuto fare salti mortali per tirare fuori titoli di qualità, ma all’epoca era forte di una schiacciante posizione nei confronti della concorrenza. Ripetere nuovamente lo stesso errore questa volta le è costato molto caro, perché ha trovato i pretendenti al suo trono, forti delle precedenti esperienze, molto agguerriti.
Bisognerebbe capire quali siano le reali esigenze dei programmatori e gli obiettivi da raggiungere (nell’ambito videoludico), evitando di progettare architetture avulse dal contesto (o pensate per “far tutto”), con prestazioni “eccezionali”, ma che rimangono spesso tali solo sulla carta. Meglio ancora sarebbe affidare la progettazione dei chip ai più esperti occidentali, visto che finora gli orientali non si sono dimostrati particolarmente versati nell’ideazione e sviluppo delle architetture degli elaboratori…