AMD verso le DX12 - articolo
Il produttore americano si prepara all'arrivo di Windows 10 e delle DX12.
Qualche giorno fa abbiamo avuto la possibilità di assistere a una conference call con alcuni dei progettisti di AMD che si stanno occupando di curare il passaggio generazionale tra le DirectX 11 e le DirectX 12 grazie all'arrivo di Windows 10. Già da tempo è noto che le nuove API di Microsoft potrebbero cambiare drasticamente il panorama del gaming su PC liberando un ammontare di potenza di calcolo quasi impensabile fino a qualche mese fa grazie a un cambio di paradigma radicale nella programmazione e utilizzo delle librerie che pilotano la programmazione e la grafica tridimensionale a fini ludici.
Tutti i proclami in cui si mettono a confronto le prestazioni delle due API di Microsoft sono chiaramente da prendersi con le dovute cautele e solo alla prova dei fatti, con giochi reali, potremo effettuare una valutazione ragionata dell'ordine di grandezza della potenza che saremo in grado di recuperare con questo cambio generazionale.
Tuttavia, le premesse poste della presentazione di AMD, organizzata per confermare il pieno supporto e compatibilità alle nuove API e al nuovo sistema operativo di Microsoft da parte delle sue CPU e GPU sono state ottime e abbiamo ritenuto interessante sintetizzarle le spiegazioni di AMD su quello che ci si potrà aspettare.
La presentazione è partita da quelle che saranno le tecnologie nativamente supportate dai processori AMD con Windows 10, legate a tutta una serie di nuove funzionalità introdotte dal nuovo OS: in ambito gaming spicca la possibilità di trasmettere uno streaming del gameplay di Xbox One direttamente sullo schermo del PC e giocare sul proprio home computer ai titoli della console Microsoft che supporteranno questa funzionalità. Altre caratteristiche simili prevederanno un supporto integrato al desktop remoto e alla trasmissione in wireless del proprio desktop su altri device. Questa, e tutta una serie di funzionalità video sono dovute al supporto nativo di Windows 10 al formato di compressione H264.
Ma la vera star della presentazione sono state le DirectX 12 e il carico di novità che queste portano sulla scena del gaming moderno e gli ingegneri di AMD sono stati veloci nell'andare subito al punto: il salto prestazionale sarà elevatissimo essenzialmente per tre soluzioni tecniche innovative. Multithreaded Command Buffer Recording, Async Shaders ed Explicit Multiadapter. Questi tre elementi messi insieme spiegano il salto prestazionale di cui si parla da tempo ed AMD ne ha illustrato piuttosto bene le caratteristiche salienti.
Il multithreaded command buffer recording punta a risolvere uno dei maggiori problemi che finora hanno limitato le potenzialità da gioco dei moderni PC ovvero la lacunosa gestione dei core dei processori moderni. In genere buona parte dei calcoli non strettamente legati alla gestione della scena tridimensionale, qual è il codice puro contenente ad esempio l'intelligenza artificiale, vengono penalizzati da un utilizzo solo parziale dei core a disposizione. Tutta potenza che ora viene utilizzata in pieno grazie al controllo che le API garantiscono sulla componente "CPU" del sistema anche grazie a un miglioramento della comunicazione tra il processore centrale e la scheda video.
Una slide della presentazione che potete trovare qui intorno è decisamente esplicativa a riguardo: tramite l'Api Overhead Feature Test 3D Mark sono state calcolate le prestazioni di una CPU AMD FX-8350 analizzando il numero di poligoni al secondo ottenibili a 30 frame al secondo. Su DX11 si fatica a sorpassare il mezzo milione di poligoni proprio perché oltre i due core non c'è praticamente guadagno prestazionale. A DX12 il salto è dodici volte superiore già solo con due core (6 milioni di poligoni), venti volte superiore con quattro (11 milioni) e ventotto volte superiore con sei core (14 milioni e mezzo).
Una variante del concetto di pieno multithreading è quello degli Async Shaders riguarda invece le scheda video. Usando le DX 11 è frequento la presenza di "bolle" nelle pipeline di calcolo tridimensionale che impediscono un effettivo parallelismo al 100% di tutte le catene di elaborazione dati. L'effetto è quello di avere core della scheda video fermi ad aspettare il loro turno per elaborare dati portando cosi a consistenti perdite di prestazioni. Similmente a quanto accade con i core del processore, la gestione degli async shaders dovrebbe permettere di spremere realmente al massimo le potenzialità delle schede video grazie alla possibilità di spezzettare calcoli complessi in molti task paralleli.
La possibilità per gli sviluppatori di avere un controllo ancora più completo delle risorse della scheda video, assumerà un'importanza ancora maggiore nel caso delle configurazioni in SLI/Crossfire in cui vengono messe in parallelo due o più schede video grazie all'Explicit Multiadapter. A quanto pare l'arrivo delle DX12 potrebbe cambiare l'approccio nell'uso di configurazioni di questo genere aumentando ulteriormente le prestazioni non solo per la potenza combinata di due processori grafici ma anche grazie ad importanti novità nelle tecniche di gestione del rendering vero e proprio. Al giorno d'oggi, disporre di due schede in SLI/Crossfire cambia la logica di generazione dei frame che entrano nel buffer rispetto a una scheda singola: su trenta frame al secondo quindici vengono generati da una scheda e quindici dall'altra alternativamente.
Con la tecnica dello split frame rendering (SFR) lo schermo può essere suddiviso in due parti distinte (sopra/sotto o destra/sinsitra) e ogni scheda si preoccupa di gestire la scena in quella porzione di schermo con benefici evidenti sulla latenza visto che si possono ottenere risultati strepitosi nel 4k con due GPU in Crossfire. Un altro elemento interessante rimarcato da AMD è stato che le DX12 permetteranno un controllo migliore anche della memoria. Su DX11 nelle configurazioni multiGPU si trattava essenzialmente di un 3+3 o 4+4 in cui buona parte della RAM raramente veniva sfruttata a dovere. Con l'avvento delle DX12, il pool di memoria sarà effettivamente unificato creando un'architettura in grado di offrire agli sviluppatori risorse effettivamente controllabili anche quando sono in abbondanza come nel caso dei PC da gioco con più schede video.
Aldilà delle singole soluzioni tecniche, un dato sintetizza al meglio il differenziale di potenza espresso tra le due API ovvero la capacità di draw call: in pratica il numero di poligoni che possono essere disegnati a schermo a un determinato livello qualitativo e frame rate. Una R9 390 di AMD è in grado di effettuare quindici volte le draw call della stessa scheda eseguendo lo stesso test in versione DX11 e DX12: un salto prestazionale che non ha semplicemente eguali nella storia delle API di Microsoft e che promette di portare il PC gaming fuori dalle secche delle mancate ottimizzazioni architetturali che da sempre rappresentano il suo punto debole nei confronti delle console di gioco.
AMD si è preparata per tempo ed è già in grado di offrire il pieno supporto alle DirectX 12 sia con le nuove schede appena lanciate sul mercato ma anche con i vecchi modelli. Le famiglie Radeon R9, R7, R5 e HD 8000, 7000 e relative versioni mobile così come le nuove famiglie di processori ibridi di classe Kaveri, Mullins e Beema sono già DX12 compliant. Sarà quindi molto interessante vedere come se la caveranno con i giochi del futuro anche schede video che la normale progressione tecnologica ha già reso obsolete o che lo sarebbero diventate da qui alla fine del 2016 quando sarà lecito attendersi la prima infornata consistente di titoli DX12 nativi.
Durante la presentazione AMD ha proposto numerose slide comparative delle prestazioni delle sue APU e GPU nei confronti di Intel e Nvidia che mostrano diversi livelli di vantaggio prestazionale: preferiamo non commentare in attesa di avere a disposizione testbed comparativi dove mettere alla frusta le nuove API di Microsoft e non abbiamo dubbi a riguardo che i nostri colleghi inglesi del Digital Foundry saranno i primi ad uscire con un report piuttosto dettagliato.
Per ora una cosa è certa: con il lancio di ieri di Windows 10 e delle DirectX 12, la competizione tra AMD e Nvidia entrerà in un territorio inesplorato di cui le soluzioni tecniche illustrate nell'articolo si possono considerare solo la punta di un iceberg che potrebbe portare il PC gaming in una nuova era in termini di potenza di calcolo tridimensionale, impensabile anche solo fino a un anno fa.