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:etsn2022gpu [2022/08/05 11:50]
equemene [Cours associés à cette école]
formation:etsn2022gpu [2022/08/12 11:35] (Version actuelle)
equemene [Prérequis en matériel, logiciel et humain]
Ligne 1: Ligne 1:
 ====== ETSN 2022 : les GPU, la technologie disruptive du 21ème siècle ====== ====== ETSN 2022 : les GPU, la technologie disruptive du 21ème siècle ======
  
-<note warning>​Contient certainement encore un nombre non négligeable de coquilles...</​note>​+<note warning>​Contient certainement encore un nombre non négligeable de coquilles... ​Merci de votre compréhension. Mon adresse de courriel est en bas pour vous permettre d'en assurer l'​amélioration !</​note>​
  
-Cette session de travaux pratiques se compose de 7 séances de 1h30 du workshop [[https://​conferences.cirm-math.fr/​2842.html|Les GPU, technologie disruptive du 21ème siècle]]. Elle s'​accompagne de 5 cours donnés par Emmanuel Quémener.+Cette session de travaux pratiques se compose de 7 séances de 1h30 du workshop [[https://​conferences.cirm-math.fr/​2842.html|Les GPU, technologie disruptive du 21ème siècle]]. Elle s'​accompagne de 5 cours suivants ​donnés par Emmanuel Quémener. 
 + 
 +    * Cours 1 & 2 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_IntroductionGPU_Cours12.pdf|Les GPU : technologie disruptive du 21e siècle]] 
 +    * Cours 3 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_PortageEtMetrologie_Cours3.pdf|Portage d'un vieux code, l'​occasion d'un retour sur 40 ans d'​informatique]] 
 +    * Cours 4 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_MetrologieGPU_Cours4.pdf|Métrologie d'​applications]] 
 +    * Cours 5 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_CodesMatrices_Cours5.pdf|Emergence de Codes "​Matrices"​ et conclusion]]
  
 ===== CQQCOQP : Comment ? Qui ? Quand ? Combien ? Où ? Quoi ? Pourquoi ? ===== ===== CQQCOQP : Comment ? Qui ? Quand ? Combien ? Où ? Quoi ? Pourquoi ? =====
Ligne 18: Ligne 23:
    
 C'est de prendre en main les GPU dans les machines, d'​appréhender la programmation en OpenCL et CUDA, de comparer les performances avec des CPU classiques par l'​intermédiaire de quelques exemples simples et des codes de production. C'est de prendre en main les GPU dans les machines, d'​appréhender la programmation en OpenCL et CUDA, de comparer les performances avec des CPU classiques par l'​intermédiaire de quelques exemples simples et des codes de production.
- 
-===== Cours associés à cette école ===== 
- 
-    * Cours 1 & 2 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_IntroductionGPU_Cours12.pdf|Les GPU : technologie disruptive du 21e siècle]] 
-    * Cours 3 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_PortageEtMetrologie_Cours3.pdf|Portage d'un vieux code et retour sur 40 ans d'​informatique]] 
-    * Cours 4 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_MetrologieGPU_Cours4.pdf|Métrologie d'​applications]] 
-    * Cours 5 : [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​ETSN_CodesMatrices_Cours5.pdf|Emergence de Codes "​Matrices"​ et conclusion]] 
  
 ===== Déroulement des sessions pratiques ===== ===== Déroulement des sessions pratiques =====
Ligne 35: Ligne 33:
   * Un intermède Python/CUDA pour tester //​l'​autre//​ implémentation sur GPU   * Un intermède Python/CUDA pour tester //​l'​autre//​ implémentation sur GPU
   * La réalisation et le portage d'une transformée de Fourier discrète   * La réalisation et le portage d'une transformée de Fourier discrète
