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
formation:cbp20190606gpu [2019/06/04 16:15]
equemene [Conclusion]
formation:cbp20190606gpu [2019/06/11 10:37] (Version actuelle)
equemene [Conclusion]
Ligne 1: Ligne 1:
 ====== CBP 2019 : le GPU par la pratique ====== ====== CBP 2019 : le GPU par la pratique ======
  
-Cette session pratique accompagne le cours du 6 juin au matin réalisé par Emmanuel Quémener.+Cette session pratique accompagne le [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​PresentationGPU_190606_EQ.pdf|cours]] du 6 juin au matin réalisé par Emmanuel Quémener.
  
 +===== Déroulement de la journée =====
 +
 +  * 08h30-09h00 Accueil devant la salle M7-1H104
 +
 +  * 09h00-10h30 Cours d'​introduction aux GPU
 +  * 10h30-10h45 Pause
 +  * 10h45-12h30 TP première partie
 + 
 +  * 12h30-13h30 Repas salle 116
 +
 +  * 13h30-15h15 TP seconde partie
 +  * 15h30-15h45 Pause
 +  * 15h45-17h30 TP troisième partie ​
 ===== CQQCOQP : Comment ? Qui ? Quand ? Combien ? Où ? Quoi ? Pourquoi ? ===== ===== CQQCOQP : Comment ? Qui ? Quand ? Combien ? Où ? Quoi ? Pourquoi ? =====
  
