Tesla

  • CUDA E IL GPU COMPUTING
  • APPLICAZIONI PER GPU
  • GPU PER SERVER E WORKSTATION
Che cos'è il GPU Computing?
Divider

L'elaborazione di calcolo accelerata dalle GPU
sta rivoluzionando il supercomputing (HPC)

Il computing accelerato dalle GPU sta rivoluzionando l'elaborazione a elevate prestazioni (HPC). È ormai generalmente accettato che i sistemi dotati di acceleratori offrano le prestazioni migliori e un'efficienza energetica superiore alle attuali soluzioni HPC. I recenti annunci relativi ai supercomputer Summit e Sierra, di proprietà dello U.S. Department of Energy, evidenziano il valore cruciale raggiunto dagli acceleratori nella corsa del settore verso l'exascale computing.

Abbiamo quindi pensato di condividere alcuni dati illuminanti per la valutazione delle opzioni di elaborazione accelerata, cercando di mettere da parte tutte le promesse e le iperboli pubblicitarie. Nello specifico, l'idea che l'acceleratore Intel Xeon Phi possa offrire prestazioni accettabili rispetto a una GPU grazie alla semplice ricompilazione ed esecuzione del codice nativo su Xeon Phi, oppure che l'ottimizzazione delle performance sia più semplice su Xeon Phi rispetto alle GPU, risulta totalmente infondata alla prova dei fatti.

 
 
FATTO: Una GPU è significativamente più veloce di Intel Xeon Phi
nell'esecuzione di vere applicazioni HPC.
Il tempo necessario per arrivare al risultato nelle principali applicazioni scientifiche è la metà rispetto a Xeon Phi.
La velocità delle GPU NVIDIA è sino a 4 volte superiore rispetto a Xeon Phi

Lo scopo primario dell'HPC è l'aumento delle prestazioni delle applicazioni e le GPU hanno dimostrato di poter offrire performance nettamente superiori alle CPU. Usando applicazioni rappresentative dei vari carichi di lavoro scientifici,illustrate nel grafico qui sopra, le GPU dimostrano una velocità da 2,5 a 7 volte superiore alle CPU. Sebbene Xeon Phi di Intel possa essere ottimizzato in modo da superare in prestazioni le CPU, le prestazioni delle GPU rimangono, nella media, almeno 2-5 volte superiori della soluzione Knights Corner di fascia più alta.

Organizzazione Applicazione di computing Maggiore velocità delle GPU
rispetto a Xeon Phi
Tokyo Institute of Technology Diffusione CFD 2,6 volte
Xcelerit Prezzi degli swap LIBOR
con metodo Montecarlo
2,2 - 4 volte
Georgia Tech Radar ad apertura sintetica 2,1 volte
CGGVeritas Algoritmo di migrazione inversa (RTM) 2 volte
Paralution BLAS & SpMV 2.0x
Univ. of Wisconsin-Madison WRF (Previsioni meteo) 1.8x
Università di Erlangen-Nuremberg Imaging medico - Accelerazione via GPU della ricostruzione di immagini 3D 7x
Università di Delft Scoperta di farmaci 3x
Risultati indipendenti hanno dimostrato che le GPU offrono prestazioni almeno doppie rispetto a Xeon Phi.(Aggiornato a gennaio del 2014)
Oggi, quasi 200 applicazioni di computing, appartenenti a un ampio spettro di campi, sono accelerate dalle GPU.
FATTO: Le operazioni di “ricompilazione ed esecuzione” su Xeon Phi rallentano l'applicazione.
L'idea che gli sviluppatori possano semplicemente limitarsi a “ricompilare ed eseguire” le applicazioni su Intel Xeon Phi senza alcuna modifica del codice CPU è certamente affascinante ma decisamente fuorviante. Le prestazioni risultanti sono solitamente molto inferiori a quelle delle CPU, cioè letteralmente l'opposto dell'accelerazione.

La ricompilazione ed esecuzione su Xeon Phi rallenta le applicazioni
La semplice ricompilazione ed esecuzione su Phi funziona (talvolta), ma i codici sono eseguiti molto più lentamente che sulle CPU. Dettagli del sistema e della configurazione2

