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
Dernière révision Les deux révisions suivantes
developpement:activites:qualification:c4140 [2019/07/31 17:26]
equemene
developpement:activites:qualification:c4140 [2019/08/02 16:37]
equemene
Ligne 1: Ligne 1:
 ====== Le C4140 : la puissance de 1 baie dans 1U, et de quoi effacer les autres C41 ====== ====== Le C4140 : la puissance de 1 baie dans 1U, et de quoi effacer les autres C41 ======
 +
 +En un coup d'​oeil,​ la comparaison de performance entre la Nvidia Tesla V100, le Dell C4140 qui en possède quatre et un noeud de calcul traditionnel.
  
 {{ :​developpement:​activites:​qualification:​surveyc4140_fp3264.png?​600|}} {{ :​developpement:​activites:​qualification:​surveyc4140_fp3264.png?​600|}}
Ligne 7: Ligne 9:
 ===== Introduction ===== ===== Introduction =====
  
-Tester ​toute à la fois la successeure de la Nvidia Tesla P100 et le nouveau "​noeud"​ GPU de Dell, tel était l'​objectif de cette mise à disposition par l'​intégrateur. Nous verrons que la Tesla V100 est bien le "​monstre"​ que certains ont déjà pu manipuler en France depuis 2 ans. Cependant, avec son intégration dans le C4140 qui en héberge 4, c'est un sacré budget qu'il faut débourser pour s'​offrir la machine la plus puissante qu'il m'ait été donné de tester. Encore faut-il en avoir l'​usage face aux autres solutions du marché. C'est ce que nous allons explorer...+Tester ​tout à la fois la successeure de la Nvidia Tesla P100 et le nouveau "​noeud"​ GPU de Dell, tel était l'​objectif de cette mise à disposition par l'​intégrateur. Nous verrons que la Tesla V100 est bien le "​monstre"​ que certains ont déjà pu manipuler en France depuis 2 ans. Cependant, avec son intégration dans le C4140 qui en héberge 4, c'est un sacré budget qu'il faut débourser pour s'​offrir la machine la plus puissante qu'il m'ait été donné de tester. Encore faut-il en avoir l'​usage face aux autres solutions du marché. C'est ce que nous allons explorer...
  
 ===== Un peu d'​histoire ===== ===== Un peu d'​histoire =====
Ligne 17: Ligne 19:
 Il y a 6 ans, je recevais en test pour la première fois un C410X et son fidèle Robin (ou Batman, tout dépend de quel côté on se place) C6100. La machine était impressionnante : dans 3U, la possibilité de mettre 16 GPGPU. A l'​époque,​ Nvidia, dans sa génération Fermi, "​offrait"​ 3 solutions : les Tesla M2050, Tesla M2070 et Tesla M2090. Des cartes comparables,​ essentiellement différentes par le nombre de cudacores (448 pour les deux premières) et 512 pour la dernière, des fréquences légèrement différentes également (de 1150 à 1300 MHz). Déjà, à l'​époque,​ nous avions pu "​juger"​ de l'​opacité des tarifs de Nvidia (3GB de RAM à 400$). ​ Il y a 6 ans, je recevais en test pour la première fois un C410X et son fidèle Robin (ou Batman, tout dépend de quel côté on se place) C6100. La machine était impressionnante : dans 3U, la possibilité de mettre 16 GPGPU. A l'​époque,​ Nvidia, dans sa génération Fermi, "​offrait"​ 3 solutions : les Tesla M2050, Tesla M2070 et Tesla M2090. Des cartes comparables,​ essentiellement différentes par le nombre de cudacores (448 pour les deux premières) et 512 pour la dernière, des fréquences légèrement différentes également (de 1150 à 1300 MHz). Déjà, à l'​époque,​ nous avions pu "​juger"​ de l'​opacité des tarifs de Nvidia (3GB de RAM à 400$). ​
  
