Jean Zay : la bibliothèque CUDA Toolkit (CuFFT, CuBLAS, CuSPARSE, CuSOLVER, ...)

Description

CUDA Toolkit propose un environnement de développement et un ensemble de librairies scientifiques permettant de créer des applications accélérées par des GPUs. Cet environnement inclut les fonctions hautement optimisées et accélérées via GPU pour l'algèbre linéaire ou les applications scientifiques tels que BLAS, Transformées de Fourier rapides, etc.

Quelques librairies mathématiques et d'algèbre linéaire fournies par CUDA Toolkit :

  • CuBLAS (CUDA Basic Linear Algebra Subroutines) : Librairie BLAS standard, accélérée par les GPUs.
  • CuSPARSE : fonctions d'algèbre linéaire accélérées par les GPUs pour les opérations sur les matrices creuses.
  • CuFFT (CUDA Fast Fourier Transform) : Bibliothèque FFT accéléré par les GPUs.
  • CuSOLVER : Solveurs basé sur les méthodes directs pour les systèmes denses et creux.

Utilisation

CUDA Toolkit est disponible via le module cuda et accessible via la commande

$ module load cuda/10.0

Versions installées

Il est possible de retrouver les versions disponibles installées sur la machine par le commande module avail :

$ module avail cuda
cuda/9.2
cuda/10.0
cuda/10.1.1

Edition des liens

Après le chargement du module CUDA, il sera nécessaire lors de la compilation de spécifier la bibliothèque utilisée en spécifiant l'option :

  • -lcublas pour CuBLAS,
  • -lcufft ou -lcufftw pour CuFFT,
  • -lcusparse pour CuSPARSE,
  • -lcusolver pour CuSOLVER.

L'utilisation des versions statiques nécessitent l'ajout du suffixe _static, par exemple :
-lcublas_static pour utiliser la version statique de CuBLAS.

Documentation