Bisogna pazientare e vedere cosa farà Xbox One. I più scettici si chiederanno come una console di 1.3 TFLOPS possa superare una del 50% più potente.

Il 2014 si è concluso per Xbox One nel migliore dei modi. Tra vendite impennate e alcuni annunci mirati, la console di Microsoft è tornata in vetta tra i gusti dei videogiocatori che hanno apprezzato in pieno le numerose offerte dedicate alla One, tra bundle imperdibili e tagli di prezzo.

Non è un caso quindi che lo scorso novembre e, se verranno confermate le voci di corridoio sui dati NPD di dicembre, Xbox One è stata la console più “cercata” e venduta, dopo ben 10 mesi vissuti “dietro” l’irraggiungibile PS4.

Un buon segnale per Microsoft, fiduciosa dei propri mezzi e di un boss che ha saputo ribaltare una situazione messasi in salita dopo l’annuncio ufficiale della console: Phil Spencer ha davvero ribaltato come un calzino il brand e rivitalizzato una dirigenza che era più pessimista che altro.

Ancora lontani dalle vendite di PS4, ma i risultati sono incoraggianti e hanno convinto tanto gli azionisti quanto le software house, pronte a supportare sempre più la console di casa Microsoft. Detto questo sono stati i due giorni antecedenti Capodanno che sono stati interessantissimi, con l’ormai famoso leak degli SDK (Software Developer Kit) di novembre di Xbox One che hanno portato alla luce alcuni interessanti dettagli sull’hardware della console, confermando anche vecchie “teorie”, prime fra tutte la natività delle DirectX 12 e del Dual Lane.

doc-one
Un leak che è sembrato uscito come un fulmine a ciel sereno, che sta facendo parlare, finalmente, i principali siti specializzati, che stanno intravedendo in Xbox One un chipset effettivamente “diverso”, nuovo per certi versi.

Ma facciamo un passo indietro, prima di proseguire: durante la presentazione di Xbox One nel 2013, pochissimi dettagli sull’hardware vennero diffusi, se non i principali come velocità del clock di CPU e GPU (poi leggermente aumentato per entrambi nelle console retail), ammontare di memoria di sistema, transistor, capienza del disco fisso e del lettore ottico, porte di input e output.

Successivamente dopo l’E3 2013 vennero resi noti altri dettagli sull’hardware di One, sconosciuti ai più come la presenza di una memoria fisica fissa di 8 GB, il numero di Ops/ciclo della CPU (che sono 6) e tutta la storia sulla banda, bilanciamento e ottimizzazione del sistema.

Era ancora poco, considerando che i numeri “generici” erano impietosi per la One che dimostrava sulla carta di essere effettivamente inferiore del 50% rispetto alla concorrente PlayStation 4. Stream Processor, Rops, ACE, Teraflops, tutto era di circa la metà su Xbox One, tanto che il numeretto magico 1.84 di PS4 confrontato con i “soli” 1.32 della console di Microsoft ponevano una prima differenziazione in termini di prestazioni.

Durante la presentazione di Xbox One nel 2013, pochissimi dettagli sull’hardware vennero diffusi, se non i principali come velocità del clock di CPU e GPU

Il tutto venne corroborato dalle prime scadenti conversioni della line-up di lancio di Xbox One, con i vari Call of Duty: Ghosts, Battlefield 4, Assassin’s Creed: Black Flag girare a risoluzione inferiore.

Iniziò il Resolution-Gate che per la neoarrivata console di Microsoft fu una vera e propria Spada di Damocle. Cosa stava accadendo? Innanzi tutto l’idea che Xbox One fosse uscita anzitempo sul mercato si stava palesando, con il System Update del day-one e la mancanza di numerose feature, sviluppatori che lamentavano la pochezza degli SDK e la mala gestione della ESRAM.

Con il tempo le cose iniziarono a migliorare e per Microsoft era tempo di iniziare a parlare dell’hardware della console, prima con l’intervista agli architetti di Xbox One e successivamente ad eventi dalla portata mondiale come la GDC, la ISCAA, HotChips, BUILD, ISEEE.

Ad ogni conferenza di faceva luce sempre di più sulle scelte adottate dagli ingegneri di Microsoft per Xbox One, con slide sempre più accurate e dichiarazioni tecniche che metteva in evidenza le capacità della console.

Tutte informazioni centellinate col contagocce, molte delle quali riservate e tutelate dall’NDA che vige tra Microsoft e AMD. Senza contare anche le numerose dichiarazioni degli sviluppatori che solo ora, quindi dopo circa un anno, si stanno trovando a proprio agio con l’hardware di One, con la ESRAM, tanto per dirne una, che si sta rivelando una scelta più che azzeccata, se ben sfruttata.

NDA

Ma pensate un po’ alla cronologia di tutti questi eventi, culminato col fatidico leak degli SDK. Leak che, grazie ad essi, si sta conoscendo un po’ meglio l’intero chipset della console e che, in primis, ci fa vedere come l’hardware era stato pensato effettivamente con le DX12 in mente. Per chi segue RC e Inside non una grande novità (lo vado dicendo da prima della presentazione delle nuove API), ma per gli scettici un grande interrogativo su cui meditare.

Come ben saprete infatti, se è vero che le DX12 saranno retrocompatibili con le principali schede video in circolazione, solo con i nuovi chip si avrà il cosiddetto supporto nativo, ossia massima integrazione e funzionalità delle API. E indovinate un po’ quale sarà il primo hardware a beneficiare delle DX12?

Sì, avete capito bene, sarà Xbox One. Una follia? No, basta leggere alcune parti del documento trafugato (e penso sempre più ad un leak pilotato, una maniera per “rompere” l’NDA senza andare incontro a sanzioni):

1

Leggete le parti evidenziate, si parla di task computazionali paralleli e di nuove nozioni su come intendere la GPU, dato che le regole sono cambiate e che solo il cielo può esserne un limite (magari superato con il Cloud Computing…).

Le regole sono cambiate perché l’hardware sta cambiando, ci sta una scissione con i vecchi termini e i vecchi concetti, qui si parla di un qualcosa di realmente innovativo, mai visto prima (che poi sia un vantaggio o un flop è ancora difficile stabilirlo…).

2

Le Descriptor Tables supportate con i recenti dev-kit, che preparano l’arrivo delle DX12.

3

La limitazione delle attuali DX11.X che possono eseguire una sola operazione alla volta.

4

La futura implementazione delle Tiled Resource, al momento supportate solamente come “demo”, ossia in Preview Mode e quindi ancora inutilizzabili.

5

L’utilizzo dei mono driver (Monolithic) in favore dei Vanilla Code (DX11 a tutti gli effetti, nemmeno ottimizzate a basso livello per One) che hanno reso possibile i 1080p sui diversi giochi dell’estate/autunno del 2014 (Sniper Elite 3, Diablo 3, Wolfenstein: The New Order, Destiny, Forza Horizon 2 ecc.).

Insomma, un’altra conferma delle teoria basate su Mono e Stereo Driver, rispettivamente DX11 e DX12, come ben spiegato in questo altro slide:

6

Ma quello che più sorprende, per lo meno per scettici e increduli delle X-raysiane teorie, è la parte cardine di questi leak, ovvero la conferma e la riprova che la GPU di Xbox One è effettivamente capace di gestire più flussi di rendering, smistati tra bassa e alta priorità ma tutti in grado di coesistere nello stesso istante gestendo addirittura fino ad 8 flussi in contemporanea, di cui 7 dedicati al gaming (e 1 per il SO, snap e altri profili di basso livello).

Cosa sarebbero questi 8 flussi? Si tratta della gestione dei “context graphic”, ossia un contesto grafico contenente tutti i parametri di “disegno” e le informazioni specifiche utilizzate dal dispositivo per eseguire i comandi di “disegno” successivi. Questo contiene informazioni base sugli attributi come disegno (drawing), i colori (colors), l'area utilizzata per ritaglio (clipping), la larghezza della linea e le informazioni di stile, più altri importanti dati.

Xbox One supporta quindi più flussi di comando della GPU che contengono le istruzioni per l'elaborazione e il rendering. La GPU della console processa contemporaneamente entrambi i comandi, consentendo ben due processi paralleli di rendering e di lavoro di calcolo, che dividono la larghezza di banda delle stesse risorse. Il risultato è uno scambio di bassa latenza tra CPU e GPU. Tuttavia dagli SDK non vi è alcuna informazione sul fatto che gli sviluppatori possano organizzare manualmente questi tipi di comandi o se la GPU compila automaticamente gli elementi in coda.

Per migliorare le prestazioni, gli sviluppatori sono in grado di utilizzare un “defferred context” con l'aiuto di un altro thread della CPU se il gioco sta attraversando il processo di rendering, in modo che i comandi registrati possano essere eseguiti nuovamente:

gpuoverv 7 Si può notare come l’hardware di Xbox One sia quindi castrato dagli attuali SDK e di come il potenziale dell’intero hardware possa essere “sbloccato” grazie all’introduzione di SDK aggiornati, che abilitano nuove funzioni:

8

10

Anche Phil Spencer aveva “spifferato” la cosa mediante un tweet sulle DX 12, API che sbloccheranno del nuovo potenziale della console:

dx12_twitter