-Le C410X était un boitier à l'​alimentation autonome, effroyablement bruyant, disposant de 8 entrées/​sorties PCIe. Dans la lignée du S0170 de Nvidia et sa liaison PCI Express sortante, Dell souhaitait offrir à ses clients une solution polyvalente permettant d'​associer des GPGPU à des serveurs, pour tirer profit des (rares) codes de l'​époque supportant le multi-gpu. Au final et malgré de nombreux tests, je n'ai disposé que de systèmes particulièrement instables, aux connecteurs très sensibles, avec souvent ​la nécessité, en cas de plantage d'un serveur avec un GPU, de redémarrer l'​ensemble des 4 serveurs pour à nouveau réinitialiser toutes les cartes. Certes, ​Le matériel mis à disposition avait beaucoup voyagé, avait été largement démonté (voire dépouillé) de certains composants. Cependant, après de longues heures de mise à jours de tous les composants, il était possible de disposer d'un système exploitable,​ mais uniquement avec des cartes M2070 et M2090.+Le C410X était un boitier à l'​alimentation autonome, effroyablement bruyant, disposant de 8 entrées/​sorties PCIe. Dans la lignée du S0170 de Nvidia et sa liaison PCI Express sortante, Dell souhaitait offrir à ses clients une solution polyvalente permettant d'​associer des GPGPU à des serveurs, pour tirer profit des (rares) codes de l'​époque supportant le multi-gpu. Au final et malgré de nombreux tests, je n'ai disposé que de systèmes particulièrement instables, aux connecteurs très sensibles ​; il était ​souvent ​nécessaire, en cas de plantage d'un serveur avec un GPU, de redémarrer l'​ensemble des 4 serveurs pour à nouveau réinitialiser toutes les cartes. Certes, ​le matériel mis à disposition avait beaucoup voyagé, avait été largement démonté (voire dépouillé) de certains composants. Cependant, après de longues heures de mise à jour de tous les composants, il était possible de disposer d'un système exploitable,​ mais uniquement avec des cartes M2070 et M2090.
  
