Nel corso della GPU Technology Conference 2016 Nvidia ha annunciato Tesla P100, la prima scheda acceleratrice basata su GPU GP100 Pascal. Questa soluzione punta a offrire altissime prestazioni per il settore dei supercomputer (HPC) e ambiti come il deep learning.
Ci troviamo davanti a un chip da 610 mm2 con 15,3 miliardi di transistor, realizzato con processo a 16 nanometri FinFET. La GPU è accompagnata da 16 GB di memoria High Bandwidth Memory 2 (HBM2) con supporto error correcting code (ECC) e un bandwidth di picco di 720 GB/s.
"Come le precedenti GPU, GP100 è composto da un insieme di Graphics Processing Cluster (GPC), Streaming Multiprocessor (SM) e controller di memoria. GP100 raggiunge il suo throughput fornendo sei GPC, fino a 60 SMs e otto controller di memoria a 512 bit (4096 bit in totale). La capacità di calcolo dell'architettura Pascal è più di semplice forza bruta: aumenta le prestazioni non solo con l'aggiunta di più SM rispetto alle GPU precedenti, ma rendendo ogni SM più efficiente. Ogni SM ha 64 CUDA core e quattro unità texture per un totale di 3840 CUDA core e 240 unità texture", fa sapere Nvidia (il che lascia intendere che GP100, con 3584 CUDA core e 224 unità texture, sia castrato, ndr).
Lo streaming multiprocessor in GP100 integra 64 CUDA core FP32, laddove un SM in Maxwell e Kepler ne aveva 128 e 192 FP32. Il nuovo SM è partizionato in due blocchi di calcolo ognuno con 32 CUDA core a singola precisione, un buffer instruction, uno scheduler warp e due unità dispatch. Così, mentre l'SM di GP100 ha metà del numero di CUDA core rispetto a un SM di Maxwell, mantiene la stessa dimensione dei file di registro e supporta una simile occupazione di warp e blocchi thread.
Tesla | Tesla K40 | Tesla M40 | Tesla P100 |
---|---|---|---|
GPU | GK110 (Kepler) | GM200 (Maxwell) | GP100 (Pascal) |
SM | 15 | 24 | 56 |
TPC | 15 | 24 | 28 |
FP32 CUDA Cores / SM | 192 | 128 | 64 |
FP32 CUDA Core / GPU | 2880 | 3072 | 3584 |
FP64 CUDA Core / SM | 64 | 4 | 32 |
FP64 CUDA Core / GPU | 960 | 96 | 1792 |
Freq. GPU Base | 745 MHz | 948 MHz | 1328 MHz |
Freq. GPU Boost | 810/875 MHz | 1114 MHz | 1480 MHz |
FP64 GFLOPs | 1680 | 213 | 5304 |
Unità texture | 240 | 192 | 224 |
Bus | 384-bit GDDR5 | 384-bit GDDR5 | 4096-bit HBM2 |
Capacità memoria | Fino a 12 GB | Fino a 24 GB | 16 GB |
Dimensione cache L2 | 1536 KB | 3072 KB | 4096 KB |
Dimensione file registro / SM | 256 KB | 256 KB | 256 KB |
Dimensione file registro / GPU | 3840 KB | 6144 KB | 14336 KB |
TDP | 235 watt | 250 watt | 300 watt |
Transistor | 7,1 miliardi | 8 miliardi | 15,3 miliardi |
Die GPu | 551 mm² | 601 mm² | 610 mm² |
Processo produttivo | 28 nm | 28 nm | 16 nm |
L'SM di GP100 ha lo stesso numero di registri di GM200 e GK100, ma l'intero core grafico ha molti più SM e così più registri complessivamente. Questo significa che i thread nella GPU hanno accesso a più registri e GP100 supporta più thread, warp e blocchi thread rispetto alle GPU precedenti.
Complessivamente la memoria condivisa in GP100 è maggiore per via del numero di SM maggiore (4 MB di cache L2 e 14 MB di memoria condivisa solo per il file di registro) e il bandwidth di memoria condiviso totale è più che raddoppiato. Un rapporto più alto di memoria condivisa, registri e warp per SM in GP100 permette di eseguire codice in modo più efficiente. Ci sono più warp per l'instruction scheduler tra cui scegliere, più carichi da iniziare e più bandwidth per-thread per la memoria condivisa (per thread).
Rispetto a Kepler l'SM di Pascal ha un'organizzazione datapath più semplice che richiede meno area del die e minore energia per gestire i trasferimenti dati all'interno dell'SM. Pascal fornisce anche uno scheduling migliore e istruzioni load/store per incrementare l'uso in virgola mobile. La nuova architettura dello scheduler SM in GP100 è più avanzata e intelligente di Maxwell, fornendo maggiori prestazioni e consumi inferiori. Ogni warp scheduler - uno per blocco di calcolo - è capace di evadere due istruzioni warp per ciclo di clock.
GP100 promette di offrire prestazioni molto elevate: 21,2 teraflops con calcoli "mixed precision" FP16, 10,6 teraflops con calcoli in virgola mobile a singola precisione FP32 e 5,3 Teraflops con calcoli a doppia precisione. Un'altra caratteristica che permette di avere alte prestazioni è l'interconnessione NVLink, che garantisce comunicazioni più rapide tra più GPU e tra la GPU e la memoria.
NVLink offre un bandwidth superiore rispetto al PCIe 3.0 ed è compatibile con GPU ISA per supportare carichi all'interno di memoria condivisa. Completano le caratteristiche il supporto alla memoria unificata per semplificare programmazione e porting di software alle GPU fornendo un singolo e unificato spazio d'indirizzamento virtuale per accedere a tutta la memoria di CPU e GPU nel sistema.
GPU | Kepler GK110 | Maxwell GM200 | Pascal GP100 |
---|---|---|---|
Capacità di calcolo | 3.5 | 5.3 | 6.0 |
Thread / Warp | 32 | 32 | 32 |
Max Warps / Multiprocessor | 64 | 64 | 64 |
Max Threads / Multiprocessor | 2048 | 2048 | 2048 |
Max Thread Blocks / Multiprocessor | 16 | 32 | 32 |
Max 32-bit Registers / SM | 65536 | 65536 | 65536 |
Max Registers / Block | 65536 | 32768 | 65536 |
Max Registers / Thread | 255 | 255 | 255 |
Max Thread Block Size | 1024 | 1024 | 1024 |
CUDA Core / SM | 192 | 128 | 64 |
Shared Memory Size / SM Configurations (bytes) | 16K/32K/48K | 96K | 64K |
La GPU P100 è attualmente in produzione di massa ma arriverà agli OEM solo nel primo trimestre 2017, quindi è prevedibile che la variante per schede video desktop non sia proprio dietro l'angolo.
Geforce GTX 950 | ||
Geforce GTX 970 |