Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
developpement:activites:qualification:30ans1code [2019/11/27 17:36]
equemene [Parallélisation avec OpenCL]
developpement:activites:qualification:30ans1code [2019/12/16 11:28]
equemene [Parallélisation avec OpenCL]
Ligne 317: Ligne 317:
 === Les performances sur tous les processeurs en OpenCL === === Les performances sur tous les processeurs en OpenCL ===
  
-Focalisons nous sur la capacité de calcul, donc le "​Compute Time" pour les simulations **Mono** ou **BB*.+Focalisons nous sur la capacité de calcul, donc le "​Compute Time" pour les simulations **Mono** ou **BB**.
  
 {{ :​developpement:​activites:​qualification:​cpu_compute_mono.png?​500 |}} {{ :​developpement:​activites:​qualification:​cpu_compute_mono.png?​500 |}}
Ligne 329: Ligne 329:
 Regardons ces performances maintenant en intégrant les temps de transferts Regardons ces performances maintenant en intégrant les temps de transferts
  
-{{ :​developpement:​activites:​qualification:​cpu_compute_bb.png?500 |}}+{{ :​developpement:​activites:​qualification:​cpu_elapsed_mono.png?500 |}}
  
-Pour Mono, le Threadripper se retrouve au même niveau en OpenCL qu'en OpenMP. Seul le dernier Skylake Intel W-2145 gagne un facteur 2.5x entre OpenCL et OpenMP. Les autres gagnent timidement de 80% à quelques dizaines de %. Le Silver déçoit en +En Mono, le Threadripper se retrouve au même niveau en OpenCL qu'en OpenMP. Seul le dernier Skylake Intel W-2145 gagne un facteur 2.5x entre OpenCL et OpenMP. Les autres gagnent timidement de 80% à quelques dizaines de %. Le Silver déçoit en étant moins performant en OpenCL qu'en OpenMP.
  
 +{{ :​developpement:​activites:​qualification:​cpu_elapsed_bb.png?​500 |}}
 +
 +En BB, nous réalisons quasiment les mêmes constats : Threadripper de second à cinquième, meilleur en OpenMP que OpenCL ; les Skylake bien meilleurs d'un facteur presque 3 en OpenCL ; le Silver et les deux Broadwell avec quelques % de mieux. Le système E5-2680v4 ​
 +
 +Quelles conclusions tirer de ces comparaisons ?
 +
 +Tout d'​abord qu'​Intel a très bien travaillé son OpenCL pour ses propres processeurs... Sans les Skylake, essentiellement le Gold et le W-2145, les gains seraient substantiels pour la partie **Compute** mais fondent dès que les temps de transfert sont intégrés. Puis que le Threadripper "​résiste",​ mais pas pour tous les usages : un test trop sommaire peut donc rapidement induire en erreur quant à la performance d'un processeur. Ensuite que les processeurs anciens, dès lors que l'​implémentation Intel est exploitable (donc après la génération Nehalem), l'​OpenCL reste une bonne option. Enfin que, avec OpenCL, notre ratio de performances de calcul frise les 100 millions en BB et 35 millions en Mono. En intégrant les transferts, ces ratios tombent à 81 millions en BB et 17 millions en Mono : 8 ordres de grandeurs séparent des processeurs séparés de 30 ans.
 +
 +=== Intégration des accélérateurs en OpenCL ===
 +
 +== Première comparaison avec la première Tesla ==
 +
 +En 2008, Nvidia titre [[https://​www.nvidia.com/​docs/​IO/​43395/​NV_DS_Tesla_PSC_US_Mar09_LowRes.pdf|Tesla Personal Supercomputer]]. Dans une machine au format "​station de travail",​ de 3 à 4 Nvidia Tesla C1060. Avec un puissance estimée à 4 TFlops, l'​article précise que cette station équivaut à 250 ordinateurs personnels.
 +
 +La première étape consiste donc à comparer cette machine avec une station de travail gonflée ou un serveur bisocket équivalent. A l'​époque,​ le processeur "fer de lance" de Intel est le Harpertown, un assemblage de 2 Core2 Duo Penryn.
 +
 +{{ :​developpement:​activites:​qualification:​c1060_harpertown.png?​500 |}}
 +
 +En Mono, la Tesla C1060 est 3.5x plus rapide que le serveur bi-socket en OpenCL, l'​OpenMP étant très légèrement inférieur en performances. En BB, c'est une toute autre affaire : l'​OpenCL de la Tesla est à peine supérieure à la version OpenMP du serveur bi-socket. La version OpenCL d'AMD, exploitée ici, est dramatiquement inefficace face à l'​OpenMP. Ainsi, déjà, nous constatons que, poiur notre première exploitation de GPU, son comportement n'est pas du tout éauivalent en fonction de la "​charge"​ que nous portons à chaque processus élémentaire.
 +
 +== AMD : les trois dernières générations ==
 +
 +Nous nous propulsons en 2019. Face aux meilleurs de nos processeurs (le Threadripper 1950X et l'​Intel C4145), nous opposons les trois dernières générations AMD : Nano Fury, Vega 64 et Radeon 7 (ou Vega 2).
 +
 +{{ :​developpement:​activites:​qualification:​amdvsbestcpu.png?​500 |}}
 +
 +Nous constatons que ce n'est "​que"​ pour la dernière génération de GPU que AMD dépasse sensiblement nos meilleurs CPU. Avec la Radeon 7, les performances sont entre 2 et 3 fois supérieures en BB et en Mono. Le ratio de performances entre Mono et BB passe de presque 10 à moins de 4, preuve que AMD, dans ses dernières générations adopte un comportement à la charge comparable à celui d'un processeur.
 +
 +== Nvidia : 5 générations de "​Gaming"​ ==
  
  
developpement/activites/qualification/30ans1code.txt · Dernière modification: 2019/12/17 15:34 par equemene