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édentesRévision précédente
Prochaine révision
Révision précédente
formation:insa2021gpu [2021/12/06 10:09] equemeneformation:insa2021gpu [2022/01/03 13:05] (Version actuelle) equemene
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>
formation/insa2021gpu.1638785394.txt.gz · Dernière modification : (modification externe)