-L'​effroyable point faible du C410X ne nous fut révélé que quelques mois plus tard lorsque Nvidia sortit ses premiers circuits Kepler pour le calcul, avec les séries K20 et K40. Alors qu'il était tout à fait possible de rendre opérationnelle une Tesla K20 dans un logement de C410X, ce fut malheureusement la dernière. La K40 de format comparable n'​était pas reconnue et la K80 ne disposait pas de l'​alimentation suffisante. Autre souci de taille, la concurrence : déjà, à l'​époque,​ certains codes de calcul se satisfaisaient "très bien" de la simple précision ; ainsi, les cartes de Gamer (GTX 780 en tête) offraient un rapport performance/​prix très supérieur aux modèles Tesla (de l'​ordre de 5 pour 1). Pour finir sur le bilan du C410X, il y avait une limitation qui, finalement, balayait tout l'​intérêt de l'​objet : la possibilité de pouvoir associer tel au tel GPGPU à telle ou telle machine. En fait, la matrice d'​association noeud/GPGPU n'​offre que quelques possibilités et cela passe nécessairement par une arrêt complet et un redémarrage de toute l'​infrastructure : IPMI devient alors le commis indispensable pour son exploitation.+L'​effroyable point faible du C410X ne nous fut révélé que quelques mois plus tard lorsque Nvidia sortit ses premiers circuits Kepler pour le calcul, avec les séries K20 et K40. Alors qu'il était tout à fait possible de rendre opérationnelle une Tesla K20 dans un logement de C410X, ce fut malheureusement la dernière. La K40 de format comparable n'​était pas reconnue et la K80 ne disposait pas de l'​alimentation suffisante. Autre souci de taille, la concurrence : déjà, à l'​époque,​ certains codes de calcul se satisfaisaient "très bien" de la simple précision ; ainsi, les cartes de Gamer (GTX 780 en tête) offraient un rapport performance/​prix très supérieur aux modèles Tesla (de l'​ordre de 5 pour 1). Pour finir sur le bilan du C410X, il y avait une limitation qui, finalement, balayait tout l'​intérêt de l'​objet : la possibilité de pouvoir associer tel ou tel GPGPU à telle ou telle machine. En somme, la matrice d'​association noeud/GPGPU n'​offre que quelques possibilités et cela passe nécessairement par une arrêt complet et un redémarrage de toute l'​infrastructure : IPMI devient alors le commis indispensable pour son exploitation.
  
 Après 6 ans et une escapade grenobloise,​ le C410x et son fidèle C6100 sont revenus au Centre Blaise Pascal. Longtemps équipé de seulement deux Tesla K20 et deux faux jumeaux M2070 et M2090, elle s'est vue amendée de 4 nouvelles cartes déclassées par le centre de calcul. Sa stabilité reste précaire mais suffisante pour de petites tâches, tant que les circuits Fermi les supportent. Après 6 ans et une escapade grenobloise,​ le C410x et son fidèle C6100 sont revenus au Centre Blaise Pascal. Longtemps équipé de seulement deux Tesla K20 et deux faux jumeaux M2070 et M2090, elle s'est vue amendée de 4 nouvelles cartes déclassées par le centre de calcul. Sa stabilité reste précaire mais suffisante pour de petites tâches, tant que les circuits Fermi les supportent.
Ligne 25: Ligne 27:
 ==== Le C4130, et le malheur du Xeon Phi ==== ==== Le C4130, et le malheur du Xeon Phi ====
  
-Conscient que les liens externes PCIe ne posaient ​que des difficultés,​ et que le contrôle de la matrice noeud/GPU n'​était pas assez "​granulée",​ Dell a proposé son C4130 : une machine bi-socket, 1U, équipée directement de 4 GPU (ou 4 Xeon Phi Knight Corner). J'ai alors reçu en test la version équipée de (seulement) 2 Xeon Phi. Evidemment, l'​intégration ne permettait aucune fantaisie sur les accélérateurs possibles : la matrice de compatibilité était d'une pauvreté assez accablante. Dans cette approche, la difficulté de prise en main était plutôt à imputer à Intel et son accélérateur si difficilement exploitable qu'il en devient inutilisable. Pour exploiter un Xeon Phi, il fallait déjà installer un environnement spécifique permettant de démarrer un OS sur la carte accélératrice. Une fois cet environnement démarré, 3 options s'​offraient à l'​utilisateur pour exploiter le Xeon Phi : cross-compiler son code et l'​exécuter nativement sur l'​accélérateur. C'est là que beaucoup ont découvert que 60 veaux à 1.25GHz sont moins efficaces que des double Sandy Bridge 8 coeurs à 3 GHz. Il y avait aussi, avec OpenMP4 (et évidemment le compilateur Intel), la possibilité d'​exploiter le mode "​offload"​ et la "​décharge"​ d'un calcul sur l'​accélérateur. Intéressant mais exigeant un régime de parallélisme optimal supérieur à 960 (16*60, comme c'est bizarre)... La troisième option, que j'ai largement exploitée, consistait à utiliser l'​implémentation OpenCL fournie par Intel. Très efficace, ​tellement ​que c'est avec elle que j'ai obtenu, avec mes tests "​maison",​ les meilleures performances. Le Xeon Phi était même, du temps des IvyBridge et des Kepler, supérieur à ces derniers si le régime de parallélisme était entre 1000 et 2000. Encore fallait-il s'y intéresser... Pour en revenir au C4130, il fallait donc, pour l'​exploiter efficacement en OpenMP ou en OpenCL, s'​adresser aux deux périphériques indépendamment,​ ce qui rendait le code, finalement, ​complètement spécifique à cette infrastructure. A l'​époque,​ le soufflet du Xeon Phi était retombé : tous (ou presque) avaient expérimenté amèrement les performances catastrophiques sur leurs codes sans modification.+Conscient que les liens externes PCIe n'​engendraient ​que des difficultés,​ et que le contrôle de la matrice noeud/GPU n'​était pas assez "​granulée",​ Dell a proposé son C4130 : une machine bi-socket, 1U, équipée directement de 4 GPU (ou 4 Xeon Phi Knight Corner). J'ai alors reçu en test la version équipée de (seulement) 2 Xeon Phi. Evidemment, l'​intégration ne permettait aucune fantaisie sur les accélérateurs possibles : la matrice de compatibilité était d'une pauvreté assez déprimante. Dans cette approche, la difficulté de prise en main était plutôt à imputer à Intel et son accélérateur si difficilement exploitable qu'il en devient inutilisable. Pour exploiter un Xeon Phi, il fallait déjà installer un environnement spécifique permettant de démarrer un OS sur la carte accélératrice. Une fois cet environnement démarré, 3 options s'​offraient à l'​utilisateur pour exploiter le Xeon Phi : cross-compiler son code et l'​exécuter nativement sur l'​accélérateur. C'est là que beaucoup ont découvert que 60 veaux à 1.25GHz sont moins efficaces que des double Sandy Bridge 8 coeurs à 3 GHz. Il y avait aussi, avec OpenMP4 (et évidemment le compilateur Intel), la possibilité d'​exploiter le mode "​offload"​ et la "​décharge"​ d'un calcul sur l'​accélérateur. Intéressant mais exigeant un régime de parallélisme optimal supérieur à 960 (16*60, comme c'est bizarre)... La troisième option, que j'ai largement exploitée, consistait à utiliser l'​implémentation OpenCL fournie par Intel. Très efficace, ​si bien que c'est avec elle que j'ai obtenu, avec mes tests "​maison",​ les meilleures performances. Le Xeon Phi était même, du temps des IvyBridge et des Kepler, supérieur à ces derniers si le régime de parallélisme était entre 1000 et 2000. Encore fallait-il s'y intéresser... Pour en revenir au C4130, il fallait donc, pour l'​exploiter efficacement en OpenMP ou en OpenCL, s'​adresser aux deux périphériques indépendamment,​ ce qui rendait ​finalement ​le code complètement spécifique à cette infrastructure. A l'​époque,​ le soufflet du Xeon Phi était retombé : tous (ou presque) avaient expérimenté amèrement les performances catastrophiques sur leurs codes sans modification.
  
 Au final, il n'y eut jamais la masse critique d'​utilisateurs ou le temps ingénieur disponible pour pleinement exploiter cette approche. Le boitier, quant à lui, avait montré toute la pertinence d'une énorme intégration,​ mais le coût d'​entrée (1 chassis et 4 accélérateurs) restait pour beaucoup rédhibitoire dans un marché où le GPGPU professionnel dépassait les 5000€, fixant l'​ensemble à plus de 25000€. Parallèlement,​ d'​autres solutions largement étaient plus polyvalentes ; les séries R720, R730 puis R740 offraient (et offrent) de 2 à 3 emplacements GPU ou GPGPU, avec comme perspective d'y placer (sans la garantie constructeur mais avec du papier sulfurisé) au moins 2 GPU de gamer 10 fois moins onéreux. Au final, il n'y eut jamais la masse critique d'​utilisateurs ou le temps ingénieur disponible pour pleinement exploiter cette approche. Le boitier, quant à lui, avait montré toute la pertinence d'une énorme intégration,​ mais le coût d'​entrée (1 chassis et 4 accélérateurs) restait pour beaucoup rédhibitoire dans un marché où le GPGPU professionnel dépassait les 5000€, fixant l'​ensemble à plus de 25000€. Parallèlement,​ d'​autres solutions largement étaient plus polyvalentes ; les séries R720, R730 puis R740 offraient (et offrent) de 2 à 3 emplacements GPU ou GPGPU, avec comme perspective d'y placer (sans la garantie constructeur mais avec du papier sulfurisé) au moins 2 GPU de gamer 10 fois moins onéreux.
Ligne 100: Ligne 102:
  
 Le calcul de Pi par Monte Carlo est toujours le premier test que nous lançons dès qu'un périphérique de calcul quelconque se présente. Simple et aisément parallélisable,​ il "​colle"​ plutôt très bien à la géométrie calculatoire d'un "​moteur"​ de traitement d'​information. Le résultat se présente comme un nombre équivalent d'​itérations par seconde. A l'​automne dernier, avec la RTX 2080 Ti, nous avions franchi un cap : celui des 500 Gitops (Giga ITerative Operations Per Second), soit 500 milliards d'​itérations par seconde. 5 ans auparavant, nous en avions 10 fois moins. Et il y a 40 ans,  avec un 6809 et un Basic interprété nous offraient 50 itérations par seconde : soit un facteur de 10 milliards entre 1978 et 2018. Avec la Tesla V100, nous nous attendions à dépasser 600 Gitops. C'est chose faite. Par contre, nous ne nous attentions pas à "​mettre"​ un facteur 3 à la Tesla P100 ! En double précision, étant donné que l'​essentiel de la "​charge"​ réside dans la génération de nombres aléatoires entiers sur 32 bits, les performances sont relativement comparables entre la simple et la double précision. Ce n'est pas le cas pour les GTX ou RTX, lesquelles "​conservent"​ une performance divisée par 20 pour des calculs doublant la précision. Le calcul de Pi par Monte Carlo est toujours le premier test que nous lançons dès qu'un périphérique de calcul quelconque se présente. Simple et aisément parallélisable,​ il "​colle"​ plutôt très bien à la géométrie calculatoire d'un "​moteur"​ de traitement d'​information. Le résultat se présente comme un nombre équivalent d'​itérations par seconde. A l'​automne dernier, avec la RTX 2080 Ti, nous avions franchi un cap : celui des 500 Gitops (Giga ITerative Operations Per Second), soit 500 milliards d'​itérations par seconde. 5 ans auparavant, nous en avions 10 fois moins. Et il y a 40 ans,  avec un 6809 et un Basic interprété nous offraient 50 itérations par seconde : soit un facteur de 10 milliards entre 1978 et 2018. Avec la Tesla V100, nous nous attendions à dépasser 600 Gitops. C'est chose faite. Par contre, nous ne nous attentions pas à "​mettre"​ un facteur 3 à la Tesla P100 ! En double précision, étant donné que l'​essentiel de la "​charge"​ réside dans la génération de nombres aléatoires entiers sur 32 bits, les performances sont relativement comparables entre la simple et la double précision. Ce n'est pas le cas pour les GTX ou RTX, lesquelles "​conservent"​ une performance divisée par 20 pour des calculs doublant la précision.
 +
 +{{ :​developpement:​activites:​qualification:​pi_c4140.png?​600 |}}
  
 Ce calcul simple nous offre un record, mais pas une "​première"​ ! Je recherche depuis longtemps un noeud (une machine à mémoire partagée) qui m'​offre une puissance supérieure à 1 Titops (soit 1000 milliards d'​itérations par seconde). En agrégeant la puissance de 2 RTX 2080 Ti, cela devait être possible à l'​automne 2018, mais mes versions Pthreads et MPI plafonnaient à 970 Gitops sans franchir ce plafond. Ici, en cumulant les 4 Tesla V100 du C4140, j'​obtiens près de 2.4 Titops : plafond pulvérisé. Je voulais aller sur la Lune, le C4140 m'​envoie vers Mars ! Ce calcul simple nous offre un record, mais pas une "​première"​ ! Je recherche depuis longtemps un noeud (une machine à mémoire partagée) qui m'​offre une puissance supérieure à 1 Titops (soit 1000 milliards d'​itérations par seconde). En agrégeant la puissance de 2 RTX 2080 Ti, cela devait être possible à l'​automne 2018, mais mes versions Pthreads et MPI plafonnaient à 970 Gitops sans franchir ce plafond. Ici, en cumulant les 4 Tesla V100 du C4140, j'​obtiens près de 2.4 Titops : plafond pulvérisé. Je voulais aller sur la Lune, le C4140 m'​envoie vers Mars !
Ligne 157: Ligne 161:
 ====== Conclusion : un monstre polyvalent (mais pour les nantis) ====== ====== Conclusion : un monstre polyvalent (mais pour les nantis) ======
  
-Il est clair que la mise à disposition de ce C4140 m'a réconcilié avec la série des C41. Exit les instabilités chroniques des C410X, terminé ces Xeon Phi inexploitables des C4130. Dans une unité de baie, il est possible de disposer de la puissance brute d'une baie entière de noeuds de calcul assez "​musclés",​ et ce pour un nombre croissant d'​applications dans de nombreux ​domaine.+Il est clair que la mise à disposition de ce C4140 m'a réconcilié avec la série des C41. Exit les instabilités chroniques des C410X, terminé ces Xeon Phi inexploitables des C4130. Dans une unité de baie, il est possible de disposer de la puissance brute d'une baie entière de noeuds de calcul assez "​musclés",​ et ce pour un nombre croissant d'​applications dans de nombreux ​domaines.
  
 Oui, la Nvidia Tesla V100 est un "​monstre",​ reléguant la précédente,​ la Tesla P100 (qui était déjà impressionnante en son temps) à un facteur 2. Si l'​efficacité en double précision est exigée, il n'y a pas d'​autre option. Le C4140, cette intégration de 4 Tesla V100 dans une unité de baie est un pari : en plaçant le ticket d'​entrée très haut (un ensemble à 45k€ minimum), il faut pouvoir justifier d'une utilisation efficace de tous ses composants et dans tous les cas. Malheureusement,​ les codes exploitant efficacement plusieurs GPU restent rares, et, quand ils le sont, leurs cas d'​usage anecdotiques. Oui, la Nvidia Tesla V100 est un "​monstre",​ reléguant la précédente,​ la Tesla P100 (qui était déjà impressionnante en son temps) à un facteur 2. Si l'​efficacité en double précision est exigée, il n'y a pas d'​autre option. Le C4140, cette intégration de 4 Tesla V100 dans une unité de baie est un pari : en plaçant le ticket d'​entrée très haut (un ensemble à 45k€ minimum), il faut pouvoir justifier d'une utilisation efficace de tous ses composants et dans tous les cas. Malheureusement,​ les codes exploitant efficacement plusieurs GPU restent rares, et, quand ils le sont, leurs cas d'​usage anecdotiques.
developpement/activites/qualification/c4140.txt · Dernière modification: 2019/08/02 17:09 par equemene