Tesla

  • CUDA ET CALCUL PAR LE GPU
  • APPLICATIONS GPU
  • GPU POUR SERVEURS ET STATIONS DE TRAVAIL
Le calcul par le GPU, c'est quoi ?
Divider

Le calcul accéléré par GPU a révolutionné
les techniques de calcul haute performance (HPC)

Les stations de travail équipées d'accélérateurs GPU offrent une excellente efficacité énergétique et les meilleures performances de l’industrie. Les supercalculateurs Summit et Sierra, dont la mise en œuvre a récemment été annoncée par le département de l'Énergie des États-Unis, démontrent toute l’importance des accélérateurs GPU pour l'avènement de l'informatique exascale.

Nous aimerions partager avec vous quelques faits établis en matière de calcul accéléré, mais également évoquer certaines solutions concurrentes. Plus spécifiquement, nous allons récuser les idées selon lesquelles l’accélérateur Xeon Phi d’Intel serait aussi performant qu’un GPU (simplement en recompilant et en exécutant du code nativement avec Xeon Phi) ou que l’optimisation de performances serait plus facile avec Xeon Phi qu’avec des systèmes accélérés par GPU.

 
 
FAIT ÉTABLI : Un GPU est bien plus rapide que Xeon Phi d’Intel Phi avec
les applications HPC.
Les GPU accélèrent l’obtention de résultats dans les applications scientifiques majeures (jusqu’à 2 fois plus vite qu’avec Xeon Phi).
Un GPU NVIDIA est jusqu’à 4 fois plus rapide que Xeon Phi

En matière de calcul haute performance, les performances applicatives jouent un rôle prépondérant. Dans ce domaine, les GPU ont déjà maintes fois prouvé leur supériorité par rapport aux CPU. Comme indiqué sur le graphique ci-dessus, les GPU NVIDIA offrent une accélération comprise entre 2,5x et 7x, un gain de performances bien plus élevé qu’avec les CPU. Même si les coprocesseurs Intel de la série Xeon Phi peuvent être optimisés pour dépasser les performances d'un CPU, les performances des GPU NVIDIA restent 2,5 fois plus rapides que celles d'un coprocesseur Intel Knights Corner haut de gamme.

Organisme Application de calcul Accélération GPU par rapport à Xeon Phi
Université de Technologie de Tokyo Diffusion MFN 2,6x
Xcelerit Tarification LIBOR des contrats d’échange de
flux financiers avec modèle de Monte Carlo
2,2 - 4x
Georgia Tech Radar à synthèse d'ouverture 2,1x
CGGVeritas Migration à temps inverse 2x
Paralution BLAS & SpMV 2.0x
Université du Wisconsin (Madison, États-Unis) WRF (prévision météorologique) 1.8x
Université d'Erlangen-Nuremberg Imagerie médicale (reconstruction 3D) 7x
Université de technologie de Delft Recherche pharmaceutique 3x
Des résultats indépendants mettent en évidence une accélération GPU moyenne au moins deux fois plus importante qu’avec Xeon Phi. (Dernière mise à jour : janvier 2014)
Aujourd’hui, les GPU accélèrent environ 200 applications de calcul dans une grande gamme de champs d’application.
FAIT ÉTABLI : Le processus de recompilation et d’exécution du code avec Xeon Phi ralentit vos applications.
La notion selon laquelle les développeurs peuvent simplement « recompiler et exécuter » leurs applications avec Xeon Phi d’Intel, sans devoir modifier leur code CPU, est attrayante mais surtout trompeuse. Les performances Xeon Phi correspondantes sont souvent plus lentes qu’avec un simple traitement CPU. Vous conviendrez qu’on est loin de toute forme d’accélération.
La recompilation et l’exécution du code avec Xeon Phi ralentit les performances d’application
Le processus de recompilation et d’exécution du code avec Xeon Phi fonctionne vraisemblablement, mais le code s’exécute bien plus lentement qu’avec le traitement CPU d’origine. Données détaillées sur le système et la configuration2

Même si la recompilation d’un code pour son exécution avec Xeon Phi fonctionne dans la plupart des cas, ce processus a tendance à réduire les performances d’application par rapport au traitement CPU (jusqu’à 5 fois comme indiqué ci-dessus).

Le processus de recompilation et d’exécution du code implique plusieurs défis techniques (par exemple d’appliquer la loi d’Amdahl sur des portions de code en série), comme expliqué sur le blog No Free Lunch. En raison des faibles performances de traitement en série des cœurs Xeon Phi (basés sur une ancienne architecture Pentium) par rapport aux cœurs CPU modernes, les portions de code exécutées en série par Xeon Phi sont souvent bien plus lentes.

Dans la pratique, les développeurs doivent adapter leur code pour la recompilation avec Xeon Phi, puis le refactoriser et l’optimiser pour en améliorer les performances et obtenir des résultats similaires au traitement CPU d’origine.

Au final, il faut donc systématiquement adapter le code pour tirer parti du parallélisme, que ce soit avec Xeon Phi ou les GPU. Dans le meilleur des cas, le processus de recompilation et d’exécution du code est une première étape légèrement utile aux développeurs. Dans le pire des cas, c’est une perte de temps.
FAIT ÉTABLI : La programmation pour l’accélération GPU ou Xeon Phi demande
autant d’efforts, mais les résultats sont meilleurs avec les GPU.
Mêmes techniques d’optimisation. Mêmes efforts de développement. Accélération deux fois plus importante avec le traitement GPU.
Method GPU Phi
Libraries CUDA Libraries + others Intel MKL + others
Directives OpenACC OpenMP + Phi Directives
Native Programming Models CUDA Vector Intrinsics
Les développeurs utilisent des bibliothèques, des directives et des extensions de langage pour programmer les systèmes d’accélération et optimiser les performances.