E non è tutto visto che spulciando il file specifico ci sono altre particolarità che rubano l’occhio:

11 12 13

Questi sono accenni anche alla coerenza totale dell’intero SoC di Xbox One, dove sfruttando a regime ogni parte dell’hardware non si incorre in problemi di latenza o colli di bottiglia (cosa che succede su PS4 quando si utilizzano le 4 CU per le GPGPU con la banda tra CPU e GPU che scende verso il basso, essendo la PS4 bilanciata solamente per valori di 14:4 CU, non tutte indirizzate al rendering quindi, pena la perdita di banda).

Inoltre, sempre dal leak, è possibile notare come negli ultimi SDK si sia andati migliorando sia la gestione della memoria (più efficiente del 45%) e dallo sblocco del settimo core (prima erano 6 adibiti al gaming) per un buon 80%, laddove gli sviluppatori non intendano sfruttare i comandi vocali nei loro giochi del Kinect (rimangono intatti però i comandi vocali di sistema come “Xbox vai a…” o “Xbox registra questo elemento”).

L’intero 7 core sarà liberato al 100% con futuri kit e, molto probabilmente, quando arriveranno le DX12.
Un mockup riassuntivo e ben dettagliato lo possiamo vedere in questo slide, che denota anche la presenza di un probabile XDME, da non confondere coi Data Move Engine e che rappresenta un canale di connessione per GPU multiple (di solito usato per configurazioni CrossFire di AMD):

2bis 1bis

Xbox One possiede due GPU? No, in realtà Xbox One vanta una GPU unica divisa in due “sotto-core”, questo dato è confermato dai più recenti slide della IEEE 2014, che mostra nello specifico lo split di 6 CU per gruppo e la presenza di due Graphics Command Processor e due Compute Command Processor:

One

Un altro dettaglio ci mostra il Full HSA di One e la nuova visione in ambito di sviluppo:

3bis

Una cosa molto diversa dalla struttura hardware delle ATI 7700 che possiede un solo CCP:

ace

E anche la PS4 offre un’architettura più simile alla scheda per PC che a quella di One:

ati7700

Quindi inutile dire che la One fa parte di una famiglia XXX castrata o customizzata in pochi ambiti: l’hardware di Xbox One è diverso da qualsiasi cosa che ci sia attualmente sul mercato.

ps4

È più probabile che la One sia strutturata in base a 2 Schede ATI 7700, non a caso i primi dev-kit erano basati su una configurazione similare.

Xbox One si poggia, riassumendo, su scelte molto diverse rispetto alla concorrenza, come il Full HSA anziché hUMA, un pool di memoria più versatile per ogni tipo di dato, che offre il massimo se coadiuvato dalla ESRAM (dando una banda passante superiore rispetto alle GDDR5), un Sistema Operativo virtualizzato su un hardware che può essere modificato in alcuni parametri (FPGA, schedulatori, operazioni per CU, arrays ecc.), il dual lane, DX 12, Tiled Resource e Cloud Computing.

Perché PS4 non è Full HSA? Per quanto detto prima, utilizzando le 4 CU per i ruoli GPGPU vi è una riduzione di banda tra CPU e GPU, cosa che non avviene su One poiché le 12 CU sono interamente dedicate al rendering, con i DME che fanno il lavoro “sporco” di passare dati da un chip all’altro.

Il Full HSA permette proprio l’utilizzo di ogni singolo componente senza gravare sulla banda generale, non creando quindi colli di bottiglia o riduzioni in determinato contesti. Inoltre il Full HSA fa leva proprio su chip di scarico e, in ultimo, di un sistema della memoria virtualizzato (Unified Virtual Address o Shared Virtual Memory), proprio quello che ha One:

hsa

One8

One poi, a differenza di PS4, utilizza un pool di memoria L1 non condivisa per Shader Core, ma ogni componente ha la sua “memoria”, proprio come lo standard GCN 2.0:

5bis

Dove ogni SC è strutturato così:

2_zpsd66e0764

Su PS4 il discorso è differente e si appoggia sulla struttura GCN 1.0:

gcn-ps4

Riprendendo un vecchio Inside, ecco le differenze tra i due approcci:

ANALISI XBOX ONE:

  • Generalmente GCN 1.0 e GCN 1.1 usano un array di CU, che equivalgono a gruppi di CU per L1 condivisa (CU=Comput Unit, GCN=Graphic Core Next di AMD).
  • GCN 2.0 utilizza le CU come gruppi di SIMD per L1 non condivisa.
  • Gli Shader Core (SC) di Xbox One sono basati su tecnologia GCN 2.0, dove gli SC utilizzano un gruppo di SIMD per L1, come mostrato nella precedente slide.