-  * Choix du périphérique en Pythonsa programmation +  * Choix du périphérique en Python ​et sa programmation 
-  * Utilisation des librairies externesexemple avec xGEMM+  * Utilisation des librairies externes ​exemple avec xGEMM
   * Intégration de "codes métier"​ : [[https://​www.tensorflow.org/​|TensorFlow]],​ [[https://​www.r-ccs.riken.jp/​labs/​cbrt/​|GENESIS]] et [[http://​www.gromacs.org/​|Gromacs]]   * Intégration de "codes métier"​ : [[https://​www.tensorflow.org/​|TensorFlow]],​ [[https://​www.r-ccs.riken.jp/​labs/​cbrt/​|GENESIS]] et [[http://​www.gromacs.org/​|Gromacs]]
   * Expoitation de codes //​Matrices//​ pour la métrologie ​   * Expoitation de codes //​Matrices//​ pour la métrologie ​
Ligne 51: Ligne 49:
    
   * Si vous n'​utilisez PAS le CBP, une machine relativement récente avec une GPU intégrée avec circuit Nvidia   * Si vous n'​utilisez PAS le CBP, une machine relativement récente avec une GPU intégrée avec circuit Nvidia
-    * Pour les implémentations OpenCL sur CPU, sur Ubuntu, essayez d'​installer celle d'​[[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​opencl-1.2-intel-cpu_6.4.0.25-2_amd64.deb|Intel]] et celle d'​[[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​amd-opencl-icd_15.12-2~bpo8+3_fixed.deb|AMD]] 
   * Si vous utilisez le CBP, un laptop disposant d'un écran assez confortable pour afficher une fenêtre de 1024x768, une connexion réseau la plus stable possible et la capacité d'y installer un logiciel adapté.   * Si vous utilisez le CBP, un laptop disposant d'un écran assez confortable pour afficher une fenêtre de 1024x768, une connexion réseau la plus stable possible et la capacité d'y installer un logiciel adapté.
  
 === Prérequis pour le logiciel === === Prérequis pour le logiciel ===
  
-  * Si vous n'​utilisez pas le CBP, un OS GNU/Linux correctement configuré pour la GPU embarquée avec tous les composants Nvidia, OpenCL, PyOpenCL, PyCUDA. A cela s'​ajoute un navigateur pour voir cette page ainsi qu'un traitement de texte pour rédiger le compte-rendu de ces séances.+  * Si vous n'​utilisez pas le CBP, un OS GNU/Linux correctement configuré pour la GPU embarquée avec tous les composants Nvidia, OpenCL, PyOpenCL, PyCUDA
 +    * Un ''​apt install time pciutils clinfo nvidia-opencl-icd nvidia-smi pocl-opencl-icd python3-pyopencl python-pyopencl-doc python-pycuda-doc python3-pycuda''​ devrait être suffisant comme prérequis pour une machine avec un circuit Nvidia pas trop ancien 
 +    * Pour les implémentations OpenCL sur CPU sur Debian ou Ubuntu, essayez d'​installer celle d'​[[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​opencl-1.2-intel-cpu_6.4.0.25-2_amd64.deb|Intel]] et celle d'​[[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​amd-opencl-icd_15.12-2~bpo8+3_fixed.deb|AMD]]. A votre environnement ​s'​ajoute un navigateur pour voir cette page ainsi qu'un traitement de texte pour rédiger le compte-rendu de ces séances. ​
   * Si vous utilisez le CBP, il faut avoir installé le logiciel [[https://​wiki.x2go.org/​doku.php/​download:​start|x2goclient]] suivant les recommandations de la [[ressources:​x2go4cbp|documentation du CBP]]. Il est recommandé d'​exploiter le traitement de texte et le navigateur dans la session distante.   * Si vous utilisez le CBP, il faut avoir installé le logiciel [[https://​wiki.x2go.org/​doku.php/​download:​start|x2goclient]] suivant les recommandations de la [[ressources:​x2go4cbp|documentation du CBP]]. Il est recommandé d'​exploiter le traitement de texte et le navigateur dans la session distante.
  
Ligne 77: Ligne 76:
   * Input and Output Devices : Périphériques d'​Entrée et Sortie   * Input and Output Devices : Périphériques d'​Entrée et Sortie
  
-Les GPU sont généralement considérés comme des périphériques d'​Entrée/​Sortie. Comme la plupart des périphériques installés dans les machines, ​ils exploitent un bus d'​interconnexion [[https://​en.wikipedia.org/​wiki/​Conventional_PCI|PCI]] ou [[https://​en.wikipedia.org/​wiki/​PCI_Express|PCI Express]].+Les GPU sont généralement considérés comme des périphériques d'​Entrée/​Sortie. Comme la plupart des périphériques installés dans les machines, ​elles exploitent un bus d'​interconnexion [[https://​en.wikipedia.org/​wiki/​Conventional_PCI|PCI]] ou [[https://​en.wikipedia.org/​wiki/​PCI_Express|PCI Express]].
  
 Pour récupérer la liste des périphériques PCI, utilisez la commande ''​lspci -nn''​. A l'​intérieur d'une longue liste apparaissent quelques périphériques **VGA** ou **3D**. Ce sont les périphériques GPU ou GPGPU. Pour récupérer la liste des périphériques PCI, utilisez la commande ''​lspci -nn''​. A l'​intérieur d'une longue liste apparaissent quelques périphériques **VGA** ou **3D**. Ce sont les périphériques GPU ou GPGPU.
Ligne 359: Ligne 358:
 La (presque) totalité des outils exploités par le CBP pour comparer les CPU et les GPU se trouve dans le projet [[https://​forge.cbp.ens-lyon.fr/​redmine/​projects/​bench4gpu|bench4gpu]] du Centre Blaise Pascal. La (presque) totalité des outils exploités par le CBP pour comparer les CPU et les GPU se trouve dans le projet [[https://​forge.cbp.ens-lyon.fr/​redmine/​projects/​bench4gpu|bench4gpu]] du Centre Blaise Pascal.
  
-La récupération des sources est libre et se réalise par l'​outil subversion :<​code>​+La récupération des sources est libre et se réalise par l'​outil ​**subversion** (//NDLR : oui, je sais tout le monde est passé à GIT mais ce projet a plus de 10 ans//​) ​:<​code>​
 svn checkout https://​forge.cbp.ens-lyon.fr/​svn/​bench4gpu/​ svn checkout https://​forge.cbp.ens-lyon.fr/​svn/​bench4gpu/​
 </​code>​ </​code>​
Ligne 374: Ligne 373:
   * ''​ETSN''​ : les programmes //​corrigés//​ associés à cette école ETSN 2022   * ''​ETSN''​ : les programmes //​corrigés//​ associés à cette école ETSN 2022
  
-De tous ces programmes, seuls ceux présents dans ''​BLAS'',​ ''​NBody'',​ ''​Pi''​ et ''​ETSN''​ seront exploités dans le cadre de ces travaux pratiques. Il est quand même conseillé de ne pas se précipiter sur les corrigés situés dans ETSN pour le déroulement de ces séances. Le //no pain, no gain// s'​applique aussi dans l'​apprentissage en informatique.+De tous ces programmes, seuls ceux présents dans ''​BLAS'',​ ''​NBody'',​ ''​Pi''​ et ''​ETSN''​ seront exploités dans le cadre de ces travaux pratiques. Il est quand même conseillé de ne pas se précipiter sur les corrigés situés dans ETSN pour le déroulement de ces séances. Le //no pain, no gain// s'​applique ​//aussi// dans l'​apprentissage en informatique.
  
 ===== Première exploration de l'​association Python et OpenCL ===== ===== Première exploration de l'​association Python et OpenCL =====
formation/etsn2022gpu.1659693059.txt.gz · Dernière modification: 2022/08/05 11:50 par equemene