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:insa2021gpu [2021/11/29 17:56]
equemene
formation:insa2021gpu [2022/01/03 14:05] (Version actuelle)
equemene
Ligne 1: Ligne 1:
 ====== TP INSA 2021-2022 : le GPU par la pratique ====== ====== TP INSA 2021-2022 : le GPU par la pratique ======
  
-Cette session pratique accompagne ​le [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​PresentationGPU_20211203_EQ.pdf|cours]] du 3 décembre au matin réalisé par Emmanuel Quémener.+Cette session pratique accompagne ​les cours des [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​INSA2021-CPU-211129.pdf|29 novembre]] et [[http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​documents/​INSA2021-GPU_211203.pdf|3 décembre]]  ​au matin réalisé par Emmanuel Quémener.
  
 ===== CQQCOQP : Comment ? Qui ? Quand ? Combien ? Où ? Quoi ? Pourquoi ? ===== ===== CQQCOQP : Comment ? Qui ? Quand ? Combien ? Où ? Quoi ? Pourquoi ? =====
Ligne 327: Ligne 327:
 En effet, la méthode par //​shadering//​ exploitait de nombreuses multiplications matricielles pour générer une image numérique (CGI ou //Compute Generated Image//). Il n'est donc pas étonnant que les GPU soient, historiquement,​ plutôt "​efficaces"​ pour ce type de tâches : nous allons l'​évaluer. En effet, la méthode par //​shadering//​ exploitait de nombreuses multiplications matricielles pour générer une image numérique (CGI ou //Compute Generated Image//). Il n'est donc pas étonnant que les GPU soient, historiquement,​ plutôt "​efficaces"​ pour ce type de tâches : nous allons l'​évaluer.
  
-==== Chargement de l'​environnement de programmation ==== 
  
-Le point traité dans l'​exercice #2 a montré comment le système représentait les périphériques de type GPU dans le dossier ''/​dev''​. ​ 
- 
-De manière à exploiter ces GPU, d'​autres composants sont nécessaires : les **librairies**. De plus, si un programme exploitant ces librairies doit être compilé, il est nécessaire de lui fournir les //​prototypes//​ (d'​extension ''​.h''​). ​ 
- 
-Ces librairies, prototypes voire programmes forment un //​environnement de programmation//​ et plusieurs peuvent cohabiter sur un même système. 
- 
-Par défaut, sur les machines du CBP, l'​environnement **CUDA** est celui de la distribution,​ la **9.2**. Pour exploiter les GPU récents (RTX 3070, RTX 3090, A100), il est indispensable d'​utiliser un CUDA récent, le **11.1** associé au driver **455** minimum. 
- 
-Le gros souci de ces environnements,​ c'est que chaque application //métier// va exploiter une version de CUDA et pas un autre. Dans la majorité des cas, cela ne fonctionne pas : c'est, soit trop récent, soit trop ancien. 
- 
-La définitin de l'​environnement CUDA version 11.1 s'​effectue avec le chargement du module ''​cuda/​11.1''​ 
-<​code>​ 
-. /​usr/​share/​modules/​init/​bash 
-module load cuda/11.1 
-</​code>​ 
 ==== De BLAS aux xGEMM : les différentes implémentations ==== ==== De BLAS aux xGEMM : les différentes implémentations ====
  
Ligne 732: Ligne 716:
 ==== Implémentation C/OpenCL ==== ==== Implémentation C/OpenCL ====
  
-Le programme ''​bench4gpu/​Pi/​OpenCL/​PiOpenCL.c''​ est une implémentation en C "​pur"​ : il permet de juger de la difficulté d'​appropriation de OpenCL. En effet, une grande partie du code est destinée à définir quelle plateforme et quel périphérique utiliser, placer les données à traîter.+Le programme ''​bench4gpu/​Pi/C/​OpenCL/​PiOpenCL.c''​ est une implémentation en C "​pur"​ : il permet de juger de la difficulté d'​appropriation de OpenCL. En effet, une grande partie du code est destinée à définir quelle plateforme et quel périphérique utiliser, placer les données à traîter.
  
 <note warning> <note warning>
Ligne 1299: Ligne 1283:
  
 Au CBP, un environnement Conda a été installé pour permettre l'​exploitation de la majorité des outils construits autour de TensorFlow. Le chargement de l'​environnement se réalise en "​sourçant"​ l'​environnement CONDA avec la commande suivante : Au CBP, un environnement Conda a été installé pour permettre l'​exploitation de la majorité des outils construits autour de TensorFlow. Le chargement de l'​environnement se réalise en "​sourçant"​ l'​environnement CONDA avec la commande suivante :
-<​code>​module load conda/4.9.2 </​code>​+<​code>​module load conda3/4.9.2 </​code>​
  
 La commande précédente "​paramètre"​ les variables d'​environnement nécessaires l'​exploitation de l'​environnement complet CONDA installé pour vous dans ''/​opt/​conda3-4.9.2/''​ La commande précédente "​paramètre"​ les variables d'​environnement nécessaires l'​exploitation de l'​environnement complet CONDA installé pour vous dans ''/​opt/​conda3-4.9.2/''​
formation/insa2021gpu.1638204960.txt.gz · Dernière modification: 2021/11/29 17:56 par equemene