Sebbene una semplice ricompilazione per l'esecuzione nativa su Xeon Phi possa funzionare su molti codici, procedere a questo modo riduce le prestazioni dell'applicazione rispetto alla CPU. In alcuni casi, la riduzione arriva a un quinto della velocità delle CPU, come illustrato qui sopra.

La “ricompilazione ed esecuzione” deve affrontare tutta una serie di problemi tecnici, descritti con cura nel blog “No Free Lunch”, fra i quali spicca la legge di Amdahl per le porzioni seriali del codice. A causa delle scarse prestazioni seriali dei core di Xeon Phi (che sono basati su un vecchio design Pentium) rispetto ai più moderni core delle CPU attuali, la porzione seriale del codice eseguita in modo nativo su Xeon Phi può essere più lenta di un intero ordine di grandezza.

In pratica, uno sviluppatore deve per prima cosa fare in modo che il codice venga ricompilato su Xeon Phi e quindi impegnarsi a fondo per rifattorizzare e ottimizzare il codice in modo da aumentare le performance. Tutto questo sforzo serve solo ad arrivare alla parità di prestazioni con le CPU.

In ultima analisi, per ottenere il parallelismo occorre un certo impegno, sia che si intenda accelerare la propria applicazione con Xeon Phi o con le GPU. Nel caso migliore, la strategia “ricompila ed esegui” rappresenta per gli sviluppatori soltanto un primo passo, blandamente conveniente. Nel caso peggiore, invece, si tratta di un'affermazione fatta per attrarre utenti ma destinata a deluderli.
FATTO: La programmazione per una GPU e per Xeon Phi richiede un impegno del tutto analogo, anche se i risultati ottenuti sono inequivocabilmente migliori sulle GPU.
Le tecniche di ottimizzazione sono identiche. L'impegno dello sviluppatore è identico. L'accelerazione è però 2 volte superiore sulle GPU.
Method GPU Phi
Libraries CUDA Libraries + others Intel MKL + others
Directives OpenACC OpenMP + Phi Directives
Native Programming Models CUDA Vector Intrinsics
Gli sviluppatori utilizzano librerie, direttive o estensioni del linguaggio per programmare gli acceleratori e ottimizzare le prestazioni.

GPU e Intel Xeon Phi sono, per certi versi, differenti, ma il fatto che siano entrambi processori in parallelo rende queste soluzioni in larga misura similari. A prescindere dal fatto che decidano di utilizzare Xeon Phi o le GPU, gli sviluppatori devono spendere una quantità analoga di tempo e impegno e utilizzare tecniche di ottimizzazione del tutto simili per ottenere buoni risultati dal parallelismo.

Come illustrato nella tabella precedente, uno sviluppatore si avvale degli stessi tre metodi per accelerare il codice: librerie, direttive ed estensioni linguistiche come CUDA C per GPU o funzioni intrinseche vettoriali su Xeon Phi.

In più, le tecniche e l'impegno di programmazione per Xeon Phi e GPU sono molto più simili di quanto sia generalmente compreso.

Qui sotto, grazie a un codice kernel N-body, illustriamo come per ottimizzare entrambi questi acceleratori siano necessarie tecniche e tempistiche comparabili. Sebbene i cambiamenti del codice siano grossomodo gli stessi, le prestazioni ottenute con le GPU sono però nettamente superiori a quelle di Xeon Phi. Scarica l'esempio di ottimizzazione.
 
La GPU Tesla K20 è 11 volte più veloce di Xeon Phi
Un semplice confronto del codice N-body dimostra come vengano utilizzate tecniche di compressione assolutamente similari, sebbene le GPU siano nettamente più veloci. Dettagli del sistema e della configurazione3
 
 
 

Si può eseguire il porting facilmente, ma quello che si può fare in CUDA per vettorizzare il codice è ancora impossibile su Phi.

