GPU Computing CUDA
Informations complémentaire
Compilation
La compilation est réalisée grâce au compilateur NVCC, fournie dans le toolkit de CUDA.
Celui-ci génere deux fichiers contenant du code assembleur :
- Le premier contient l'ensemble des instructions pour le processeur central, CPU : CPU Code.
- Le second fichier contient l'ensemble des instructions pour la carte graphique, GPU : PTX Code.
Optimisations
De nombreuses bonnes pratiques permettent d'améliorer les performances des programmes, en voici des exemples pertinents :
- Optimiser le nombre de bloc lors de l'appel à une fonction
- Meilleure répartition de la charge sur l'ensemble du périphérique.
- Optimiser les accès mémoires
- Comme nous avons pu voir précedement, les mémoires n'ont pas les mêmes caractéristiques.
Ainsi, suivant le besoin, nous devons choisir le bon type de mémoire à utiliser.
Utiliser simplement la mémoire globale permet d'éviter une gestion poussée mais ralentie globalement le programme. - Optimiser le code pour minimiser l'utilisation d'instructions coûteuses
- Certaines instructions sont trés couteuses en cycle, comme la division par 0 pour un entier
ou un flottant. Dans le tableau ci-dessous, je vous présente les cycles utilisés pour chaque instruction.
Installation
Pour utiliser la technologie, vous devez installer les éléments suivants :
- Driver Spécifique Nvidia : permet d'exploiter les fonctionnalités CUDA de votre hardware.
- Toolkit : générer l'ensemble des exécutables grâce au compilateur NVCC