GPU sous LabVIEW eTIG_OOP_
Plan de la présentation 1.Frameworks OOP référencés 2.Performances d’accés 3.Performances de compilation 4.Erreurs à éviter 5.Lvlib de calcul de temps de compilation 6.Débat
Plan de la présentation 1.Frameworks OOP référencés 2.Performances d’accés 3.Performances de compilation 4.Erreurs à éviter 5.Lvlib de calcul de temps de compilation 6.Débat
Plan de la présentation 1.Frameworks OOP référencés 2.Performances d’accés 3.Performances de compilation 4.Erreurs à éviter 5.Lvlib de calcul de temps de compilation 6.Débat
Framework actuel
Communication CPU/GPU
Constitution d’un GPU
Différences CPU/GPU
Architecture d’un CPU
Performances CPU VS GPU
Le développement sur GPU CUDA (Compute Unified Device Architecture) VS OpenCL
Prix d’un GPU CUDA : gratuit GeForce GTX 460 1GB, 336 CUDA cores, 160 W 220 € Quadro K GB, cores, 122 W € Tesla K20 5 GB, cores, 225 W $
Plan de la présentation 1.Technologie GPU 2.Utilisation sous LabVIEW 3.Benchmarks 4.Conclusions
Le GPU chez NI Un tookit pour LabVIEW (Windows uniquement), NI LabVIEW GPU Analysis Toolkti, 999€ Une communauté : GPU Computing 2 interlocuteurs NI identifiés : MathGuy et Caseyw Déjà des dizaines d’applications.
GPU Analysis Toolkit GPU Analysis toolkit LabVIEW Toolkit constitué uniquement d’appels à des librairies NVIDIA. Pour l’utiliser, il faut installer CUDA. 4 sous-palettes : -LVCUBLAS, -LVCUDA, -LVCUFFT, -LV GPU SDK. Limitation : impossible d’utiliser un bureau à distance (contrainte driver NVIDIA).
GPU Analysis Toolkit -LVCUDA – Contrôle du driver CUDA, des ressources utilisées, informations diverses, … -LVGPU SDK – Exécution de code custom (en C).
GPU Analysis Toolkit -LVCUFFT – Calcul de TF et de TF inverse. -LVCUBLAS – Fonctions d’algèbre linéaire. Peu de fonctions disponibles !
Plan de la présentation 1.Technologie GPU 2.Utilisation sous LabVIEW 3.Benchmarks 4.Conclusions
Exemple : Get CPU Device Information Objectifs : - détecter et identifier le matériel GPU, - déporter le calcul de FFT 1D sur GPU, - comparaison CPU/GPU.
Exemple : Get CPU Device Information
# éléments Temps # éléments Gain Critique : les temps de chargement/déchargement des données du GPU ne sont pas pris en compte
Exemple : Heat equation solver Objectif : résoudre un problème de diffusion de chaleur en utilisant les fonctions BLAS.
Exemple : Heat equation solver Init : allocation + transfert données
Exemple : Heat equation solver Calcul : utilisation des fonctions BLAS + transferts.
Exemple : Heat equation solver Arrêt : libération des ressources Sur cet exemple, nous obtenons les résultats suivants : - temps de cycle CPU : 4.5 ms +/- 0.8 ms, - temps de cycle GPU : ms +/ ms. Soit un gain d’environ 31x.
Exemple : Multi-channel FFT Objectif : calcul de plusieurs FFT 1D en parallèle.
Exemple : Multi-channel FFT Résultats : pour le calcul de M canaux de N échantillons. MNCPU (ms)GPU (ms)Gain X X X X X X X Memory full57.2 M = 1024, N = 8192, en double précision, soit environ 128 Mo.
Plan de la présentation 1.Technologie GPU 2.Utilisation sous LabVIEW 3.Benchmarks 4.Conclusions
Conclusions Aspects positifs du GPU : -Puissance de calcul, Aspects négatifs du GPU : -Difficulté à mettre en œuvre, -Latence élevée. L’apport du GPU n’est possible que pour des problèmes de grande dimension pouvant se résoudre en utilisant l’algèbre linéaire (notamment sans branchement).
Conclusions Méthode proposée pour mettre en œuvre un GPU : 1.Repenser le code afin de réaliser les calculs avec des fonctions d’algèbre linéaire, 2.Ecrire l’application en utilisant les fonctions BLAS disponibles en standard, 3.Evaluer le temps consommé par l’exécution de ces fonctions par rapport au reste de l’application, 4.Juger si l’utilisation du GPU peut apporté un gain significatif 5.Remplacer les fonctions BLAS standards par les fonctions BLAS dédiées GPU.
Conclusions Bien utilisé le GPU : -Le réservé à des problèmes adaptés, -Développer des briques de traitement en C, -Appeler ces briques depuis LabVIEW. On tire ainsi pleinement partie du GPU (performance de calcul) et de LabVIEW (programmation de haut niveau). Gros potentiel ! Tempérons par le peu de fonctions disponibles et l’absence de support Linux : une question de temps.
Ce qui se prépare … Retour sur NI Week 2012, présentation de Darren SCHMIDT, LabVIEW R&D
Ce qui se prépare … Retour sur NI Week 2012, présentation de Darren SCHMIDT, LabVIEW R&D
Ce qui se prépare … Retour sur NI Week 2012, présentation de Darren SCHMIDT, LabVIEW R&D
Ce qui se prépare … Retour sur NI Week 2012, présentation de Darren SCHMIDT, LabVIEW R&D
Ce qui se prépare … Retour sur NI Week 2012, présentation de Darren SCHMIDT, LabVIEW R&D
Ce qui se prépare … Retour sur NI Week 2012, présentation de Darren SCHMIDT, LabVIEW R&D
Encore plus loin DAQ PCI express PCI express
MERCI !