Dr. Karl Schultz
Director of Scientific Applications del Texas Advanced Computing Center (TACC)
Fonte: HPCWire, 17 maggio 2013

I nostri codici per GPU sono analoghi a quelli per Xeon Phi, fatta eccezione per la sostituzione delle operazioni SIMD con operazioni SIMT.

 

I risultati su Intel Xeon Phi sono stati sorprendentemente deludenti… A causa dell'impossibilità di ottimizzare la vettorizzazione, ci siamo dovuti impegnare parecchio per creare soluzioni con buone performance, il tutto a dispetto dell'asserita facilità di programmazione di Xeon Phi.

"Sebbene eseguire un programma su Xeon Phi sia facile, ho riscontrato che è più facile ottenere prestazioni elevate sostenute per le applicazioni Lattice Boltzmann con CUDA e GPU NVIDIA."

Dottor Sebastiano Fabio Schifano, Dipartimento di matematica e informatica dell'università di Ferrara

L'esame spassionato dei fatti porta inevitabilmente a una rappresentazione della realtà dell'elaborazione accelerata più accurata. Oggi una GPU fornisce il doppio delle performance con uno sforzo essenzialmente equivalente da parte dello sviluppatore. Le GPU sono quindi la scelta più logica per l'accelerazione di codice parallelo. Questo spiega, almeno in parte, perché quest'anno, usando le GPU, i ricercatori scientifici hanno ottenuto risultati 10 volte superiori rispetto a Intel Xeon Phi.4 E perché le GPU NVIDIA sono di gran lunga la soluzione preferita rispetto a Xeon Phi nei sistemi HPC (con una superiorità di 20 a 1).5

 

Note sulle configurazioni dei benchmark:
AMBER: SPFP-Cellulose_production_NPT, 1x E5-2697v2 + Xeon Phi 7120P, 1x E5-2697v2 @ 2,70 GHz + Tesla K40.
MiniMD: KokkosArray- forze LJ, 864.000 atomi, doppia precisione, 2x Xeon E5-2667 + Xeon Phi 7120, 2x Xeon E5-2667 + Tesla K40.
Monte Carlo RNG DP: prezzi delle option europee, 2x processori Intel® Xeon® E5-2697 v3 + GPU Tesla K40, risultati delle prestazioni di Xeon Phi forniti da Intel sul proprio sito Web.
tHogbomClean: 2x Xeon E5-2697 v2 + Xeon Phi 7120, 2x Xeon E5-2697 v2 + Tesla K40c.
Opzioni binomiali SP: 2x processori Xeon E5-2697 v3 + GPU Tesla K40, risultati delle prestazioni di Xeon Phi forniti da Intel sul proprio sito Web.
NAMD: APOA1, 2x Xeon E5-2697v2 + Xeon Phi 7120, 2x Xeon E5-2697v2 +Tesla K40.
STAC-A2: Warm Greek, 2x CPU E5-2699v3 + Xeon Phi 7120A, 2x Intel Xeon E5-2690v2 + Tesla K80.

 
 
CUDA e il GPU Computing

Che cos'è il GPU Computing?
Dati sull'elaborazione via GPU
Programmazione su GPU
Architettura delle GPU Kepler
Cloud Computing GPU
Contattaci

Che cos’è CUDA?
Vetrina di CUDA
Training su CUDA
Calendario Corsi CUDA
CUDA Research Center
CUDA Teaching Center

Applicazioni per GPU

Applicazioni per GPU Tesla
Storie di successo di Tesla
Direttive OpenACC
Tesla GPU Test Drive

GPU Tesla per
server e workstation

Per quale motivo scegliere Tesla
Soluzioni server Tesla
Soluzioni Workstation Tesla
Embedded Development Platform
Acquista GPU Tesla

News e informazioni Tesla

Documentazione sui prodotti Tesla
Funzionalità software Tesla
Strumenti di sviluppo software Tesla
Ricerca NVIDIA
Avvisi Tesla

Trovaci online

NVIDIA Blog Blog di NVIDIA
Facebook Facebook IT
Twitter Twitter IT
YouTube YouTube