GPU: lo stato dell’arte a fine 2017 – seconda parte

Cari lettori, vi presento un altro articolo (qui la prima parte) del nostro autore Nessuno. Buona lettura e grazie ancora a Nessuno per il suo contributo.

Questa è la seconda parte di un articolo relativo all’evoluzione del mercato GPU nel 2017. La prima parte la trovate qui.

Analizziamo ora la tecnica della nuova GPU AMD, Vega.

Facciamo notare per prima cosa come AMD abbia eliminato da tutta la sua documentazione qualsiasi riferimento a GCN. AMD vorrebbe far intendere che Vega è qualcosa di nuovo rispetto alla sua architettura vecchia oramai di un lustro che non è riuscita a ottenere un solo punto di vantaggio contro la rivale. Per quanto vi siano molte novità in questa Vega, la base rimane comunque GCN, e come GCN, tale è il suo (insoddisfacente) comportamento. Ma vediamo i numeri:

La GPU misura 484mm^2, nella cui superficie sono integrati 4096 shader divisi in 64 CU, 256 TMU e 32 ROP e un controller HBM… ma ma.. sono le stesse identiche specifiche di Fiji! Passiamo quindi alle differenze: la memoria è HBM2 da 8 GB (espandibili a 16GB come sulla versione prosumer) quindi finalmente oltre il limite dei 4GB di Fiji, frequenza 1247MHz di base e 1546MHz di boost (sembra usare un sistema simile a quello di nVidia per cloccare la scheda al massimo possibile) e il TDP di… 295Watt!

Potenza teorica di calcolo, come sempre elevatissima: 12.7TFLOPS in FP32 (la 1080Ti è data per 11TFLOPS e la 1080 per 8.2TFLOPS) e novità in campo desktop, possibilità di eseguire packed math FP16, ovvero raddoppiare i TFLOPS quando si usano numeri a virgola mobile a 16bit invece che 32bit (utile in certe situazioni anche nel calcolo degli shader usati nei giochi).

Anche questa architettura è portata a lavorare ben distante dal punto di massima efficienza. AMD aveva dichiarato che Vega era stata pensata per le alte frequenze (GCN a quanto pare invece no), ma i test mostrano che le frequenze raggiunte sono oltre il limite: piccolissimi incrementi di frequenza causano aumenti di consumo enormi, non diversamente (e forse peggio) da quanto avviene con Polaris 10 montato sulle RX 580 (il cui consumo da 1200 a 1400Mhz è passato da 160W a oltre 240W, +16% OC = +50% consumi). Questo per quanto abbiamo detto nelle puntate precedenti: nel campo consumer lavorare ad un punto fuori massima efficienza permette di ottenere qualche punto percentuale di prestazioni in più e quindi posizionare la GPU meglio sul mercato in modo da guadagnare qualche dollaro in più.

Nel mercato HPC questo sarebbe completamente contro producente, dato che l’efficienza è importantissima e si preferisce anche mettere qualche scheda in più piuttosto che pagare proporzionalmente MegaWatt in più per effettuare lo stesso lavoro. Stessa cosa vale per il mondo mobile, dove non si può “rubare” a scapito dei consumi: ed è uno dei motivi principali per cui AMD nel mobile dall’introduzione di GCN è praticamente sparita e perché le stesse GPU di nVidia nel mobile sono proposte con un centinaio di MHz in meno, ovvero per avvicinarsi al punto di maggiore efficienza energetica, con cali di consumi significativi e perdita marginale di prestazioni.

Da questi numeri è evidente, come fu per Fiji, che il target non è certo quello di competere per la seconda o terza posizione nel mercato. Ma mentre Fiji nonostante costi, HBM e Watt era allineata perfettamente alla soluzione top della rivale (almeno a 4K), Vega rimane decisamente indietro alla GTX1080Ti e fatica non poco a stare al passo con la più lenta e decisamente meno esuberante di caratteristiche tecniche (e Watt) GTX1080.

La conclusione è la medesima di quello che fu per tutte le GPU GCN based di AMD: allinearsi ai costi della fascia inferiore per rimanere competitivi. Ecco quindi che i prezzi di listino delle nuove schede AMD sono esattamente quelle della 1080 e della 1070 contro cui competono in prestazioni, uscendone in qualche caso vincitori nei giochi che meglio supportano l’architettura AMD rispetto a quella nVidia.