Un GPU et Xeon Phi d’Intel diffèrent à certains égards, mais ce sont tous deux des processeurs parallèles. Les développeurs doivent fournir autant d’efforts et recourir aux mêmes techniques d’optimisation pour exploiter correctement le parallélisme, aussi bien avec Xeon Phi qu’avec les GPU.

Comme démontré ci-dessus, les développeurs utilisent les trois mêmes méthodes (bibliothèques, directives et extensions de langage comme CUDA C pour les GPU ou Vector Intrinsics pour Xeon Phi.

Les efforts de programmation pour Xeon Phi et les GPU sont plus proches qu’on ne l’imagine généralement.

Ci-dessous, un code de noyau N-body démontre que des techniques d’optimisation comparables sont requises dans les deux cas. Les changements apportés au code sont sensiblement similaires, mais le gain de performances est bien plus important avec le calcul par le GPU. Téléchargez notre exemple d’optimisation.
 
Les GPU Tesla K20 sont jusqu'à 11 fois plus rapide que Xeon Phi
Cette comparaison de code N-body démontre que des techniques d’optimisation similaires sont utilisées et que l’accélération est beaucoup plus importante avec les GPU. Données détaillées sur le système et la configuration3
 
 
 

« Le processus de portage est relativement simple, mais vous devez tout de même vectoriser votre code pour Xeon Phi, de la même manière que vous le feriez pour CUDA. »

Dr. Karl Schultz
Directeur des applications scientifiques au Texas Advanced Computing Center (TACC)
Source : HPCWire, 17 mai 2013

« Hormis le remplacement des opérations SIMD par des opérations SIMT, nos codes GPU sont assez similaires aux codes Xeon Phi. »

 

« Les résultats obtenus avec le coprocesseur Xeon Phi d’Intel se sont révélés étonnamment décevants. Malgré sa réputation d’être facilement programmable, nous avons dû déployer pas mal d’efforts en matière de vectorisation pour créer des solutions performantes. »

"Même s'il est relativement aisé de recompiler un programme pour l'exécuter avec Xeon Phi, je trouve qu'il reste encore bien plus simple de recourir à CUDA et aux GPU NVIDIA pour obtenir durablement des performances plus élevées avec les applications de Lattice Boltzmann."

Dr Sebastiano Fabio Schifano, Département de Mathématiques et Informatique, Université de Ferrara

Une fois confronté aux faits, la vérité émerge. À l’heure actuelle, un GPU fournit deux fois plus de performances pour globalement les mêmes efforts de développement. Les GPU sont le choix incontournable pour l’accélération du code parallèle. Cela explique en partie pourquoi la communauté scientifique a 10 fois plus utilisé les GPU que Xeon Phi d’Intel cette année4, tout comme le fait que les GPU NVIDIA ont été 20 fois plus intégrés que Xeon Phi à des systèmes HPC.5

 

NOTES DE BAS DE PAGE RELATIVES AUX CONFIGURATIONS DE BENCHMARK
AMBER : SPFP-Cellulose_production_NPT, 1x E5-2697v2 + Xeon Phi 7120P, 1x E5-2697v2 à 2,70 GHz + Tesla K40.
MiniMD : KokkosArray- Forces intermoléculaires avec potentiel de Lennard-Jones, 864 000 atomes, précision double, 2x Xeon E5-2667 + Xeon Phi 7120, 2x Xeon E5-2667 + Tesla K40.
Monte Carlo RNG DP : Calcul d'options (marché européen), 2x Intel® Xeon® E5-2697v3 + Tesla K40 ; Résultats des performances Xeon Phi disponibles sur le site Internet d'Intel.
tHogbomClean : 2x Xeon E5-2697v2 + Xeon Phi 7120, 2x Xeon E5-2697v2 + Tesla K40c.
Binomial Options SP : 2x Xeon E5-2697v3 + Tesla K40 ; Résultats des performances Xeon Phi disponibles sur le site Internet d'Intel.
NAMD : APOA1, 2x Xeon E5-2697v2 + Xeon Phi 7120, 2x Xeon E5-2697v2 +Tesla K40.
STAC-A2 : Warm Greek, 2x E5-2699v3 + Xeon Phi 7120A, 2x Intel Xeon E5-2690v2 + Tesla K80.

 
 
CUDA et Calcul par le GPU

Le calcul par le GPU, c'est quoi ?
Principes du calcul par le GPU
Programmation GPU
Architecture Kepler
Cloud Computing
Contactez-nous

Présentation de CUDA
Showcase CUDA
Formation CUDA
CUDA Courses Calendar
Centres de recherche CUDA
Centres d’enseignement CUDA

Applications GPU

Applications GPU Tesla
Études de cas Tesla
Directives OpenACC
Offre d’essai GPU Tesla

GPU Tesla pour serveurs
et stations de travail

Pourquoi choisir Tesla ?
Solutions Tesla pour serveurs
Solutions Tesla pour
stations de travail

Plateforme de développement intégrée
Acheter GPU Tesla

Infos et actualités Tesla

Documentation Tesla
Fonctions logicielles Tesla
Outils de développement de logiciels
NVIDIA Research
Alertes Tesla

NVIDIA en ligne

NVIDIA Blog Blog NVIDIA

Facebook Facebook

Twitter Twitter

Twitch Twitch

YouTube YouTube