NVIDIA GeForce GTX 680: arriva Kepler

NVIDIA GeForce GTX 680: arriva Kepler

NVIDIA GeForce GTX 680 è solo il nome commerciale di un prodotto caratterizzato non solo da un rinnovato processo produttivo a 28 nanometri, ma anche dalla nuova architettura Kepler, con cui la nota azienda Californiana dovrà riuscire a competere con la concorrenza sempre più agguerrita di AMD. Andiamo allora ad osservare GK104, nome in codice Kepler, e le sue caratteristiche

di , Paolo Corsini pubblicato il nel canale Schede Video
NVIDIAAMDGeForce
 

L'architettura di Kepler, seconda parte

Come abbiamo avuto modo di analizzare, l'evoluzione che NVIDIA ha portato avanti con Kepler è stata incentrata principalmente sul rapporto prestazioni/consumi e buona parte delle innovazioni apportate nella GPU di nuova generazione che ci troviamo ad analizzare oggi, vanno proprio in questa direzione. Per avere un'idea delle prestazioni computazionali che la GK104 è in grado di garantire, la tabella che proponiamo a seguire è sicuramente indicativa, tenendo ben presente anche il valore finale riportato, che indica il TDP delle soluzioni.

GT200 - Tesla

GF110 - Fermi

GK104 - Kepler

Numero di transistor

1,4 miliardi 3 miliardi 3,54 miliardi

CUDA core

240 512 1536
Core clock
648 MHz 772 MHz 1006 MHz

Shader clock

1476 MHz 1544 MHz 1006 MHz
GFLOPs
1063 1581 3090

Texture Units

80 64 128

Texel fill-rate

51,8 Gigatexels/s 49,4 Gigatexels/s 128,8 Gigatexels/s

Memory clock

2484 MHz 4008 MHz 6008 MHz

Memory bandwidth

159 GB/sec 192,4 GB/sec 192,26 GB/sec

TDP

183W 244W 195W

Ecco allora che appare particolarmente chiaro come GeForce GTX 680 sia stata sviluppata per poter andare ad incrementare la potenza per la gestione di shader e texture rispetto alle soluzioni di passata generazione, mantenendo pressochè invariato il throughput per altri valori, che beneficiano comunque delle aumentate frequenze di funzionamento.

Nella pagina precedente ci siamo occupati di analizzare la struttura che caratterizza l'architettura di Kepler, evidenziando come SMX rappresenti uno degli elementi fondamentali. SMX contiene al suo interno alcuni importanti cambiamenti che giocano un ruolo chiave nel funzionamento di Kepler. Ricordiamo che, all'interno di SMX, sono presente i CUDA ore che si occupano delle operazioni di shading per pixel/vertex e geometria, oltre ai calcoli puramente computazionali e fisici. Le SFU (Special Function Units) si occupano invece di gestire l'interpolazione grafica, mentre il PolyMorph Engine gestisce la tessellation e l'output.

Per capire al meglio le differenze tra un normale SM, presente nelle GPU di passata generazione, e SMX la tabella a seguire evidenzia alcuni cambiamenti apportati:

GF110 - Fermi

GK104 - Kepler

CUDA core

512 1536

SFU

64 256
LD/ST
256 256

Tex

64 128
Polymorph
16 8

Warp scheduler

32 32

Troughput per clock

   

FMA32

1024 1536
SFU
128 256

LD/ST

256 256

Tex

64 128
Polygon/clk
4 4
Inst clk
32*32 64*32

Ecco allora come NVIDIA è stata in grado di andare a migliorare la resa del chip per-clock, andando ad aumentare le operazioni per SFU e Texture. Le altre operazioni, invece, sono rimaste pressochè invariate. All'interno di GeForce GTX 680 per ragioni legate di efficienza energetica, le unità SMX sono 8 (contro le 16 presenti in GeForce GTX 580).

Per riuscire a dare sufficienti risorse ai nuovi SMX ogni blocco contiene quattro warp scheduler, capaci di consegnare due istruzioni ogni clock. Ma non solo. Per riuscire a sfruttare al meglio la nuova struttura NVIDIA ha riscritto le funzioni di scheduling. Se, da un lato, sia Kepler che Fermi hanno scheduler che si compongono di unità hardware per gestire le funzioni di scheduling, lo scheduler di Fermi contiente anche una componente hardware piuttosto complessa che previene eventuali rischi ai dati.

Con lo sviluppo di Kepler, però, NVIDIA ha realizzato che, considerato che queste informazioni sono prevedibili (le latenze della pipeline non sono variabili), è possibile per il compiler andare a determinare prima quali siano le istruzioni da poter gestire, fornendo così a se stesso l'informazione. Questo passaggio ha così permesso di andare a rimuovere un complesso blocco e sostituirlo con un decisamente più semplice.

Quando abbiamo osservato le caratteristiche tecniche di Kepler, uno dei dati che più è balzato all'occhio è stata la scomparsa del clock raddoppiato per gli shader. Questo cambiamento, anche in questo caso, risponde all'esigenza di andare a migliorare il rapporto prestazioni/cosumi. In questo senso NVIDIA ha introdotto un nuovo design per gli execution core. Lo shader clock era stato introdotto da NVIDIA con l'arrivo dell'architettura Tesla, per andare ad ottimizzare la superificie utilizzata: avere a disposizione unità di esecuzione in grado di operare a frequenze maggiori permetteva, in modo diretto, di avere prestazioni migliori. Con Kepler, quindi, NVIDIA ha deciso di abbandonare questo approccio, preferendo sacrificare una maggiore area, migliorando però i consumi.

 
^