Jump to content

  • NVIDIA GA100, 54 miliardi di Transistor di puro calcolo


    Nvidia GA100: dal Deep Learning al rendering grafico
    ▪ Michele M.

    Dopo appena un giorno dalla presentazione dell' nVidia GTC 2020 (posticipato per Covid-19), il CEO di nVidia Jensen huang, ha presentato la nuova ammiraglia per sistemi HPC Tesla, nome in codice GA100.

    Jensen ci aveva anticipato con una simpatica Gag, dove un sistema con otto Tesla, motherboard ed NVSwitch, veniva estratto dal forno e posto sul tavolo di casa sua.

    Gran parte degli sforzi, sono stati fatti per rendere la GPU versatile per calcoli di deep learning, analisi dei dati, intelligenza artificiale , elaborazione scientifica, genomica, cloud,  rendering grafico e tanto altro.

    AMPERE SIDE.jpg

    La nuova GA100, tramite Gigathread include una funzione chiamata Multi istance MIG, Se configurato per il funzionamento MIG, A100 consente ai CSP di migliorare i tassi di utilizzo dei loro server GPU, offrendo fino a 7 volte più istanze GPU senza costi aggiuntivi. Il robusto isolamento dei guasti consente loro di partizionare una singola GPU A100 in modo sicuro.

    In parole semplici, si può suddividere la GPU sino a 7 istanze da 5 gb, 14 sm più 1 ridondante ad errore. Oppure, 2 da 20gb o 3 da 10 gb.

    A100 aggiunge un nuovo potente Tensor Core di terza generazione che aumenta la produttività rispetto a V100, aggiungendo al contempo un supporto completo per i tipi di dati DL e HPC, insieme a una nuova funzionalità Sparsity che offre un ulteriore raddoppio della velocità effettiva.

    Le nuove operazioni TensorFloat-32 (TF32) Tensor Core in A100 forniscono un percorso semplice per accelerare i dati di input / output FP32 in framework DL e HPC, eseguendo 10 volte più veloce delle operazioni FMA V100 FP32 o 20 volte più veloce con scarsità. Per DL16 a precisione mista FP16 / FP32, il Tensor Core A100 offre prestazioni 2,5 volte superiori a quelle del V100, aumentando a 5 volte con scarsità.

    Le nuove operazioni di core tensore Bfloat16 (BF16) / FP32 a precisione mista funzionano alla stessa velocità della precisione mista FP16 / FP32. L'accelerazione del core tensor di INT8, INT4  completano il supporto per inferenza DL, con A100 sparso INT8 che corre 20 volte più veloce di V100 INT8. Per HPC, il Tensor Core A100 include una nuova elaborazione FP64 conforme IEEE che offre 2,5 volte le prestazioni FP64 di V100.

    La GPU NVIDIA A100 è progettata non solo per accelerare grandi carichi di lavoro complessi, ma anche per accelerare in modo efficiente molti carichi di lavoro più piccoli. A100 consente la creazione di data center in grado di soddisfare una domanda di carico di lavoro imprevedibile, fornendo al contempo un provisioning del carico di lavoro a grana fine, un maggiore utilizzo della GPU


    GA100 nel dettaglio.

    Come possiamo vedere dal grafico, il chip è stato stampato su un monolitico die da ben 826 mm2 a 7nm+ EUV di TSMC, integrante ben 8196 cuda core, su una base di otto GPC  e 8 TPC (texture cluster).

    Ciò che fa clamore, è il mastodontico bus da 6144 bit HBM2 per una larghezza di banda complessiva teorica di quasi 2 TBPS per 48gb di memoria ram. Se dovessimo rapportare il bus HBM ad uno GDDR6, parleremmo di un gigantesco 768 bit.

    ga100.png

    Ogni canale viene collegato ad una partizione cache l2 da ben 4mb e 16 pixel (rop's), di conseguenza il chip completo potrà contare su un quantitativo di 48 mb di cache l2 e ben 160 rop's per ciclo di clock. Un vero mostro da ben 54 miliardi di transistor, quasi il 160% rispetto al già gigantesco Volta.

    Qui di seguito riportiamo tutti i dati, che sono solo il sunto di questo monolite.

    I più attenti avranno sicuramente notato lo straordinario aumento relativo al picco dei tensor core, che spiegheremmo più avanti ma anche dei valori non del tutto pieni.

    Peak FP64 9.7 TFLOPS
    Peak FP64 Tensor Core 19.5 TFLOPS
    Peak FP32 19.5 TFLOPS
    Peak FP16 78 TFLOPS
    Peak BF16 39 TFLOPS
    Peak TF32 Tensor Core 156 TFLOPS | 312 TFLOPS2
    Peak FP16 Tensor Core 312 TFLOPS | 624 TFLOPS2
    Peak BF16 Tensor Core 312 TFLOPS | 624 TFLOPS2
    Peak INT8 Tensor Core 624 TOPS | 1,248 TOPS2
    Peak INT4 Tensor Core 1,248 TOPS | 2,496 TOPS2

     


    7nm+ EUV, rese non ottimali

    Se da un lato i dati sono mostruosi, molti avranno notato come mai la GPU non esprime al massimo il proprio potenziale

    Riepilogando:

    • 8 GPC, 8 TPC / GPC, 2 SM / TPC, 16 SM / GPC, 128 SM per GPU completa
    • 64 core CUDA FP32 / SM, 8192 core CUDA FP32 per GPU completa
    • 4 Tensor Core / SM di terza generazione, 512 Tensor Core di terza generazione per GPU completa 
    • 6 stack HBM2, 12 controller di memoria a 512 bit 

    Versione in commercio:

    L' implementazione della GPU A100 Tensor Core della GPU GA100 comprende le seguenti unità:

    • 7 GPC, 7 o 8 TPC / GPC, 2 SM / TPC, fino a 16 SM / GPC, 108 SM
    • 64 core CUDA FP32 / SM, 6912 core CUDA FP32 per GPU
    • 4 Tensor Core / SM di terza generazione, 432 Tensor Core di terza generazione per GPU 
    • 5 stack HBM2, 10 controller di memoria da 512 bit

    Ebbene si, il tutolo è lo specchio riflesso, purtroppo un monolite del genere, ha avuto qualche problema di resa, ed ha dovuto sacrificare un canale HBM da 1024bit, 8mb di cache l2 e 1 GPC di calcolo da 1024 cuda cores.

    Il chip quindi non include per ora un GPC, e ci auspichiamo che presto verrà attivato con rese migliori, ma per ora si deve limitare a 7168 cuda, di cui 256 cuda vengono utilizzati come sempre avviene per le Tesla, per ridondanza errori.


    GV100 volta, panoramica e cambiamenti

    Il chip volta, come possiamo vedere, è equipaggiato con un core da 825 mm2, 21,1 miliardi di transistor, 6 GPC, coadiuvati da ben 7 TPC per 16 pixel calcolate tramite SFU interne.

    Diversi i rapporti di collegamento, a partire dall'nvlink (del quale parleremmo più avanti), dalla ram, collegata ad un solo 1 mb di cache l2, sempre per 16 pixel.

    volta.png

    La ram è composta da 4 stack HBM da 8gb, per un totale vicino al TBPS.Il chip contiene ben 5376 cuda cores, con 256 di ridondanza per un totale di utilizzo di 5120 cuda.

    Di seguito, rilasciamo una tabella comparativa:

    GPU del data center NVIDIA Tesla P100 NVIDIA Tesla V100 NVIDIA A100
    Nome in codice GPU GP100 GV100 GA100
    Architettura GPU NVIDIA Pascal NVIDIA Volta NVIDIA Ampere
    Fattore di forma della scheda GPU  SXM SXM2 SXM4
    Sms 56 80 108
    TPC 28 40 54
    Core FP32 / SM 64 64 64
    Core / GPU FP32 3584 5120 6912
    Core FP64 / SM 32 32 32
    Core / GPU FP64 1792 2560 3456
    INT32 Core / SM N / A 64 64
    Core / GPU INT32 N / A 5120 6912
    Tensor Core / SM N / A 8 4 2
    Tensor Core / GPU N / A 640 432
    GPU Boost Clock 1480 MHz 1530 MHz 1410 MHz
    TFLOP di picco FP16 con accumulatore FP16 1 N / A 125 312/624 3
    Peak TF16 Tensor TFLOPS con FP32 Accumulate 1 N / A 125 312/624 3
    TFLOP Tensor BF16 di picco con accumulo FP32 1 N / A N / A 312/624 3
    Peak TF32 Tensor TFLOPS 1 N / A N / A 156/312 3
    Peak FP64 Tensor TFLOPS 1 N / A N / A 19.5
    Tensore di picco INT8 TOP 1 N / A N / A 624/1248 3
    Tensore di picco INT4 TOP 1 N / A N / A 1248/2496 3
    Peak FP16 TFLOPS 1 21.2 31.4 78
    Peak BF16 TFLOPS 1 N / A N / A 39
    Peak FP32 TFLOPS 1 10.6 15,7 19.5
    Peak FP64 TFLOPS 1 5.3 7.8 9.7
    Peak INT32 TOP 1 N / A 15,7 19.5
    Unità di trama 224 320 432
    Interfaccia di memoria HBM2 a 4096 bit HBM2 a 4096 bit HBM2 a 5120 bit
    Dimensione della memoria 16 GB 32 GB / 16 GB 40 GB
    Velocità dati memoria DDR 703 MHz DDR a 877,5 MHz DDR 1215 MHz
    Banda di memoria 720 GB / sec 900 GB / sec 1555 GB / sec
    Dimensione cache L2 4096 KB 6144 KB 40960 KB
    Dimensione memoria condivisa / SM 64 KB Configurabile fino a 96 KB Configurabile fino a 164 KB
    Registra dimensione file / SM 256 KB 256 KB 256 KB
    Registra dimensione file / GPU 14336 KB 20480 KB 27648 KB
    TDP 300 watt 300 watt 400 watt
    transistor 15,3 miliardi 21,1 miliardi 54,2 miliardi
    GPU Die Size 610 mm² 815 mm² 826 mm2
    Processo di produzione TSMC 16 nm FinFET + 12 nm FFN 7 nm N7

     


    Gli SM, il cuore di GA100

    Internamente ritroviamo in linea di massima, tutti i gruppi di calcolo di volta GV100. Abbiamo una L1 instruction cache,  una l0 dedicata ai registri, quattro warp scheduler e relativi dispacht.

    Ogni warp è in grado di lavorare su 32 thread, inviati dal gigante Gigathread MIG, ongi thread è completamente schedulato per claocli paralleli, e non più dipendente dal contattore warp come avveniva su Pascal.

    tpc.png

    Questa miglioria Independent shader, è stata introdotta proprio con Volta. Ogni Warp è in grado di assegnare ai cuda, sino a 1024 istruzioni per ciclo di clock, per 16,384 totali a 32bit.

    Non solo cuda FP32, ritroviamo le INT32, pipeline in grado di eseguire simultaneamente il lavoro con le FP32, che è stato il principale fulcro dell'IPC di Turing  e volta, rispetto a Maxwell. Come da tradizione Tesla, il chip punta molto anche sulle unità a doppia precisione FP64, rapportate in 2:1, ovvero ogni 16 cuda fp32, possno lavorare contemporaneamente 8 cuda fp64.

    l'accesso ai registri è veicolato dalle otto load store (dimezzate nei chip pro/gaming), e dalle SFU, che si occupano di produrre i pixel ed effettuare come seno, coseno e radice quadrata.

    Tutto uguale a Volta? E i tensor?

    Sembra tutto uguale, ma non lo è, anzi, ciò che sembra scontato è migliorato drasticamente.

    tensor.png

    Grazie alla struttura ben definita della matrice, può essere compressa in modo efficiente e ridurre la memoria e la larghezza di banda di quasi il 2x.

    La GPU A100 include nuove istruzioni Sparse Tensor Core che saltano il calcolo sulle voci con valore zero, con il risultato di raddoppiare la velocità di elaborazione del tensor core. I tensor di vecchia generazione erano praticamente quattro blocchi di FP16 assieme ora passano ad 8.

    Calcolo tensor:

    Volta:

    clock x tensor x 64 x 2

    Supponendo un clock di 1500, dovremmo quindi moltiplicare quest'ultimo per 64 per numero tensor x 2.

    Ampere

    clock x tensor x 256 x 2

    Eseguendo il calcolo, ci ritroviamo:

    1410 x 432 tensor x256 x2 = 311 TF FP16.

    in8.png

    Lo schema delle INT8 può essere compresso, ma in linea di massima, basta dolo raddoppiare il valore FP16, e quadruplicarlo per rapporti INT4.

    anand.jpg

     


    CSP Multi-Instance GPU (MIG)

    E' di fondamentale importanza migliorare il tempo di attività e la disponibilità della GPU, rilevando, contenendo e spesso correggendo errori e guasti, anzichè forzare i ripristini della GPU. Ciò è particolarmente importante in grandi cluster multi-GPU e ambienti multi-tenant a GPU singola, come le configurazioni MIG.

    nig.png

    Con MIG avviene una importante suddivisione dei cluster nelle seguenti modalità:

    Partizione 1

    -2x 20 mb di cache l2

    -2x20gb di ram e 42 SM utilizzabili

    Partizione 2

    -3 x 10mb di cache l2

    -3 x 10gb di ram e 28 SM utilizzabili.

    Partizione 3

    -7 x 5mb di cache l2

    -7 x 5gb di ram e 14 SM utilizzabili

    mig-istance.png

     


    Nvlink

    Concludiamo con un reparto, che è di fondamentale importanza per GPU di questo calibro, ovvero Nvlink, l'ampiezza dati in cui possono comunicare ad altissima velocità più GPU.

    Studiato su chip Pascal, il collegamento è stato man mano rivisto ed aumentato, se con Pascal avevamo 4 linee per un totale da 160 gbps, con Volta, si è toccato i 300 gbps, e con Ampere si è passati ad un massimo di ben 600 gbps per 12 canali.

    Quando guardate il TDP, ebbene si, anche loro dettano voce. Se vi stavate chiedendo il perchè, e cosa fosse la gaga fatta sul forno da Jensen, eccola qua. Un mostro da ben 8 Tesla, relativa motherboard e  NVSwitch, del valore di quasi 100$.

    dxgi.jpg    

     

     

     

     

     

     

     

     

     

     

     

     

     

     



    Commenti


    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...