Ligne 45: Ligne 58:
   * **p100alpha**,​ **p100beta** : stations virtuelles disposant d'une Nvidia Tesla P100   * **p100alpha**,​ **p100beta** : stations virtuelles disposant d'une Nvidia Tesla P100
   * **k40m** : station virtuelle disposant d'une Nvidia Tesla K40m   * **k40m** : station virtuelle disposant d'une Nvidia Tesla K40m
 +  * **r740gpu1** : station disposant de 2 Tesla P100 (appartenant au PSMN)
  
 Jetez un coup d'oeil sur [[http://​styx.cbp.ens-lyon.fr/​ganglia/?​r=hour&​cs=&​ce=&​m=load_one&​s=by+name&​c=Workstations|Monitoring des stations de travail]] avant de lancer vos tâches ! De grosses requêtes concurrentielles peuvent entraîner des DoS ! Jetez un coup d'oeil sur [[http://​styx.cbp.ens-lyon.fr/​ganglia/?​r=hour&​cs=&​ce=&​m=load_one&​s=by+name&​c=Workstations|Monitoring des stations de travail]] avant de lancer vos tâches ! De grosses requêtes concurrentielles peuvent entraîner des DoS !
Ligne 208: Ligne 222:
 Comme nous l'​avons vu dans l'​introduction sur le GPU, leur programmation peut-être réalisée par différentes voies. La première, pour les périphériques Nvidia, est d'​utiliser l'​environnement CUDA. Le problème sera qu'il est impossible de réexploiter votre programme sur une autre plate-forme (un CPU) ou la comparer avec d'​autres GPU. [[https://​www.khronos.org/​opencl/​|OpenCL]] reste une approche beaucoup plus polyvalente ! Comme nous l'​avons vu dans l'​introduction sur le GPU, leur programmation peut-être réalisée par différentes voies. La première, pour les périphériques Nvidia, est d'​utiliser l'​environnement CUDA. Le problème sera qu'il est impossible de réexploiter votre programme sur une autre plate-forme (un CPU) ou la comparer avec d'​autres GPU. [[https://​www.khronos.org/​opencl/​|OpenCL]] reste une approche beaucoup plus polyvalente !
  
-Sur les stations du CBP, la majorité des implémentations de OpenCL sont disponibles,​ autant sur CBP que sur GPU.+Sur les stations du CBP, la majorité des implémentations de OpenCL sont disponibles,​ autant sur CPU que sur GPU.
  
 La commande ''​clinfo''​ récupère des informations liées à tous les périphériques OpenCL disponibles. ​ La commande ''​clinfo''​ récupère des informations liées à tous les périphériques OpenCL disponibles. ​
Ligne 1385: Ligne 1399:
 </​code>​ </​code>​
  
 +Dans le cas d'une exécution uniquement sur CPU (ici 2 Xeon E5-2637 v4 @ 3.50GHz), nous avons comme sortie :
  
 +<​code>​
 +TIME Command being timed: "​python3 cifar10_train.py"​
 +TIME User time (seconds): 21180.80
 +TIME System time (seconds): 1391.54
 +TIME Elapsed (wall clock) time : 1711.02
 +TIME Percent of CPU this job got: 1319%
 +TIME Average shared text size (kbytes): 0
 +TIME Average unshared data size (kbytes): 0
 +TIME Average stack size (kbytes): 0
 +TIME Average total size (kbytes): 0
 +TIME Maximum resident set size (kbytes): 2804244
 +TIME Average resident set size (kbytes): 0
 +TIME Major (requiring I/O) page faults: 0
 +TIME Minor (reclaiming a frame) page faults: 283823921
 +TIME Voluntary context switches: 26722288
 +TIME Involuntary context switches: 6182435
 +TIME Swaps: 0
 +TIME File system inputs: 5857601
 +TIME File system outputs: 83979
 +TIME Socket messages sent: 0
 +TIME Socket messages received: 0
 +TIME Signals delivered: 0
 +TIME Page size (bytes): 4096
 +TIME Exit status: 0
 +</​code>​
  
 <note warning>​Exercice #26 : appliquez les commandes ci-dessus <note warning>​Exercice #26 : appliquez les commandes ci-dessus
Ligne 1404: Ligne 1444:
   * Lancez une seconde fois l'​apprentissage   * Lancez une seconde fois l'​apprentissage
     - notez les informations de sortie préfixées par ''​TIME''​     - notez les informations de sortie préfixées par ''​TIME''​
-  * Lancez une seconde fois l'​apprentissage avec ''​CUDA_VISIBLE_DEVICES="" ​''​+  * Lancez une seconde fois l'​apprentissage avec ''​CUDA_VISIBLE_DEVICES=' ' ​''​
     - notez les informations de sortie     - notez les informations de sortie
   * Comparez les résultats   * Comparez les résultats
Ligne 1427: Ligne 1467:
 </​note>​ </​note>​
  
-En cas de difficultés,​ appliquez la [[formation:​insa2018gpu:insa2018gromacs4stretch|recette de Gromacs pour Debian Stretch]] ;-)+En cas de difficultés,​ appliquez la [[formation:​cbp20190606gpu:gromacs4stretch|recette de Gromacs pour Debian Stretch]] ;-)
  
 <note warning>​Exercice #28 : Exécutez l'​exemple ''​1536'' ​ <note warning>​Exercice #28 : Exécutez l'​exemple ''​1536'' ​
Ligne 1464: Ligne 1504:
 </​note>​ </​note>​
  
-En cas de difficultés,​ appliquez la [[formation:​insa2018gpu:insa2018pkdgrav4stretch|recette d'un PKDGRAV3 pour Debian Stretch]] ;-)+En cas de difficultés,​ appliquez la [[formation:​cbp20190606gpu:pkdgrav4stretch|recette d'un PKDGRAV3 pour Debian Stretch]] ;-)
  
 ===== Conclusion ===== ===== Conclusion =====
Ligne 1472: Ligne 1512:
 L'​exploitation de "codes métier"​ vous aura aussi permis d'​entrevoir la difficulté d'​intégrer et d'​exécuter des programmes dans des environnements pourtant bien homogènes : toutes les stations exploitées ont exactement le même système d'​exploitation,​ [[developpement:​productions:​SIDUS|SIDUS]]. Les "​astuces"​ permettant de simplement pouvoir exécuter les programmes illustraient aussi que, sans expérience,​ difficile de s'en sortir. L'​exploitation de "codes métier"​ vous aura aussi permis d'​entrevoir la difficulté d'​intégrer et d'​exécuter des programmes dans des environnements pourtant bien homogènes : toutes les stations exploitées ont exactement le même système d'​exploitation,​ [[developpement:​productions:​SIDUS|SIDUS]]. Les "​astuces"​ permettant de simplement pouvoir exécuter les programmes illustraient aussi que, sans expérience,​ difficile de s'en sortir.
  
- --- //​[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] CC BY-NC-SA ​2018/11/26 15:37//+ --- //​[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] CC BY-NC-SA ​2019-06-11//
formation/cbp20190606gpu.1559657756.txt.gz · Dernière modification: 2019/06/04 16:15 par equemene