La base di partenza è dunque un GCN 2.0 per Xbox One, dove i SIMD sono racchiusi all’interno di un singolo core CU/SC, e il CU nel GCN 2.0 è praticamente composto da un array indipendente di CU. I SIMD possono gestire tot operazioni, e per ops (operation per second) possono avere un “n” numero di ALU.

Partendo dal concetto base di GCN 2.0, Microsoft ha provveduto a realizzare e customizzare i singoli blocchi, ma i SIMD totali per CU, gli ops totali per SIMD, il numero totale di ops per ALU non sono “fissi” sulla parte GFx di Xbox One, possono eseguire più thread per ciclo in modo dinamico e indipendente (i CU non sono disposti a blocchi o gruppi, bensì sono separati, individuali).

ANALISI PS4:

La GPU di PS4 è costituita da due blocchi di Shader composti da 3 CU array, 9 per parte che compongono 18 CU totali (bilanciati in 14 più 4 per GPGPU). Ogni array di 3 CU ha in condivisione L1 e K$. PS4 è basata su chipset Southern Island, con il medesimo blocco di CU, rappresentando una GPU da 256bit e abbracciando la tecnologia GCN 1.1.

Ancora una volta ci ritroviamo difronte ad una “struttura” nuova, che è costata ad Xbox One un lancio ballerino, soprattutto con i primi, inefficienti engine 3D. La cosa è migliorata negli ultimi tempi e sarà “rivoluzionata” tra circa 4-6 mesi quando la One potrà far leva su SDK completi, basati nativamente sulle DX12 e sul nuovo Win10 (da qui anche l’arrivo delle App universali).

Considerando l’atipica struttura del chipset, con molti parametri “customizzabili” al volo, di cui molti elementi ancora “bloccati” per via delle DX11.X, è veramente difficile fare un calcolo in teraflops dell’intera macchina, e quello che è possibile dire allo stato attuale delle cose è che il solo blocco GPU è di 1.3 TFLOPS. La metà di quanto è capace Xbox One, ma per il suo massimo sfruttamento toccherà aspettare le nuove API, come indicato anche dagli slide degli SDK do ottobre.

Tutto inizia a tornare, la Xbox One si sta evolvendo nel tempo e la piattaforma in continuo miglioramento, sia sul fronte multimediale che videoludico. Le differenze con PS4, in termini grafici, si stanno assottigliando, ormai son quasi nulle ma il sorpasso imminente, se aggiungiamo anche Tiled Resource e Cloud Computing.

Vi ricordate quando alcuni utenti esperti dicevano che le DX12 non avrebbero portato migliorie su Xbox One perché le API della console lavoravano già sul metallo? E gli stessi dicevano che le DX12 mai sarebbero arrivate su One, non nativamente.

Oggi possiamo confermare, anche grazie a questi leak e alcune considerazioni degli sviluppatori (4A Games su tutti), che le DX12 impatteranno su One proponendo benefici assoluti come:

  • Sblocco del Dual Lane
  • Migliore efficienza della CPU grazie a ridotto overhead
  • Migliore efficienza della CPU grazie all’introduzione del multithreading
  • Migliore comunicazione tra CPU e GPU
  • Implementazioni nuovi asset come le Tiled Resource
  • Migliore gestione della ESRAM (già avuto con i dev di ottobre)
  • Implementazione processi paralleli, asincroni e sincroni

Bisogna solo pazientare ancora un po’ e vedere con i nostri occhi cosa sarà in grado di fare la One… anche i più scettici si ricrederanno e si domanderanno come è possibile che una console di appena 1.3 TFLOPS possa raggiungere e superare una console del 50% più potente.

Prendete Driveclub e Forza Horizon 2, con quest’ultimo che eccelle in tutto e gli sviluppatori si sono sbizzariti senza limiti in un open world dotato di ottima grafica, 4xMSAA e Full HD con 30 solidissimi frame, 200 vetture, meteo dinamico variabile, fisica realistica, ottima AI, contro un buon racing game, Driveclub, che è dovuto ricorrere a molti “tagli” (i 60fps su tutti) per mostrare una grafica pompata a tratti, ma scadente su ogni altro aspetto.

Il 2015 sarà un anno importantissimo per Xbox One e chissà se il 21 gennaio vi saranno novità in merito… Strano comunque che tutti gli ultimi chip annunciati da poco (per tablet e PC) vi siano molte somiglianze con l’hardware di Xbox One…

Magari si scoprirà anche il funzionamento delle innovative Vector Scalar Processor, altro taglio con il passato che stravolge la concezione di Stream Processor verso un qualcosa di più profondo, nuovo e “configurabile”:

fineix

[header_banner]