Dopo aver mostrato il corretto funzionamento della ESRAM di sistema, collegata direttamente alla GPU (stacked), Microsoft ha offerto una dimostrazione del chiacchierato Cloud Computing, irrealizzabile secondo i più e inutile per gli scettici. La “prova su strada” è avvenuta nel corso dell’evento BUILD 2014, concluso la settimana scorsa: il video mostra un PC non connesso alla rete e un’altra postazione collegata ad Azure, il network di Microsoft.
La demo prevedeva la demolizione di un grosso palazzo sparandoci contro dei missili. Il PC non connesso al Cloud ha mostrato segni di cedimento già dopo pochi colpi di cannone, facendo scendere il frame rate dai 32 a soli 2 fps. Bisogna tenere in considerazione che ogni singolo frammento, ogni singolo pezzo della struttura presa di mira dai missili era soggetto a fisica realistica in tempo reale, laddove ogni singolo elemento godeva di una propria rotazione, velocità, inerzia, interazione. Tutti elementi che, se gestiti in locale, anche un potente PC non è in grado di processare.
Di converso la postazione collegata alla rete Microsoft ha mantenuto stabili i 32 fps mostrando quindi una fluidità senza paragoni e, per i più scettici, fatto altre prove nella stessa demo distruggendo anche elementi al di fuori del palazzo principale, senza mostrare il benché minimo rallentamento.
Questo è il concetto di cloud computing, ossia lasciare ai data center il lavoro di calcolo di fisica e una porzione degli elementi visivi con il PC chiamato a renderizzare solo la parte circostante, più vicina al giocatore diciamo. Tutto il carico è quindi adibito al cloud e le risorse locali utilizzate per altri elementi. La demo, piuttosto impressionante, ha dimostrato dunque come il cloud possa effettivamente alleggerire compiti computazionali di un PC o una console, in questo caso Xbox One, aumentandone le potenzialità. Non è un caso che la stessa Microsoft dichiarò in tempi non sospetti che una Xbox collegata al Live (ossia anche Azure) diventi tre volte più potente.
Ma quale connessione bisogna possedere per godere del cloud computing? Microsoft consiglia una linea ADSL da almeno 2 MB in download e 100 ms di latenza, ma è consigliata una connessione da 6 MB e 60ms di latenza: un fattore standard che si può riscontrare anche nella maggior parte delle linee italiane. In più c’è da considerare un altro elemento: come per le DirectX 12, Xbox One è stata studiata appositamente anche per beneficiare del cloud computing. Ritroviamo quindi nel chipset della console importanti elementi che si interfacciano in quest’ottica: abbiamo l’on-chip network collegato al northbridge che può comunicare, grazie anche alla presenza dei 4 Data Move Engines, direttamente con la CPU e la GPU, senza dover passare per canali tradizionali (come avviene per i comuni PC, ossia via PCI Express o southbridge) riducendo al massimo problemi legati alla banda e alla latenza.
Una configurazione che rimanda a quelle classiche dei “super computer” utilizzati nei grossi data center e che devono smistare una grandissima mole di dati attraverso la rete.
Un altro elemento che lascia intendere come Xbox One, per l’ennesima volta, sia stata realizzata tenendo a mente le tecnologie del futuro (DirectX 12, Cloud, Server Dedicati, HSA e via discorrendo). Certamente un hardware che se fosse uscito verso fine 2014, molto probabilmente era questo il vero periodo di uscita di Xbox One, avrebbe già espresso le potenzialità più approfonditamente di quelle appena accennate allo stato attuale (basti citare i Drivatar di Forza Motorsport 5 o i bot gestiti dal cloud di Titanfall… ma sono davvero la punta dell’iceberg di quello che ci attenderà nel prossimo futuro).
Ovviamente la demo della BULD 2014 ha suscitato perplessità circa i problemi di latenza causati da reti non velocissime. Prima di affrontare questo discorso dobbiamo però fare un opportuno paragone: come già detto Xbox One è studiata per sfruttare il cloud a differenza di PS4 che, si potrà sfruttare una simil caratteristica, ma non nativamente a causa della presenza di un solo DMA e non di special purpose processor (DME) come ha la “rivale”. I DME (Data Move Engines, di cui Xbox One ne dispone 4) hanno accesso diretto all’interfaccia di rete (NoC): questi sono in grado di comprimere e decomprimere flussi di dati mentre CPU e GPU sono in “deadlock” per altri compiti (volgarmente in fase di “stallo”). Nello stesso istante i DME possono effettuare il cosiddetto Tiling/Detiling, tanto sulla memoria di sistema principale (gli 8 GB DDR3) che sulla ESRAM, sfruttando il bus a loro dedicato che è di circa 25,6 GB/s, non toccando quindi l’intera banda di CPU e GPU. SoC e Data Move Engine godono infatti di bus indipendenti e separati.
Un DME può comprimere e decomprimere nativamente anche immagini in jpeg a circa 200 GB/s, a cui si aggiunge anche la Swizzle Copy che Xbox One integra come offloading chip. In altre parole sia il processore principale che il processore grafico sono alleggeriti dal carico di spostare flussi di dati dalla memoria, cosa eseguita dai DME e che, nella situazione migliore possibile, consente a CPU e GPU di spostare memoria contemporaneamente alle DME incrementando l’effettiva bandwith a disposizione in quel preciso lasso temporale.
La PS4 è priva dei move engine e dunque della possibilità di prelevare i dati provenienti dalla rete (o meglio, dall’interfaccia di rete) e indirizzarli nella memoria di sistema (PS4 non dispone nemmeno di una EDRAM o di una ESRAM) lasciando a CPU e GPU il gravoso compito di gestire anche i flussi di dati della rete, saturando o comunque diminuendo la larghezza di banda a disposizione. Sulla PS4 il Tiling (arrivare ad un grosso blocco di dati partendo da pacchetti più piccoli, come fosse un grosso puzzle) e il Detiling (il processo inverso, decomporre grossi blocchi di dati in parti più piccoli posizionandoli per esempio all’interno della ESRAM o della DDR) è gestito dal SoC (CPU e GPU) e da un comune DMA. Inoltre la presenza delle GDDR5, ottima per file di grandi dimensioni ma problematica con pacchetti piccoli, non agevola il lavoro di Tiling/Detiling a causa della forte latenza che ha verso la CPU.
Chi dice quindi che anche PS4 può sfruttare nativamente il cloud computing dice una falsità, dato che il chipset non è assolutamente disegnato per gestire compiti di questo tipo. Xbox One sì, invece.
Ora torniamo alle farneticazioni di chi dice che il Cloud Computing sia una cosa non proponibile: su molti forum si legge che la banda richiesta è elevata e vi sarebbero problemi di latenza poiché, prendendo ad esempio uno sparatutto online, con a schermo decine di personaggi che si sparano a vicenda, richiederebbe una banda enorme e una latenza minima.
Il cloud computing non funziona in questo modo, ma è un sistema assai più complesso: l’intera scena può essere ad esempio memorizzata già all’interno del cloud (un palazzo ad esempio o una piazza) che agisce anche sui complessi calcoli della fisica e delle traiettorie dei proiettili (o esplosioni ecc.) con la macchina in locale che deve semplicemente riproporre uno spazio più limitato (il giocatore non vedrà mai l’intero livello, ma solo porzioni ove egli stesso si muove).
L’unica cosa che la console deve fare è mandare l’input al cloud sulla posizione attualmente ricoperta dal giocatore, eventuali raffiche sparate e andate a segno. Se supponiamo che ogni singolo colpo richiede 20 bytes di dati per essere “trasferito” ad Azure (dati forniti da un nostro collega programmatore) una raffica di 10 colpi necessita di appena 200 bytes. Successivamente i server rispediscono al client i dati rielaborati in quel momento che ammontano, più o meno, alla stessa cifra. Tanti pacchetti di pochi KB in download e upload. Il client deve quindi gestire unicamente la posizione iniziale o quella in cui si trova, la geometria poligonale circostante, la collisione e forza centripeta dei colpi, mentre tutto il resto è elaborato dai data center.
Ogni singolo elemento richiede circa 100 bytes, cosa che rientra nella connessione minima richiesta da Microsoft: una semplice ADSL da 2 MB con anche 100ms di latenza (o ping). Prendete Titanfall come esempio e capirete le potenzialità del cloud, anche se si partecipa a stanze con 100ms di latenza. Fate una prova e diteci se trovate LAG nell’uccidere i BOT. Vi diamo appuntamento a sabato prossimo, dato che ci sono arrivate importante segnalazioni sulla GPU di Xbox One, cosa che abbiamo già trattato in precedenza (fa piacere che anche altri siti prendano da noi l’ispirazione dicendo ora che Xbox One è una console da 2,6 TFLOPS perché lavora in dual lane, cosa che avevamo teorizzato già un po’ di tempo fa ricevendo anche delle simpatiche critiche…), ma di cui abbiamo notizie fresche fresche.