Ora, definire che questo risultato sia quello che AMD intendeva all’inizio e quando ha mostrato il mocking del Poor Volta(ge) è semplicemente inammissibile. Ancora una volta AMD si è trovata con un soluzione non all’altezza dello sforzo profuso per realizzarlo, e se mi chiedete il perché, la mia risposta è facile (e sempre la stessa): GCN.

Questa architettura è sbilanciatissima in termini di capacità di calcolo (teoriche) e risente della incapacità di eseguire in maniera efficiente il lavoro che le viene chiesto di eseguire dai motori dei videogiochi (che sì fanno anche calcoli, ma non è la sola cosa che conta saper svolgere bene, altrimenti Larrabee di Intel sarebbe stato un trionfo invece che una cocente delusione).

Alla fine, come la si vuole rigirare, GCN è assolutamente inefficiente e ottiene buone prestazioni solo quando viene spremuta a dovere grazie a tecniche di programmazione ad hoc che mirano ad aggirarne e compensarne le inefficienze (l’Async Computing è una di queste tecniche).

Come fu per Terascale, le prestazioni sono decenti per le risorse usate quando il codice è ottimizzato per l’architettura, mentre mostra il fianco quando esegue codice generico che non tiene conto delle misure necessarie (che costano in termini di tempo e soldi) per farla comportare come potrebbe.

A differenza di Terascale, come ho già detto nel mio primo articolo sull’evoluzione delle GPU a 28nm, GCN soffre di inefficienza in termini di prestazioni/mm^2 e prestazioni/W, i due parametri importanti per definire quando è buona (ed economicamente valida) rispetto alla concorrenza. Essere più lenti ed avere l’handicap di essere più grandi e consumare di più non permette di poter fare alcun compromesso come era possibile con Terascale, meno potente ma anche sempre più piccolo e meno energivoro della controparte.

L’unica cosa che si può fare è limitare la perdita al minimo, rinunciando al margine necessario per andare in pari con i costi di sviluppo ma venderla comunque, e di cercare di migliorarla fino all’arrivo di una nuova architettura che sia creata su basi diverse e permetta finalmente di fare concorrenza o persino prendere le redini delle prestazioni e condurre il mercato.

Quando questo avviene per una generazione, il problema è limitato. nVidia lo ha dovuto fare per la prima versione di Fermi, ponendone rimedio velocemente in 9 mesi appunto per evitare di continuare con il salasso economico (nonostante la GPU venuta malissimo avesse prestazioni assolute superiori alla concorrente, quindi pensiamo se non le avesse avute esattamente come sta succedendo a AMD da diversi anni).

Quando la situazione invece perdura per 6 anni di fila (e probabilmente si arriverà agli 8 anni, ovvero fino ai 7nm), non è questione di aver sbagliato una implementazione su un PP, ma di avere proprio creato qualcosa che non funziona alla base.

Pensate in Formula 1 di perdere per 6 anni di fila il campionato contro la stessa rivale cercando di usare lo stesso motore e apportando solo modifiche al telaio. È evidente che quello che viene messo in pratica non è sufficiente a competere (nonostante eventuali scuse, giustificazioni e promesse non mantenute), e partecipare al campionato di Formula 2 con la stessa vettura e vincere (neanche sempre) nella categoria inferiore non aiuta di certo a rendere il progetto qualcosa di valido (il costo e gli investimenti sono quelli della categoria superiore).

Oltre a soffrire di sua natura delle inefficienze sopra esposte, l’architettura GCN di AMD usata in Fiji e Vega ha chiaramente dimostrato di non scalare quanto dovrebbe con un numero di CU troppo elevato. L’uncore (la parte della GPU che sta fuori ed intorno alle CU contenenti le ALU) ha dei limiti che AMD, nonostante i due tentativi, non è riuscita a superare. Le prestazioni reali sono molto distanti da quelle teoricamente raggiungibili, nonostante in computazione pura il core si comporti come ci si aspetterebbe quando opportunamente programmato.

Qualcosa di sbagliato nell’architettura evidentemente c’è e solo cambiandola sarà possibile (anche se non assicurato) avere finalmente quello che i numeri sulla carta promettono essere quando usati nella realtà. Così come per inciso accade per le schede della concorrenza, che scalano quasi perfettamente all’aumento delle risorse utilizzate.

 

Press ESC to close