TD 4. Introduction à CUDA
par Eric Goubault et Sylvie Putot

Utiliser CUDA dans les salles machines de l'X

Quelles cartes NVIDIA et ou sont-elles?

Ecrire, compiler et exécuter un programme CUDA

Mise en oeuvre : multiplication de matrices

Quelques outils pour vous aider:

Visual profiler

Occupancy calculator

Mode d'emploi inclus dans le fichier excel.

CUBLAS

CUBLAS est une implémentation de la librairie d'algèbre linéaire BLAS pour CUDA. Elle est incluse dans la distribution de CUDA: documentation (d'une version légèrement antérieure), également une courte présentation
Pour utiliser cette bibliothèque, il suffit d'ajouter en tête de vos fichiers .cu

  #include "cublas.h"  
et d'ajouter -lcublas à la ligne de compilation.Vous avez un exemple de multiplication utilisant CUBLAS dans sdk/C/src/simpleCUBLAS.

Attention, CUBLAS utilise un stockage en colonnes des matrices ("column-major order" dans Wikipedia), contrairement à celui du C qui est en lignes. Il faut initialiser (cublasInit()) et arrêter (cublasShutdown()) la librairie avant et après usage. L'allocation et les transferts de mémoire entre CPU et GPU se font de manière assez semblable à CUDA (utilisation de cublasAlloc(...), cublasFree(...), cublasSetVector(...) et cublasGetVector(...).)

JCuda

Des bindings Java pour Cuda

L'utiliser en salles machines: